From 60a774c30caeb3130362a6059f970b78bcec5c3b Mon Sep 17 00:00:00 2001
From: Jinwoo Hong <73622457+Jinwoo-H@users.noreply.github.com>
Date: Fri, 18 Sep 2026 02:47:50 -0400
Subject: [PATCH 001/224] feat(mobile): client operations and dev probe for the
desktop-served mobile web bundle (OTA phase A, 5/5) (#21374)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* chore(rpc-contract): provisional catalog entries for the mobile web bundle methods
PROVISIONAL, and the only commit on this branch that must not survive the merge
as written. `rpc-params-catalog.generated.ts` is generated from the host method
registry, and A5's client operations cannot name `mobileWeb.bundle.manifest` or
`mobileWeb.bundle.chunk` until A3 registers them: `defineRpcOperation` constrains
`method` to `RpcMethodName`, which is `keyof typeof RPC_PARAMS_BY_METHOD`.
These two entries are what the generator emits once A3 lands. After merging A3,
run `pnpm run generate:rpc-params-catalog` and keep its output, not this.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* feat(mobile): checked client operations for the desktop-served mobile web bundle
Two `defineRpcOperation` descriptors over the A1 contract, both
`require-result-or-throw` at `on-settle`: there is no partial success in a bundle
read, and a salvage policy would produce a half-bundle that fails a hash check far
from the cause.
Readers are hoisted `looseObject`s that require only what this client reads, so a
later optional member stays a Rule 1 addition for released phones; the host's own
schemas stay strict. `dataBase64` is bounded by the contract's chunk size, so a
host that overshoots is refused at the boundary rather than at reassembly.
`readMobileWebBundleErrorCode` maps the host's six codes out of the thrown
`code: message` diagnostic and answers null for everything else. Membership comes
from the contract's own enum, which is built from its `hostUnionArms` record, so
the arms here cannot drift from the host's union.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* feat(mobile): fetch and verify a whole mobile web bundle over the paired connection
`fetchMobileWebBundle` reads the manifest, pages every asset at the chunk size the
host advertised, and verifies each reassembled asset against the manifest's sha256
before returning it. Nothing is cached and nothing is rendered: this is Phase A's
proof that the pipe carries a bundle intact.
Four asset reads run at once and no more, because the host refuses the fifth
concurrent read on one connection with `mobile_web_bundle_read_limited`; paging
inside an asset stays sequential, since the next offset is only known to be wanted
once a reply says it is not the last.
Every chunk reply restates its build, path and offset and the whole asset's length
and hash, and all five are checked. A desktop that auto-updates mid-download
answers a later chunk from a different build, and nothing else in the reply says so.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* feat(mobile): dev-only troubleshooting row that fetches the mobile web bundle
The Phase A proof that the pipe works on a device. Tapping it fetches the whole
bundle from the paired desktop and reports the build, asset count, byte count and
elapsed time, or the host's error code.
`TroubleshootView` gains a `developerRow` slot and the route fills it only when
`__DEV__` is true, so a shipped build mounts nothing: no host lookup, no client
acquisition, no request. The row reuses the screen's existing button and check-row
styles, so it adds no visual vocabulary.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): recording scenarios for the mobile web bundle operations
Two families over the real product modules: `mobileWeb.bundle-manifest` drives the
manifest descriptor alone, so the loose reader's verdict on one reply is the whole
observation, and `mobileWeb.bundle-fetch` drives the paging flow over a two-asset
bundle whose entrypoint spans two chunks.
The fetch family's state carries the decoded bytes of every asset rather than a
count. A reassembly that misplaces a chunk still has the right length, so only the
bytes say so.
Goldens land with the repin in the next commit: the recorder fences on the pinned
tree, and these modules are not in it.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): repin the recording corpus and record the mobile web bundle goldens
`--record` refuses on any tree but the pinned one, and the pin predates this
branch's product modules, so the corpus is repinned to `bbf8264425` — the last
commit here to touch a fenced path — and re-recorded whole, the way
`rpc-recording/README.md` prescribes for a product change.
The delta is the clean one that repin predicts. All 778 existing goldens move
exactly one line, `baseline`, and nothing else: no body moved, no other header key
moved, none was deleted. Nine are added, two pilot per family plus the five reply
matrices the two families derive.
The fetch adapter projects its result rather than returning it whole. The result
carries a Map of Uint8Arrays, the observation refuses a non-plain object, and the
first recording lost the settlement and filed an unhandled rejection in its place.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): read the fake host's params through a boxed field read
The changed-code casting gate refuses the assertion the fake transport used to
type its recorded params. Boxing the value the way `settings-read-operations.ts`
does reads the same fields with no assertion, and a non-object params reads as
absent instead of throwing.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): repin the corpus to this branch's last fenced commit
The casting fix landed under `mobile/src`, which is a fenced path, so the pin no
longer named the tree `--record` runs on. Repinned to `79c3eed6db` and re-recorded.
Every golden moves the `baseline` header and nothing else, which is what a repin
with no product change is: the edited file is a test, and no recording loads one.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): mutation evidence that the fetch projection observes the bytes
Writes every chunk at offset 0, so a multi-chunk asset reassembles as its last
chunk over a zero-filled buffer. The length still matches the manifest, so only
the sha256 check and the decoded bytes in the projection can see it, which is
what the fetch family's state exists to show. The mutant is killed.
`mutants/` is outside every golden digest, so this moves no recording.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* fix(mobile): stop every worker's chunk reads the moment one asset fails
`stopped` was read only between assets, so the other three workers paged their
asset to the end after the fetch had already rejected: 121 chunk requests where
4 had been issued at the rejection. Each one holds one of the host's four read
slots, so an immediate retry was refused with `mobile_web_bundle_read_limited`
that only the abandoned workers caused.
An internal AbortController now stands beside the caller's signal and is checked
before every chunk request, not just between assets. Also pins the entry abort
check, the overrun check with real bytes, the measured byte total, and a schema
refusal whose message is prose rather than one of the six codes.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): pin the code anchor and both operation descriptors
`RPC mobile_web_bundle_unavailable failed` separates the anchored reader from an
unanchored one; the prose test that claimed to cover it had its first token at
index 0, so the anchor was load-bearing and untested. Also pins that a schema
refusal, which the dispatcher raises with zod prose before the bundle handler
runs, reads as no code, and that both descriptors stay
`require-result-or-throw` / `on-settle`.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* refactor(mobile): dial the host on tap in the dev bundle row, and name it
Opening Troubleshoot in a dev build acquired a client at mount, which is what
kicks a dial, on a screen that opened no connection before. The probe now
acquires only once the row is tapped, and each request owns its AbortController
so a re-run, an unmount or StrictMode's second mount abandons the previous fetch
and stops its chunk reads instead of holding the host's read slots.
The screen carries no host parameter and troubleshoots every paired host, so
there is no host it is "on": the row still takes the first paired host but now
names it in the result instead of implying it speaks for all of them. The label
says whether it is still connecting or already fetching.
There is no `__DEV__`-conditional `require` idiom in this repo to trim the row
out of a release bundle with, which the route now records.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* docs(mobile): refresh the recorder corpus counts
397 scenarios, 787 goldens, 790 tests from the README's own three-file command.
The 44 salvage goldens are unchanged; only the total they are quoted against
moved.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): repin and re-record for the mid-asset stop
Baseline moves to c519c2027d, the last commit on this branch to touch a fenced
path, and the whole corpus is re-recorded from it.
Delta against the pin, by the README's four classes: 786 header-only, 1 body
moved, 0 added, 0 deleted. The only key that moved on the 786 is `baseline`;
neither `recorderSha256` nor any `adapterSha256` moved, so nothing this branch
touched is inside a hashed recorder path.
The one body move is the disclosed behaviour change.
`matrix-mobileweb.bundle-fetch-app-js.json` is the reply matrix at the app-js
binding: where a partition leaves the app-js chunk without a result, the fetch
now stops the other workers mid-asset, so the sender list loses the chunk calls
they used to make for a bundle nobody would read.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): hold the rendered tree and the captured signal in boxes
Assigning to a `let` inside a callback leaves it narrowed to `null`, which the
harness was answering with two type assertions. A one-property box is a checked
type and the casting gate no longer has anything to report.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): repin the corpus to the branch's final fenced commit
Removing the two type assertions touched a test file under `mobile/src`, which
is inside the fence, so the pin moves to cae8f4a318 and the corpus is recorded
again from it.
Header-only, as a repin with no behaviour change should be: 787 header-only, 0
body moved, 0 added, 0 deleted, and `baseline` is the only key that moved.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* fix(mobile): let runRpcOperation send a params-less method
A3 declares `mobileWeb.bundle.manifest` with `params: null`, so the generated
catalog types its send params as `void` and the two call sites that pass an
explicit `null` stopped compiling.
`bindDeferredRpcOperation.request` already solved this: `RpcSendArguments`
admits `null` exactly where the catalog declares no params, because
`params: null` is not the frame that omits the key and narrowing it would
rewrite bytes shipped senders already put on the wire. `runRpcOperation` was
the one send entry point that never adopted the tuple, having had no
params-less caller until now. The compile fence pins all three accepted
shapes and that a params-bearing object is still refused.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): repin the corpus after merging main
The merge brought A3's host methods and the generated catalog, and the
follow-up widened runRpcOperation, so `mobile/src` and `src/shared` both
moved. Repins `baseline` to 5be50beb414, the last commit to touch a fenced
path, and re-records everything.
Delta against that commit: 787 header-only, 0 body moved, 0 added, 0 deleted.
The only header key that moves is `baseline` — the transport change is
type-only, so nothing a screen observes changed.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* fix(mobile): bound the bundle a manifest can make the client allocate
M1: the loose client reader kept every ceiling A1 declared except the one
that bounds their product. A manifest could pass `totalBytes` 0 alongside
256 assets of 10 MiB each and the fetch would allocate 2560 MiB against a
32 MiB contract. The reader now sums `assets[].byteLength` against
MOBILE_WEB_BUNDLE_MAX_TOTAL_BYTES. A ceiling rather than the host's
sum === totalBytes equality, because this client never trusts `totalBytes`
for anything and bounds what it will actually allocate instead.
L1: a tap dials the host, and nothing bounded that wait. A host whose client
never arrives left the row reading `Connecting…` with its button disabled
for the life of the screen. A deadline through the diagnostics folder's own
`startDiagnosticFetchTimeout` settles it to a failure and drops the
acquisition. Ten seconds, because acquiring a client is local work: the
connect and request timeouts live below this and only apply once one exists.
L2, four survivors now pinned: the eof break against a zero-byte asset end to
end, the offset half of the chunk echo check on its own, the anchor that
keeps `rpc (mobile_web_bundle_unavailable)` from reading as a code, and both
`abandoned` guards against a run the screen moved on from.
Also: the stop check moves above the per-asset buffer, which makes the
worker loop's copy redundant; drops the unreferenced chunk reply type; and
restores the comment pairing in operation-mutations.ts, where the bundle
entry had been inserted between the catalog mutation's comment and its entry.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): repin the corpus after the round-2 fixes
Repins `baseline` to 3252779fa7, the round-2 product commit, and re-records
everything.
Delta against that commit: 787 header-only, 0 body moved, 0 added, 0 deleted,
and `baseline` is the only header key that moves. `recorderSha256` holds even
though `mutants/operation-mutations.ts` changed, because the mutant directory
is excluded from the recorder digest on purpose — nothing on the recording
path reads it.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
* test(mobile): repin the corpus onto the merge that carries A4
A4 (#21376) added a mobile/src file inside the recorder fence, so the pin
has to name a commit that contains it.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
---
mobile/app/troubleshoot.tsx | 9 +
.../aivault-history-scan-fulfilled.json | 2 +-
.../aivault-history-scan-unsupported.json | 2 +-
.../aivault-history-scan-worktrees-late.json | 2 +-
.../aivault-history-screen-listed.json | 2 +-
.../aivault-history-screen-worktrees.json | 2 +-
.../aivault-resume-launch-create-refused.json | 2 +-
.../aivault-resume-launch-invalid-tab.json | 2 +-
.../goldens/aivault-resume-launch-locked.json | 2 +-
.../goldens/aivault-resume-launch-sent.json | 2 +-
.../aivault-resume-prepare-refused.json | 2 +-
.../goldens/aivault-resume-prepare-repin.json | 2 +-
.../aivault-resume-prepare-skipped.json | 2 +-
.../aivault-resume-prepare-unavailable.json | 2 +-
mobile/rpc-foundation/goldens/b1.json | 2 +-
mobile/rpc-foundation/goldens/b2.json | 2 +-
mobile/rpc-foundation/goldens/b3.json | 2 +-
.../goldens/browser-dialog-accepted.json | 2 +-
.../goldens/browser-dialog-dismissed.json | 2 +-
.../goldens/browser-keyboard-input.json | 2 +-
.../browser-pointer-click-accepted.json | 2 +-
.../browser-pointer-click-fallback.json | 2 +-
.../goldens/browser-wheel-scrolled.json | 2 +-
.../clipboard-image-attachment-anonymous.json | 2 +-
...-image-attachment-blocked-before-send.json | 2 +-
.../clipboard-image-attachment-cancelled.json | 2 +-
.../clipboard-image-attachment-pasted.json | 2 +-
...board-image-attachment-upload-refused.json | 2 +-
...-image-upload-aborts-on-chunk-failure.json | 2 +-
.../clipboard-image-upload-chunked.json | 2 +-
...rd-image-upload-single-frame-fallback.json | 2 +-
.../clipboard-image-upload-start-refused.json | 2 +-
.../goldens/codex-reset-credit-consumed.json | 2 +-
.../goldens/codex-reset-credit-resumed.json | 2 +-
.../goldens/components-codex-capability.json | 2 +-
.../goldens/components-setup-ask.json | 2 +-
.../goldens/components-target-local.json | 2 +-
.../goldens/components-target-ssh.json | 2 +-
.../goldens/diff-review-branch-compare.json | 2 +-
.../goldens/diff-review-branch-file-diff.json | 2 +-
...f-review-notes-refused-before-compare.json | 2 +-
.../diff-review-refused-file-diff.json | 2 +-
.../goldens/diff-review-snapshot.json | 2 +-
.../diff-review-status-unavailable.json | 2 +-
.../diff-review-worktree-file-diff.json | 2 +-
.../goldens/file-tap-open-refused.json | 2 +-
.../goldens/file-tap-opens-worktree-file.json | 2 +-
.../file-tap-previews-absolute-artifact.json | 2 +-
.../goldens/file-tap-resolve-miss.json | 2 +-
.../goldens/file-tap-resolve-refused.json | 2 +-
.../files-explorer-legacy-fallback.json | 2 +-
.../goldens/files-explorer-readdir.json | 2 +-
.../goldens/files-ownership-local.json | 2 +-
.../goldens/files-ownership-ssh.json | 2 +-
.../files-preview-artifact-direct.json | 2 +-
.../files-preview-artifact-image-read.json | 2 +-
.../goldens/files-preview-artifact-image.json | 2 +-
.../goldens/files-preview-grant-refresh.json | 2 +-
.../files-preview-worktree-image-read.json | 2 +-
.../goldens/files-preview-worktree-image.json | 2 +-
.../files-preview-worktree-text-read.json | 2 +-
.../goldens/files-preview-worktree.json | 2 +-
.../goldens/files-save-blind.json | 2 +-
.../goldens/files-save-verified.json | 2 +-
.../goldens/files-tab-doc-shapes.json | 2 +-
.../goldens/home-host-accounts.json | 2 +-
.../goldens/home-host-stats.json | 2 +-
.../goldens/host-view-settings-sync.json | 2 +-
...host-worktree-actions-pin-open-delete.json | 2 +-
.../goldens/host-worktree-delete-refused.json | 2 +-
.../goldens/host-worktree-refresh-stream.json | 2 +-
.../interruptions-inventory-lifecycle.json | 2 +-
...ions-settings-bot-overrides-fulfilled.json | 2 +-
.../goldens/inventory-lifecycle.json | 2 +-
.../goldens/inventory-repeat-query.json | 2 +-
.../rpc-foundation/goldens/lifecycle-b3.json | 2 +-
.../lifecycle-inventory-lifecycle.json | 2 +-
...ycle-settings-bot-overrides-fulfilled.json | 2 +-
...cle-settings-task-hydration-fulfilled.json | 2 +-
...-settings-workspace-context-fulfilled.json | 2 +-
.../goldens/linear-select-workspace.json | 2 +-
.../goldens/live-worktree-name-stream.json | 2 +-
...ructured-create-agentsession.create-1.json | 2 +-
...d-create-agentsession.createsupport-1.json | 2 +-
...d-launch-agentsession.createsupport-1.json | 2 +-
...ivault.history-aivault.listsessions-1.json | 2 +-
...ivault.history-screen-platform-status.json | 2 +-
...x-aivault.history-screen-status.get-2.json | 2 +-
...-aivault.history-screen-worktree.ps-1.json | 2 +-
.../matrix-aivault.history-status.get-1.json | 2 +-
...-launch-session.tabs.createterminal-1.json | 2 +-
...aivault.resume-launch-terminal.send-1.json | 2 +-
...ration-aivault.preparesessionresume-1.json | 2 +-
...browser.dialog-browser.dialogaccept-1.json | 2 +-
...keyboard-browser.keyboardinserttext-1.json | 2 +-
...x-browser.keyboard-browser.keypress-1.json | 2 +-
...er.pointer-click-browser.mouseclick-1.json | 2 +-
...ser.pointer-click-browser.mousedown-1.json | 2 +-
...ser.pointer-click-browser.mousemove-1.json | 2 +-
...owser.pointer-click-browser.mouseup-1.json | 2 +-
...rix-browser.wheel-browser.mousemove-1.json | 2 +-
...ix-browser.wheel-browser.mousewheel-1.json | 2 +-
...tachment-clipboard.startimageupload-1.json | 2 +-
...pload-clipboard.saveimageastempfile-1.json | 2 +-
...e-upload-clipboard.startimageupload-1.json | 2 +-
...s.codex-reset-capability-status.get-1.json | 2 +-
...it-accounts.consumecodexresetcredit-1.json | 2 +-
...target-local-preflight.detectagents-1.json | 2 +-
...target-preflight.detectremoteagents-1.json | 2 +-
...onents.execution-target-ssh.connect-1.json | 2 +-
...nents.execution-target-ssh.getstate-1.json | 2 +-
...ew-workspace-repositories-repo.list-1.json | 2 +-
...-components.setup-script-repo.hooks-1.json | 2 +-
...ix-files.explorer-screen-files.list-1.json | 2 +-
...files.explorer-screen-files.readdir-1.json | 2 +-
...les.mutation-ownership-ssh.getstate-1.json | 2 +-
...files.mutation-ownership-status.get-1.json | 2 +-
...es.mutation-ownership-worktree.show-1.json | 2 +-
...e-files.readterminalartifactpreview-1.json | 2 +-
...iew-load-files.readterminalartifact-1.json | 2 +-
...iew-load-files.readterminalartifact-2.json | 2 +-
...view-load-files.resolveterminalpath-1.json | 2 +-
...iew-save-files.readterminalartifact-1.json | 2 +-
...ew-save-files.writeterminalartifact-1.json | 2 +-
...ew-worktree-image-files.readpreview-1.json | 2 +-
...es.preview-worktree-text-files.read-1.json | 2 +-
.../matrix-files.tab-doc-files.read-1.json | 2 +-
...rix-files.tab-doc-files.readpreview-1.json | 2 +-
.../matrix-files.tab-doc-git.diff-1.json | 2 +-
...-files.terminal-path-tap-files.open-1.json | 2 +-
...-path-tap-files.resolveterminalpath-1.json | 2 +-
....base-ref-chain-repo.baserefdefault-1.json | 2 +-
...matrix-git.base-ref-chain-repo.list-1.json | 2 +-
...ix-git.base-ref-chain-worktree.show-1.json | 2 +-
....branch-diff-preview-git.branchdiff-1.json | 2 +-
...-git.changes-load-git.branchcompare-1.json | 2 +-
.../matrix-git.changes-load-git.status-1.json | 2 +-
.../matrix-git.changes-load-repo.list-1.json | 2 +-
...trix-git.changes-load-worktree.show-1.json | 2 +-
...essage-ai-git.generatecommitmessage-1.json | 2 +-
...tory-commit-files-git.commitcompare-1.json | 2 +-
...it.history-commit-files-git.history-1.json | 2 +-
...matrix-git.history-read-git.history-1.json | 2 +-
...ix-git.remote-prerequisite-git.push-1.json | 2 +-
...x-git.review-preparation-git.status-1.json | 2 +-
...ent-mutation-github.addissuecomment-1.json | 2 +-
...tion-github.addprreviewcommentreply-1.json | 2 +-
...ub.project.deleteissuecommentbyslug-1.json | 2 +-
...ub.project.updateissuecommentbyslug-1.json | 2 +-
...mutation-github.resolvereviewthread-1.json | 2 +-
...x-github.pr-mutation-github.mergepr-1.json | 2 +-
...r-mutation-github.removeprreviewers-1.json | 2 +-
...-mutation-github.requestprreviewers-1.json | 2 +-
...ub.pr-mutation-github.rerunprchecks-1.json | 2 +-
...b.pr-mutation-github.setprautomerge-1.json | 2 +-
...ub.pr-mutation-github.updateprstate-1.json | 2 +-
....pr-read-github.listassignableusers-1.json | 2 +-
...ithub.pr-read-github.prcheckdetails-1.json | 2 +-
...trix-github.pr-read-github.prchecks-1.json | 2 +-
...x-github.pr-read-github.prforbranch-1.json | 2 +-
...trix-github.pr-read-github.reposlug-1.json | 2 +-
...thub.pr-read-github.workitemdetails-1.json | 2 +-
...thub.pr-read-hostedreview.forbranch-1.json | 2 +-
...title-mutation-github.updateprtitle-1.json | 2 +-
...ix-home.host-accounts-accounts.list-1.json | 2 +-
...atrix-home.host-stats-stats.summary-1.json | 2 +-
...sh-runtime.clientevents.subscribe-1-1.json | 2 +-
...sh-runtime.clientevents.subscribe-1-2.json | 2 +-
...sh-runtime.clientevents.subscribe-1-3.json | 2 +-
...sh-runtime.clientevents.subscribe-2-1.json | 2 +-
.../matrix-host.view-settings-ui.get-1.json | 2 +-
.../matrix-host.view-settings-ui.set-1.json | 2 +-
....worktree-actions-worktree.activate-1.json | 2 +-
...x-host.worktree-actions-worktree.rm-1.json | 2 +-
...-host.worktree-actions-worktree.set-1.json | 2 +-
...-hostedreview.create-chain-git.push-1.json | 2 +-
...ew.create-chain-hostedreview.create-1.json | 2 +-
...tedreview.create-chain-worktree.set-1.json | 2 +-
...dreview.create-intent-git.bulkstage-1.json | 2 +-
...stedreview.create-intent-git.commit-1.json | 2 +-
...te-intent-git.generatecommitmessage-1.json | 2 +-
...hostedreview.create-intent-git.push-1.json | 2 +-
...stedreview.create-intent-git.status-1.json | 2 +-
...stedreview.create-intent-git.status-2.json | 2 +-
...stedreview.create-intent-git.status-3.json | 2 +-
...stedreview.create-intent-git.status-4.json | 2 +-
...w.create-intent-hostedreview.create-1.json | 2 +-
...hostedreview.getcreationeligibility-1.json | 2 +-
...hostedreview.getcreationeligibility-2.json | 2 +-
...edreview.create-intent-worktree.set-1.json | 2 +-
...hostedreview.getcreationeligibility-1.json | 2 +-
...-legacy-inventory-files.searchpaths-1.json | 2 +-
...-legacy-inventory-files.searchpaths-2.json | 2 +-
...trix-legacy-inventory-fresh-inventory.json | 2 +-
...matrix-legacy-inventory-old-inventory.json | 2 +-
...near-detail-barrier-linear.getissue-1.json | 2 +-
...detail-barrier-linear.issuecomments-1.json | 2 +-
...space-picker-linear.selectworkspace-1.json | 2 +-
...me-runtime.clientevents.subscribe-1-1.json | 2 +-
...me-runtime.clientevents.subscribe-1-2.json | 2 +-
...me-runtime.clientevents.subscribe-2-1.json | 2 +-
...ix-live-worktree-name-worktree.show-1.json | 2 +-
...ix-live-worktree-name-worktree.show-2.json | 2 +-
...ix-live-worktree-name-worktree.show-3.json | 2 +-
.../matrix-mobileweb.bundle-fetch-app-js.json | 853 ++++++++++++++++++
...rix-mobileweb.bundle-fetch-index-head.json | 853 ++++++++++++++++++
...rix-mobileweb.bundle-fetch-index-tail.json | 853 ++++++++++++++++++
...dle-fetch-mobileweb.bundle.manifest-1.json | 833 +++++++++++++++++
...-manifest-mobileweb.bundle.manifest-1.json | 674 ++++++++++++++
...ativechat.image-paste-terminal.send-1.json | 2 +-
...ativechat.image-paste-terminal.send-2.json | 2 +-
...e-upload-clipboard.startimageupload-1.json | 2 +-
...ings.mutatenativechatsessionoptions-1.json | 2 +-
...chestration.workerterminaluserinput-1.json | 2 +-
...vechat.terminal-write-terminal.send-1.json | 2 +-
...stream-notifications.getmissedsince-1.json | 2 +-
...op-stream-notifications.subscribe-1-1.json | 2 +-
...op-stream-notifications.subscribe-1-2.json | 2 +-
...op-stream-notifications.unsubscribe-1.json | 2 +-
...-test-screen-notifications.testpush-1.json | 2 +-
...missal-notifications.getmissedsince-1.json | 2 +-
...stration-notifications.registerpush-1.json | 2 +-
...ration-notifications.unregisterpush-1.json | 2 +-
...rix-pairing.pre-profile-direct-status.json | 2 +-
...ng.pre-profile-pairing.getendpoints-1.json | 2 +-
....pre-profile-pairing.provisionrelay-1.json | 2 +-
...trix-pairing.pre-profile-relay-status.json | 2 +-
...se-github.project.updateissuebyslug-1.json | 2 +-
...ntial-rotation-pairing.getendpoints-1.json | 2 +-
...ntial-rotation-pairing.getendpoints-2.json | 2 +-
...ial-rotation-pairing.provisionrelay-1.json | 2 +-
...direct-upgrade-pairing.getendpoints-1.json | 2 +-
...direct-upgrade-pairing.getendpoints-2.json | 2 +-
...rect-upgrade-pairing.provisionrelay-1.json | 2 +-
...iring-recovery-pairing.getendpoints-1.json | 2 +-
...rowser-tab-create-browser.tabcreate-1.json | 2 +-
...ion.content-create-files.createfile-1.json | 2 +-
...x-session.content-create-files.open-1.json | 2 +-
...x-session.content-create-status.get-1.json | 2 +-
...ession.content-create-worktree.show-1.json | 2 +-
...erminal-session.tabs.createterminal-1.json | 2 +-
...ssion.create-terminal-terminal.send-1.json | 2 +-
...ix-session.diff-notes-worktree.show-1.json | 2 +-
...on.diff-review-actions-worktree.set-1.json | 2 +-
...rix-session.diff-review-base-ref-show.json | 2 +-
...ssion.diff-review-git.branchcompare-1.json | 2 +-
...trix-session.diff-review-git.status-1.json | 2 +-
...atrix-session.diff-review-repo.list-1.json | 2 +-
...atrix-session.diff-review-review-show.json | 2 +-
...n.markdown-disk-fallback-files.read-1.json | 2 +-
...down-disk-fallback-markdown.readtab-1.json | 2 +-
...sion.markdown-save-markdown.savetab-1.json | 2 +-
...ve-chat-page-nativechat.readsession-1.json | 2 +-
...ve-chat-page-nativechat.subscribe-1-1.json | 2 +-
...ve-chat-page-nativechat.subscribe-2-1.json | 2 +-
...n.native-chat-readability-repo.list-1.json | 2 +-
...chestration.workerterminaluserinput-1.json | 2 +-
...sion.native-chat-stop-terminal.send-1.json | 2 +-
...sion.native-chat-stop-terminal.send-2.json | 2 +-
...pr-branch-context-git.branchcompare-1.json | 2 +-
...ession.pr-branch-context-git.status-1.json | 2 +-
...session.pr-branch-context-repo.list-1.json | 2 +-
...ion.pr-branch-context-worktree.show-1.json | 2 +-
...-session.pr-sidebar-github.prchecks-1.json | 2 +-
...ssion.pr-sidebar-github.prforbranch-1.json | 2 +-
...n.pr-sidebar-hostedreview.forbranch-1.json | 2 +-
...ix-session.pr-sidebar-worktree.show-1.json | 2 +-
...-triage-session.tabs.createterminal-1.json | 2 +-
...rix-session.pr-triage-terminal.send-1.json | 2 +-
...n.review-branch-diff-git.branchdiff-1.json | 2 +-
...x-session.review-file-diff-git.diff-1.json | 2 +-
...x-session.review-file-diff-git.diff-2.json | 2 +-
...x-session.review-file-diff-git.diff-3.json | 2 +-
...on.review-git-mutations-git.discard-1.json | 2 +-
...sion.review-git-mutations-git.stage-1.json | 2 +-
...sion.review-git-mutations-git.stage-2.json | 2 +-
...review-send-sheet-session.tabs.list-1.json | 2 +-
...x-session.startup-worktree.activate-1.json | 2 +-
...x-session.startup-worktree.activate-2.json | 2 +-
...ab-activation-session.tabs.activate-1.json | 2 +-
...ssion.tab-activation-terminal.focus-1.json | 2 +-
...ab-close-session-session.tabs.close-1.json | 2 +-
...ix-session.tab-close-terminal.close-1.json | 2 +-
...sion.tab-documents-markdown.readtab-1.json | 2 +-
...-session.tab-rename-terminal.rename-1.json | 2 +-
...on.tab-reveal-session.tabs.activate-1.json | 2 +-
...ession.tab-reveal-session.tabs.list-1.json | 2 +-
...abs-stream-health-session.tabs.list-1.json | 2 +-
...isplay-mode-terminal.setdisplaymode-1.json | 2 +-
...chestration.workerterminaluserinput-1.json | 2 +-
...-gesture-input-terminal.clearbuffer-1.json | 2 +-
...erminal-gesture-input-terminal.send-1.json | 2 +-
...chestration.workerterminaluserinput-1.json | 2 +-
...n.terminal-input-send-terminal.send-1.json | 2 +-
...on.terminal-inventory-terminal.list-1.json | 2 +-
...chestration.workerterminaluserinput-1.json | 2 +-
...session.terminal-paste-settings.get-1.json | 2 +-
...ession.terminal-paste-terminal.send-1.json | 2 +-
...ssion.worktree-connection-repo.list-1.json | 2 +-
...on.worktree-connection-settings.get-1.json | 2 +-
...t-read-preflight.detectremoteagents-1.json | 2 +-
...atrix-settings-agent-read-repo.list-1.json | 2 +-
...ix-settings-agent-read-settings.get-1.json | 2 +-
...ettings-best-effort-settings.update-1.json | 2 +-
...settings.bot-overrides-settings.get-1.json | 2 +-
...ttings.home-providers-linear.status-1.json | 2 +-
...ings.home-providers-preflight.check-1.json | 2 +-
...ettings.home-providers-settings.get-1.json | 2 +-
...local-agents-preflight.detectagents-1.json | 2 +-
...ings.new-tab-local-agents-repo.list-1.json | 2 +-
...s.new-tab-local-agents-settings.get-1.json | 2 +-
...s-settings.getterminalquickcommands-1.json | 2 +-
...ettings.updateterminalquickcommands-1.json | 2 +-
...ettings.repo-metadata-host.platform-1.json | 2 +-
...ix-settings.repo-metadata-repo.list-1.json | 2 +-
...settings.repo-metadata-settings.get-1.json | 2 +-
...po-metadata-ssh.listtargetsummaries-1.json | 2 +-
...esume-metadata-folderworkspace.list-1.json | 2 +-
...s.resume-metadata-projectgroup.list-1.json | 2 +-
...-settings.resume-metadata-repo.list-1.json | 2 +-
...ttings.resume-metadata-settings.get-1.json | 2 +-
...ettings.resume-metadata-worktree.ps-1.json | 2 +-
...ttings.task-hydration-linear.status-1.json | 2 +-
...ings.task-hydration-preflight.check-1.json | 2 +-
...ettings.task-hydration-settings.get-1.json | 2 +-
...-settings.task-hydration-status.get-1.json | 2 +-
...trix-settings.task-hydration-ui.get-1.json | 2 +-
....task-workspace-create-settings.get-1.json | 2 +-
...sk-workspace-create-worktree.create-1.json | 2 +-
...ettings.task-workspace-settings.get-1.json | 2 +-
...ngs.workspace-context-linear.status-1.json | 2 +-
...s.workspace-context-preflight.check-1.json | 2 +-
...ings.workspace-context-settings.get-1.json | 2 +-
...x-settings.workspace-context-ui.get-1.json | 2 +-
...tings.workspace-submit-settings.get-1.json | 2 +-
...tation-chunk-speech.dictation.chunk-1.json | 2 +-
...ion-session-speech.dictation.finish-1.json | 2 +-
...tion-session-speech.dictation.start-1.json | 2 +-
...ation-start-speech.dictation.cancel-1.json | 2 +-
...tation-start-speech.dictation.start-1.json | 2 +-
....setup-sheet-speech.dictation.setup-1.json | 2 +-
...ch.setup-sheet-speech.models.delete-1.json | 2 +-
....setup-sheet-speech.models.download-1.json | 2 +-
...eech.setup-sheet-speech.models.list-1.json | 2 +-
...cks-files-github.addprreviewcomment-1.json | 2 +-
...-checks-files-github.prfilecontents-1.json | 2 +-
...m-checks-files-github.rerunprchecks-1.json | 2 +-
...ks-files-github.resolvereviewthread-1.json | 2 +-
...checks-files-github.setprfileviewed-1.json | 2 +-
...mment-github-github.addissuecomment-1.json | 2 +-
...mment-gitlab-gitlab.addissuecomment-1.json | 2 +-
...mment-gitlab-mr-gitlab.addmrcomment-1.json | 2 +-
...etail-github-github.workitemdetails-1.json | 2 +-
...etail-gitlab-gitlab.workitemdetails-1.json | 2 +-
....item-detail-linear-linear.getissue-1.json | 2 +-
...-detail-linear-linear.issuecomments-1.json | 2 +-
...metadata-github.listassignableusers-1.json | 2 +-
...m-detail-metadata-github.listlabels-1.json | 2 +-
...ks.item-merge-gitlab-gitlab.mergemr-1.json | 2 +-
...tem-metadata-github-github.updatepr-1.json | 2 +-
...-metadata-gitlab-gitlab.updateissue-1.json | 2 +-
...-metadata-gitlab-mr-gitlab.updatemr-1.json | 2 +-
...-reply-merge-github.addissuecomment-1.json | 2 +-
...erge-github.addprreviewcommentreply-1.json | 2 +-
...sks.item-reply-merge-github.mergepr-1.json | 2 +-
...item-reply-merge-linear.updateissue-1.json | 2 +-
....item-review-github-github.prchecks-1.json | 2 +-
...ew-github-github.requestprreviewers-1.json | 2 +-
...em-status-gitlab-github.updateissue-1.json | 2 +-
...em-status-gitlab-gitlab.updateissue-1.json | 2 +-
...atus-gitlab-mr-gitlab.updatemrstate-1.json | 2 +-
...tasks.linear-connect-linear.connect-1.json | 2 +-
....linear-item-linear.addissuecomment-1.json | 2 +-
...asks.linear-item-linear.createissue-1.json | 2 +-
...x-tasks.linear-item-linear.getissue-1.json | 2 +-
...inear-team-context-linear.listteams-1.json | 2 +-
...near-team-context-linear.teamstates-1.json | 2 +-
...-tasks.paste-lookup-github.reposlug-1.json | 2 +-
...-tasks.paste-lookup-github.workitem-1.json | 2 +-
...e-lookup-github.workitembyownerrepo-1.json | 2 +-
....paste-lookup-gitlab.workitembypath-1.json | 2 +-
...-load-github.project.listaccessible-1.json | 2 +-
...board-load-github.project.listviews-1.json | 2 +-
...board-load-github.project.listviews-2.json | 2 +-
...oard-load-github.project.resolveref-1.json | 2 +-
...board-load-github.project.viewtable-1.json | 2 +-
....project-repo-slugs-github.reposlug-1.json | 2 +-
...ithub.project.addissuecommentbyslug-1.json | 2 +-
...ue-github.project.updateissuebyslug-1.json | 2 +-
...ub.project.updateissuecommentbyslug-1.json | 2 +-
...hub.project.updatepullrequestbyslug-1.json | 2 +-
...ithub.project.workitemdetailsbyslug-1.json | 2 +-
...ields-github.project.clearitemfield-1.json | 2 +-
...ithub.project.updateissuetypebyslug-1.json | 2 +-
...elds-github.project.updateitemfield-1.json | 2 +-
...les-merge-github.addprreviewcomment-1.json | 2 +-
...ject-row-files-merge-github.mergepr-1.json | 2 +-
...w-files-merge-github.prfilecontents-1.json | 2 +-
...-row-files-merge-github.updateissue-1.json | 2 +-
...ow-files-merge-github.updateprstate-1.json | 2 +-
...b.project.listassignableusersbyslug-1.json | 2 +-
...github.project.listissuetypesbyslug-1.json | 2 +-
...oad-github.project.listlabelsbyslug-1.json | 2 +-
...t-row-review-checks-github.prchecks-1.json | 2 +-
...ew-checks-github.requestprreviewers-1.json | 2 +-
...-review-checks-github.rerunprchecks-1.json | 2 +-
...eview-checks-github.setprfileviewed-1.json | 2 +-
...-row-threads-github.addissuecomment-1.json | 2 +-
...eads-github.addprreviewcommentreply-1.json | 2 +-
...ub.project.deleteissuecommentbyslug-1.json | 2 +-
...-threads-github.resolvereviewthread-1.json | 2 +-
...provider-load-github.countworkitems-1.json | 2 +-
....provider-load-github.listworkitems-1.json | 2 +-
...asks.provider-load-linear.listteams-1.json | 2 +-
...x-tasks.provider-load-linear.status-1.json | 2 +-
...tasks.provider-load-settings.update-1.json | 2 +-
...rix-tasks.route-repo-list-repo.list-1.json | 2 +-
...-source-search-github.listworkitems-1.json | 2 +-
...-source-search-gitlab.listworkitems-1.json | 2 +-
...art-source-search-linear.listissues-1.json | 2 +-
...t-source-search-linear.searchissues-1.json | 2 +-
...smart-source-search-repo.searchrefs-1.json | 2 +-
...sk-create-github-github.createissue-1.json | 2 +-
...asks.task-create-github-repo.update-1.json | 2 +-
...sk-create-gitlab-gitlab.createissue-1.json | 2 +-
...sk-create-linear-linear.createissue-1.json | 2 +-
...t-gitlab-items-gitlab.listworkitems-1.json | 2 +-
...task-list-gitlab-todos-gitlab.todos-1.json | 2 +-
....task-list-linear-linear.listissues-1.json | 2 +-
...ask-list-linear-linear.searchissues-1.json | 2 +-
...ks.workspace-source-repo.searchrefs-1.json | 2 +-
...workspace-source-repo.sparsepresets-1.json | 2 +-
...kspace-sparse-repo.savesparsepreset-1.json | 2 +-
...tasks.workspace-sparse-ssh.getstate-1.json | 2 +-
...ce-ssh-local-preflight.detectagents-1.json | 2 +-
...ce-ssh-preflight.detectremoteagents-1.json | 2 +-
...trix-tasks.workspace-ssh-repo.hooks-1.json | 2 +-
...rix-tasks.workspace-ssh-ssh.connect-1.json | 2 +-
...-terminal.query-reply-terminal.send-1.json | 2 +-
...chestration.workerterminaluserinput-1.json | 2 +-
...ix-terminal.raw-input-terminal.send-1.json | 2 +-
...chestration.workerterminaluserinput-1.json | 2 +-
...chestration.workerterminaluserinput-2.json | 2 +-
...wport-refit-terminal.updateviewport-1.json | 2 +-
...ansport.capability-probe-status.get-1.json | 2 +-
...nsport.host-status-gates-status.get-1.json | 2 +-
...-transport.pairing-race-direct-status.json | 2 +-
...x-transport.pairing-race-relay-status.json | 2 +-
...ee.agent-launch-create-agent.launch-1.json | 2 +-
...rktree.catalog-snapshot-worktree.ps-1.json | 2 +-
...rktree.create-retry-worktree.create-1.json | 2 +-
...x-worktree.home-catalog-worktree.ps-1.json | 2 +-
....hosted-base-worktree.resolvemrbase-1.json | 2 +-
....hosted-base-worktree.resolveprbase-1.json | 2 +-
...red-names-worktree.listretirednames-1.json | 2 +-
...x-worktree.review-link-worktree.set-1.json | 2 +-
...ree.runtime-capabilities-status.get-1.json | 2 +-
...ix-worktree.setup-hook-trust-ui.set-1.json | 2 +-
.../mobile-web-bundle-build-changed.json | 210 +++++
.../mobile-web-bundle-fetch-paged.json | 276 ++++++
.../mobile-web-bundle-manifest-read.json | 135 +++
.../mobile-web-bundle-unavailable.json | 90 ++
.../native-chat-image-paste-single.json | 2 +-
...e-chat-image-paste-stops-on-rejection.json | 2 +-
...ative-chat-image-paste-trailing-image.json | 2 +-
.../native-chat-image-paste-two-images.json | 2 +-
.../native-chat-image-upload-cancelled.json | 2 +-
...native-chat-image-upload-second-fails.json | 2 +-
.../native-chat-image-upload-single.json | 2 +-
...ative-chat-image-upload-start-refused.json | 2 +-
.../goldens/native-chat-image-upload-two.json | 2 +-
.../goldens/native-chat-page-earlier.json | 2 +-
.../native-chat-readability-local-repo.json | 2 +-
.../native-chat-readability-refused.json | 2 +-
.../native-chat-readability-remote-repo.json | 2 +-
...native-chat-session-option-pick-empty.json | 2 +-
...tive-chat-session-option-pick-refused.json | 2 +-
...tive-chat-session-option-pick-written.json | 2 +-
.../goldens/native-chat-stop-accepted.json | 2 +-
.../native-chat-stop-both-rejected.json | 2 +-
.../native-chat-stop-delivery-unknown.json | 2 +-
.../goldens/native-chat-write-accepted.json | 2 +-
.../goldens/native-chat-write-clear-line.json | 2 +-
.../native-chat-write-delivery-unknown.json | 2 +-
.../goldens/native-chat-write-rejected.json | 2 +-
.../native-chat-write-typed-command.json | 2 +-
.../goldens/new-tab-local-agents.json | 2 +-
.../new-workspace-repositories-fulfilled.json | 2 +-
.../notifications-desktop-stream-closed.json | 2 +-
...notifications-desktop-stream-replayed.json | 2 +-
.../goldens/notifications-desktop-stream.json | 2 +-
.../notifications-display-test-accepted.json | 2 +-
...fications-display-test-not-registered.json | 2 +-
...tifications-display-test-rate-limited.json | 2 +-
...fications-display-test-unknown-reason.json | 2 +-
.../notifications-push-gateway-rejected.json | 2 +-
.../notifications-push-registered.json | 2 +-
...re-profile-direct-wins-and-provisions.json | 2 +-
...ovision-unsupported-saves-direct-host.json | 2 +-
.../pairing-pre-profile-times-out.json | 2 +-
.../goldens/pr-branch-identity.json | 2 +-
.../goldens/pr-branch-repo-context.json | 2 +-
.../goldens/pr-comment-mutation.json | 2 +-
.../pr-comment-resolve-unconfirmed.json | 2 +-
.../goldens/pr-mutation-in-band-failure.json | 2 +-
.../goldens/pr-mutation-status.json | 2 +-
.../goldens/pr-read-fork-routing.json | 2 +-
.../goldens/pr-read-surface.json | 2 +-
.../goldens/pr-read-upstream-error.json | 2 +-
.../goldens/pr-sidebar-checks-refused.json | 2 +-
.../goldens/pr-sidebar-load.json | 2 +-
.../goldens/pr-title-mutation.json | 2 +-
.../goldens/pr-title-unconfirmed.json | 2 +-
.../goldens/pr-triage-invalid-terminal.json | 2 +-
.../goldens/pr-triage-launch.json | 2 +-
.../goldens/pr-triage-send-locked.json | 2 +-
.../goldens/probe-new-tab-both-refused.json | 2 +-
.../probe-new-tab-null-sibling-refused.json | 2 +-
...probe-new-tab-refused-sibling-rejects.json | 2 +-
...probe-new-tab-rejects-sibling-refused.json | 2 +-
.../push-dismissal-tray-reconciled.json | 2 +-
.../goldens/quick-commands-load-refused.json | 2 +-
.../quick-commands-loaded-and-saved.json | 2 +-
...uick-commands-save-refused-rolls-back.json | 2 +-
.../goldens/relay-direct-upgrade-commits.json | 2 +-
...ect-upgrade-unsupported-host-declines.json | 2 +-
...ay-pairing-recovery-invite-authorizes.json | 2 +-
...lay-pairing-recovery-resume-committed.json | 2 +-
.../relay-rotation-installs-and-commits.json | 2 +-
...ay-rotation-resumes-committed-pending.json | 2 +-
.../goldens/review-branch-diff-shapes.json | 2 +-
.../review-create-terminal-refused.json | 2 +-
.../goldens/review-file-diff-shapes.json | 2 +-
.../goldens/review-git-mutations-run.json | 2 +-
.../review-mark-reviewed-persists.json | 2 +-
.../review-mark-reviewed-rolls-back.json | 2 +-
.../goldens/review-open-in-session.json | 2 +-
.../review-send-notes-heals-stale-input.json | 2 +-
.../review-send-sheet-lists-terminals.json | 2 +-
.../goldens/review-stage-file.json | 2 +-
.../goldens/review-stage-refused.json | 2 +-
.../goldens/sc-base-ref-default.json | 2 +-
.../goldens/sc-base-ref-repo-fallback.json | 2 +-
.../goldens/sc-base-ref-unavailable.json | 2 +-
.../goldens/sc-base-ref-worktree-hit.json | 2 +-
.../goldens/sc-branch-diff-previewed.json | 2 +-
.../goldens/sc-changes-loaded.json | 2 +-
.../sc-commit-message-cancel-rejected.json | 2 +-
.../goldens/sc-commit-message-canceled.json | 2 +-
.../goldens/sc-commit-message-generated.json | 2 +-
.../goldens/sc-create-existing-review.json | 2 +-
...reate-intent-stage-commit-push-create.json | 2 +-
.../sc-create-intent-unlisted-provider.json | 2 +-
.../sc-create-link-failure-is-non-fatal.json | 2 +-
.../sc-create-pushes-then-creates.json | 2 +-
.../sc-create-refused-empty-message.json | 2 +-
.../sc-create-rejected-empty-message.json | 2 +-
.../goldens/sc-eligibility-fetched.json | 2 +-
.../goldens/sc-history-commit-files.json | 2 +-
.../goldens/sc-history-loaded.json | 2 +-
.../goldens/sc-pr-link-hosted-review.json | 2 +-
.../goldens/sc-pr-link-read.json | 2 +-
.../goldens/sc-pr-link-set.json | 2 +-
.../sc-prefill-unavailable-on-refusal.json | 2 +-
.../sc-prefill-unavailable-on-rejection.json | 2 +-
.../sc-prerequisite-force-with-lease.json | 2 +-
.../goldens/sc-prerequisite-publish.json | 2 +-
.../goldens/sc-prerequisite-push.json | 2 +-
.../goldens/sc-prerequisite-skipped.json | 2 +-
.../goldens/sc-reveal-first-poll.json | 2 +-
.../goldens/sc-reveal-timeout.json | 2 +-
.../sc-review-commit-inner-failure.json | 2 +-
...c-review-commit-refused-empty-message.json | 2 +-
.../goldens/sc-review-commit-rejected.json | 2 +-
.../goldens/sc-review-commit.json | 2 +-
.../sc-review-status-entries-not-array.json | 2 +-
.../goldens/sc-review-status-normalized.json | 2 +-
.../rpc-foundation/goldens/schedules-b3.json | 2 +-
...les-settings-home-providers-fulfilled.json | 2 +-
.../schedules-settings-new-tab-ssh.json | 2 +-
...ules-settings-repo-metadata-fulfilled.json | 2 +-
...es-settings-resume-metadata-fulfilled.json | 2 +-
...les-settings-task-hydration-fulfilled.json | 2 +-
...-settings-workspace-context-fulfilled.json | 2 +-
.../goldens/session-browser-tab-created.json | 2 +-
.../session-create-browser-refused.json | 2 +-
.../goldens/session-create-browser-tab.json | 2 +-
...ession-create-markdown-name-collision.json | 2 +-
.../goldens/session-create-markdown-note.json | 2 +-
...nal-ignores-a-second-create-in-flight.json | 2 +-
...minal-launches-an-agent-quick-command.json | 2 +-
.../session-create-terminal-refused.json | 2 +-
...ssion-create-terminal-replaces-active.json | 2 +-
...-create-terminal-runs-a-quick-command.json | 2 +-
.../session-create-terminal-with-prompt.json | 2 +-
...on-create-terminal-without-active-tab.json | 2 +-
...ession-create-terminal-without-handle.json | 2 +-
.../session-diff-notes-load-refused.json | 2 +-
.../goldens/session-diff-notes-loaded.json | 2 +-
.../goldens/session-file-tab-read.json | 2 +-
.../goldens/session-markdown-disk-read.json | 2 +-
.../goldens/session-markdown-disk-served.json | 2 +-
.../session-markdown-save-conflict.json | 2 +-
.../goldens/session-markdown-saved.json | 2 +-
.../session-markdown-tab-disk-fallback.json | 2 +-
.../goldens/session-markdown-tab-read.json | 2 +-
.../goldens/session-markdown-tab-refused.json | 2 +-
...session-startup-both-activation-sites.json | 2 +-
...artup-floating-route-skips-activation.json | 2 +-
...-keeps-terminals-visible-on-reconnect.json | 2 +-
...efused-tab-load-still-loads-terminals.json | 2 +-
...ion-tab-activation-focus-and-activate.json | 2 +-
.../session-tab-activation-refused.json | 2 +-
...ession-tab-activation-transport-error.json | 2 +-
.../session-tab-close-refused-keeps-tab.json | 2 +-
.../session-tab-close-session-tab.json | 2 +-
.../goldens/session-tab-close-terminal.json | 2 +-
.../goldens/session-tab-closed.json | 2 +-
.../goldens/session-tab-rename.json | 2 +-
.../goldens/session-tab-renamed.json | 2 +-
.../goldens/session-tabs-health-errored.json | 2 +-
.../session-tabs-health-reconciled.json | 2 +-
.../goldens/session-tabs-health-refused.json | 2 +-
...abs-health-stale-application-revision.json | 2 +-
...terminal-display-mode-auto-take-floor.json | 2 +-
...isplay-mode-auto-without-device-token.json | 2 +-
...al-display-mode-auto-without-viewport.json | 2 +-
...inal-display-mode-drops-second-toggle.json | 2 +-
...sion-terminal-display-mode-to-desktop.json | 2 +-
...session-terminal-list-dedupes-handles.json | 2 +-
.../session-terminal-list-empty-guarded.json | 2 +-
.../goldens/session-terminal-list-merged.json | 2 +-
.../session-terminal-list-refused.json | 2 +-
.../settings-bot-overrides-fulfilled.json | 2 +-
...ettings-bot-overrides-refresh-refused.json | 2 +-
.../settings-bot-overrides-refused.json | 2 +-
...ettings-bot-overrides-transport-error.json | 2 +-
.../goldens/settings-home-coalesced.json | 2 +-
.../settings-home-providers-fulfilled.json | 2 +-
...ings-home-providers-refuse-after-data.json | 2 +-
.../settings-home-providers-refused.json | 2 +-
...ttings-home-providers-transport-error.json | 2 +-
.../goldens/settings-new-tab-refused.json | 2 +-
.../goldens/settings-new-tab-ssh.json | 2 +-
.../settings-new-tab-transport-error.json | 2 +-
.../goldens/settings-repo-cache-expiry.json | 2 +-
.../settings-repo-metadata-fulfilled.json | 2 +-
.../goldens/settings-repo-metadata-icons.json | 2 +-
...tings-repo-metadata-refuse-after-data.json | 2 +-
.../settings-repo-metadata-refused.json | 2 +-
.../settings-repo-metadata-single-host.json | 2 +-
...ettings-repo-metadata-transport-error.json | 2 +-
.../settings-resume-metadata-fulfilled.json | 2 +-
...ngs-resume-metadata-refuse-after-data.json | 2 +-
.../settings-resume-metadata-refused.json | 2 +-
...tings-resume-metadata-transport-error.json | 2 +-
.../settings-task-hydration-fulfilled.json | 2 +-
...ings-task-hydration-refuse-after-data.json | 2 +-
.../settings-task-hydration-refused.json | 2 +-
...ttings-task-hydration-transport-error.json | 2 +-
...settings-task-workspace-create-linear.json | 2 +-
...-task-workspace-create-pr-start-point.json | 2 +-
.../settings-task-workspace-fulfilled.json | 2 +-
.../settings-task-workspace-refused.json | 2 +-
...ttings-task-workspace-transport-error.json | 2 +-
.../goldens/settings-task-write.json | 2 +-
.../settings-workspace-context-fulfilled.json | 2 +-
...s-workspace-context-refuse-after-data.json | 2 +-
.../settings-workspace-context-refused.json | 2 +-
...ngs-workspace-context-transport-error.json | 2 +-
.../settings-workspace-submit-fulfilled.json | 2 +-
.../settings-workspace-submit-refused.json | 2 +-
...ings-workspace-submit-transport-error.json | 2 +-
.../speech-audio-chunk-acknowledged.json | 2 +-
.../speech-desktop-start-fulfilled.json | 2 +-
...speech-desktop-start-recording-failed.json | 2 +-
.../speech-desktop-start-superseded.json | 2 +-
.../speech-dictation-session-cancelled.json | 2 +-
.../speech-dictation-session-transcript.json | 2 +-
.../speech-setup-sheet-denied-to-mobile.json | 2 +-
.../goldens/speech-setup-sheet-fulfilled.json | 2 +-
.../speech-setup-sheet-legacy-desktop.json | 2 +-
.../speech-setup-sheet-model-vocabulary.json | 2 +-
.../structured-agent-session-created.json | 2 +-
.../goldens/structured-launch-created.json | 2 +-
.../structured-launch-definitive-refusal.json | 2 +-
...uctured-launch-replays-dropped-create.json | 2 +-
.../structured-launch-support-refused.json | 2 +-
.../structured-launch-unsupported.json | 2 +-
.../goldens/tasks-route-repo-list.json | 2 +-
.../terminal-gesture-flush-and-clear.json | 2 +-
.../goldens/terminal-input-send-accepted.json | 2 +-
.../goldens/terminal-input-send-refused.json | 2 +-
.../goldens/terminal-live-input-accepted.json | 2 +-
.../goldens/terminal-paste-accepted.json | 2 +-
.../goldens/terminal-paste-refused.json | 2 +-
.../terminal-query-reply-accepted.json | 2 +-
.../terminal-query-reply-unsubscribed.json | 2 +-
.../goldens/terminal-raw-input-refused.json | 2 +-
.../goldens/terminal-raw-input-reported.json | 2 +-
.../terminal-takeover-report-accepted.json | 2 +-
.../terminal-takeover-report-retried.json | 2 +-
.../terminal-viewport-refit-applied.json | 2 +-
...erminal-viewport-refit-legacy-desktop.json | 2 +-
...terminal-worktree-connection-resolved.json | 2 +-
.../goldens/tk-create-github.json | 2 +-
.../goldens/tk-create-gitlab.json | 2 +-
.../goldens/tk-create-linear.json | 2 +-
.../goldens/tk-item-checks-files.json | 2 +-
.../goldens/tk-item-comment-github.json | 2 +-
.../goldens/tk-item-comment-gitlab-mr.json | 2 +-
.../goldens/tk-item-comment-gitlab.json | 2 +-
.../tk-item-detail-github-reactions.json | 2 +-
.../goldens/tk-item-detail-github.json | 2 +-
.../tk-item-detail-gitlab-reactions.json | 2 +-
.../goldens/tk-item-detail-gitlab.json | 2 +-
.../goldens/tk-item-detail-linear.json | 2 +-
.../goldens/tk-item-detail-metadata.json | 2 +-
.../goldens/tk-item-merge-gitlab.json | 2 +-
.../goldens/tk-item-metadata-github.json | 2 +-
.../goldens/tk-item-metadata-gitlab-mr.json | 2 +-
.../goldens/tk-item-metadata-gitlab.json | 2 +-
.../goldens/tk-item-reply-merge.json | 2 +-
.../goldens/tk-item-review-github.json | 2 +-
.../goldens/tk-item-status-gitlab-mr.json | 2 +-
.../goldens/tk-item-status-gitlab.json | 2 +-
.../goldens/tk-linear-connect.json | 2 +-
.../goldens/tk-linear-item.json | 2 +-
.../goldens/tk-linear-team-context.json | 2 +-
.../goldens/tk-list-gitlab-items.json | 2 +-
.../goldens/tk-list-gitlab-todos.json | 2 +-
.../goldens/tk-list-linear.json | 2 +-
.../goldens/tk-project-board-load.json | 2 +-
.../goldens/tk-project-repo-slugs.json | 2 +-
.../tk-project-row-comments-issue.json | 2 +-
.../goldens/tk-project-row-comments-pr.json | 2 +-
.../goldens/tk-project-row-detail.json | 2 +-
.../goldens/tk-project-row-fields.json | 2 +-
.../goldens/tk-project-row-files-merge.json | 2 +-
.../goldens/tk-project-row-metadata-load.json | 2 +-
.../goldens/tk-project-row-review-checks.json | 2 +-
.../goldens/tk-project-row-threads.json | 2 +-
.../goldens/tk-provider-load.json | 2 +-
...-capability-probe-cutover-reasks-fast.json | 2 +-
...ty-probe-non-string-capabilities-drop.json | 2 +-
.../transport-capability-probe-publishes.json | 2 +-
...rt-capability-probe-refused-backs-off.json | 2 +-
...-status-gates-drop-keeps-capabilities.json | 2 +-
.../transport-host-status-gates-ready.json | 2 +-
...rt-host-status-gates-refused-degrades.json | 2 +-
.../transport-pairing-race-both-refused.json | 2 +-
...t-pairing-race-direct-completes-first.json | 2 +-
...rt-pairing-race-relay-completes-first.json | 2 +-
...g-race-relay-wins-when-direct-refused.json | 2 +-
.../goldens/tw-capabilities-advertised.json | 2 +-
.../tw-capabilities-cutover-retried.json | 2 +-
.../tw-capabilities-legacy-idempotency.json | 2 +-
.../tw-create-retry-agent-launched.json | 2 +-
.../tw-create-retry-ambiguous-after-drop.json | 2 +-
...reate-retry-ambiguous-while-connected.json | 2 +-
...e-retry-ambiguous-without-idempotency.json | 2 +-
.../goldens/tw-create-retry-created.json | 2 +-
.../tw-create-retry-name-collision.json | 2 +-
.../tw-create-retry-unretryable-refusal.json | 2 +-
.../goldens/tw-create-retry-warning-kept.json | 2 +-
.../goldens/tw-hosted-base-resolved.json | 2 +-
.../goldens/tw-hosted-base-soft-error.json | 2 +-
.../goldens/tw-paste-lookup-resolved.json | 2 +-
.../goldens/tw-paste-lookup-slug-refused.json | 2 +-
.../tw-paste-lookup-slug-unsupported.json | 2 +-
.../goldens/tw-setup-hook-trust-always.json | 2 +-
.../goldens/tw-setup-hook-trust-approved.json | 2 +-
.../tw-smart-search-all-providers.json | 2 +-
...tw-smart-search-gitlab-provider-error.json | 2 +-
.../tw-smart-search-linear-listed.json | 2 +-
.../tw-task-preferences-resume-write.json | 2 +-
.../tw-workspace-source-presets-refused.json | 2 +-
.../goldens/tw-workspace-source-presets.json | 2 +-
.../tw-workspace-sparse-missing-preset.json | 2 +-
.../goldens/tw-workspace-sparse-saved.json | 2 +-
.../tw-workspace-ssh-connect-refused.json | 2 +-
.../goldens/tw-workspace-ssh-connected.json | 2 +-
.../tw-workspace-ssh-local-agents.json | 2 +-
.../goldens/tw-workspace-ssh-not-ready.json | 2 +-
.../worktree-catalog-snapshot-unreadable.json | 2 +-
.../goldens/worktree-catalog-snapshot.json | 2 +-
.../goldens/worktree-home-catalog.json | 2 +-
.../goldens/worktree-retired-names.json | 2 +-
mobile/rpc-foundation/pilot-scenarios.json | 329 ++++++-
.../mobile-web-bundle-probe-row.tsx | 106 +++
mobile/src/diagnostics/troubleshoot-view.tsx | 9 +-
.../use-mobile-web-bundle-probe.test.tsx | 305 +++++++
.../use-mobile-web-bundle-probe.ts | 121 +++
.../src/test-support/rpc-recording/README.md | 8 +-
.../mobile-web-bundle-mount-adapters.ts | 101 +++
.../adapters/mounted-operation-modules.ts | 2 +
.../mutants/operation-mutations.ts | 8 +
.../mutants/pilot-mutants.test.ts | 3 +-
.../transport/mobile-web-bundle-fetch.test.ts | 530 +++++++++++
.../src/transport/mobile-web-bundle-fetch.ts | 192 ++++
.../transport/mobile-web-bundle-operations.ts | 77 ++
.../mobile-web-bundle-reply-schemas.test.ts | 301 ++++++
.../mobile-web-bundle-reply-schemas.ts | 82 ++
.../transport/rpc-operation-compile-fence.ts | 12 +
.../transport/rpc-operation-test-families.ts | 8 +
mobile/src/transport/rpc-operation.ts | 9 +-
806 files changed, 7756 insertions(+), 789 deletions(-)
create mode 100644 mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-app-js.json
create mode 100644 mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-index-head.json
create mode 100644 mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-index-tail.json
create mode 100644 mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-mobileweb.bundle.manifest-1.json
create mode 100644 mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-manifest-mobileweb.bundle.manifest-1.json
create mode 100644 mobile/rpc-foundation/goldens/mobile-web-bundle-build-changed.json
create mode 100644 mobile/rpc-foundation/goldens/mobile-web-bundle-fetch-paged.json
create mode 100644 mobile/rpc-foundation/goldens/mobile-web-bundle-manifest-read.json
create mode 100644 mobile/rpc-foundation/goldens/mobile-web-bundle-unavailable.json
create mode 100644 mobile/src/diagnostics/mobile-web-bundle-probe-row.tsx
create mode 100644 mobile/src/diagnostics/use-mobile-web-bundle-probe.test.tsx
create mode 100644 mobile/src/diagnostics/use-mobile-web-bundle-probe.ts
create mode 100644 mobile/src/test-support/rpc-recording/adapters/mobile-web-bundle-mount-adapters.ts
create mode 100644 mobile/src/transport/mobile-web-bundle-fetch.test.ts
create mode 100644 mobile/src/transport/mobile-web-bundle-fetch.ts
create mode 100644 mobile/src/transport/mobile-web-bundle-operations.ts
create mode 100644 mobile/src/transport/mobile-web-bundle-reply-schemas.test.ts
create mode 100644 mobile/src/transport/mobile-web-bundle-reply-schemas.ts
diff --git a/mobile/app/troubleshoot.tsx b/mobile/app/troubleshoot.tsx
index d07368b21f9..d64b238b577 100644
--- a/mobile/app/troubleshoot.tsx
+++ b/mobile/app/troubleshoot.tsx
@@ -1,7 +1,15 @@
import { useRouter } from 'expo-router'
+import { MobileWebBundleProbeRow } from '../src/diagnostics/mobile-web-bundle-probe-row'
import { TroubleshootView } from '../src/diagnostics/troubleshoot-view'
import { useTroubleshootDiagnostics } from '../src/diagnostics/use-troubleshoot-diagnostics'
+// Same guard as push-token.ts: `__DEV__` is undefined outside the React Native runtime. The import
+// above is static, so a release bundle still carries the row's graph and evaluates its hoisted
+// schemas at load; nothing mounts, no host is looked up and no request is made. This repo has no
+// `__DEV__`-conditional `require` idiom to trim it with — every `require` in `mobile/src` is a Metro
+// asset path — so introducing one is a change for the shell in Phase B, not for this row.
+const isDevelopmentBuild = typeof __DEV__ !== 'undefined' && __DEV__
+
export default function NativeTroubleshootRoute() {
const router = useRouter()
const { rootRef, diagnosticStatus, checks, runDiagnostics } = useTroubleshootDiagnostics()
@@ -13,6 +21,7 @@ export default function NativeTroubleshootRoute() {
runDiagnostics={() => void runDiagnostics()}
onBack={() => router.back()}
onConnectionLog={() => router.push('/connection-log')}
+ developerRow={isDevelopmentBuild ? : null}
/>
)
}
diff --git a/mobile/rpc-foundation/goldens/aivault-history-scan-fulfilled.json b/mobile/rpc-foundation/goldens/aivault-history-scan-fulfilled.json
index ee3189f2216..9c087a374be 100644
--- a/mobile/rpc-foundation/goldens/aivault-history-scan-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/aivault-history-scan-fulfilled.json
@@ -3,7 +3,7 @@
"family": "aiVault.history",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7add46922ba5486e56c8acd99a53d083b605f5d98f3cc44ee3cb350ec0406080",
diff --git a/mobile/rpc-foundation/goldens/aivault-history-scan-unsupported.json b/mobile/rpc-foundation/goldens/aivault-history-scan-unsupported.json
index b517233d432..638829922ee 100644
--- a/mobile/rpc-foundation/goldens/aivault-history-scan-unsupported.json
+++ b/mobile/rpc-foundation/goldens/aivault-history-scan-unsupported.json
@@ -3,7 +3,7 @@
"family": "aiVault.history",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7add46922ba5486e56c8acd99a53d083b605f5d98f3cc44ee3cb350ec0406080",
diff --git a/mobile/rpc-foundation/goldens/aivault-history-scan-worktrees-late.json b/mobile/rpc-foundation/goldens/aivault-history-scan-worktrees-late.json
index 56bd6c33543..9978849b8a6 100644
--- a/mobile/rpc-foundation/goldens/aivault-history-scan-worktrees-late.json
+++ b/mobile/rpc-foundation/goldens/aivault-history-scan-worktrees-late.json
@@ -3,7 +3,7 @@
"family": "aiVault.history",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7add46922ba5486e56c8acd99a53d083b605f5d98f3cc44ee3cb350ec0406080",
diff --git a/mobile/rpc-foundation/goldens/aivault-history-screen-listed.json b/mobile/rpc-foundation/goldens/aivault-history-screen-listed.json
index 3c5c89093ad..eab9430cd59 100644
--- a/mobile/rpc-foundation/goldens/aivault-history-screen-listed.json
+++ b/mobile/rpc-foundation/goldens/aivault-history-screen-listed.json
@@ -3,7 +3,7 @@
"family": "aiVault.history-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c78ab47eea594b7e1988403321ff9ba135ca60c513bb9d5848bdde26c0ffe3c3",
diff --git a/mobile/rpc-foundation/goldens/aivault-history-screen-worktrees.json b/mobile/rpc-foundation/goldens/aivault-history-screen-worktrees.json
index 83c59238a20..3ad575d4db6 100644
--- a/mobile/rpc-foundation/goldens/aivault-history-screen-worktrees.json
+++ b/mobile/rpc-foundation/goldens/aivault-history-screen-worktrees.json
@@ -3,7 +3,7 @@
"family": "aiVault.history-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c78ab47eea594b7e1988403321ff9ba135ca60c513bb9d5848bdde26c0ffe3c3",
diff --git a/mobile/rpc-foundation/goldens/aivault-resume-launch-create-refused.json b/mobile/rpc-foundation/goldens/aivault-resume-launch-create-refused.json
index 0808828297a..e1486fd4f31 100644
--- a/mobile/rpc-foundation/goldens/aivault-resume-launch-create-refused.json
+++ b/mobile/rpc-foundation/goldens/aivault-resume-launch-create-refused.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/aivault-resume-launch-invalid-tab.json b/mobile/rpc-foundation/goldens/aivault-resume-launch-invalid-tab.json
index 80faebdce14..38bc92f8e6b 100644
--- a/mobile/rpc-foundation/goldens/aivault-resume-launch-invalid-tab.json
+++ b/mobile/rpc-foundation/goldens/aivault-resume-launch-invalid-tab.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/aivault-resume-launch-locked.json b/mobile/rpc-foundation/goldens/aivault-resume-launch-locked.json
index 0c08254868a..1ccb03de2fa 100644
--- a/mobile/rpc-foundation/goldens/aivault-resume-launch-locked.json
+++ b/mobile/rpc-foundation/goldens/aivault-resume-launch-locked.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/aivault-resume-launch-sent.json b/mobile/rpc-foundation/goldens/aivault-resume-launch-sent.json
index 838bafe3ddb..8d6b4dc5bf3 100644
--- a/mobile/rpc-foundation/goldens/aivault-resume-launch-sent.json
+++ b/mobile/rpc-foundation/goldens/aivault-resume-launch-sent.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/aivault-resume-prepare-refused.json b/mobile/rpc-foundation/goldens/aivault-resume-prepare-refused.json
index 4bd4642be41..a66ddfd8b42 100644
--- a/mobile/rpc-foundation/goldens/aivault-resume-prepare-refused.json
+++ b/mobile/rpc-foundation/goldens/aivault-resume-prepare-refused.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/aivault-resume-prepare-repin.json b/mobile/rpc-foundation/goldens/aivault-resume-prepare-repin.json
index 0b169324f13..28508997823 100644
--- a/mobile/rpc-foundation/goldens/aivault-resume-prepare-repin.json
+++ b/mobile/rpc-foundation/goldens/aivault-resume-prepare-repin.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/aivault-resume-prepare-skipped.json b/mobile/rpc-foundation/goldens/aivault-resume-prepare-skipped.json
index 2d7ccac51e3..ce575e1c76a 100644
--- a/mobile/rpc-foundation/goldens/aivault-resume-prepare-skipped.json
+++ b/mobile/rpc-foundation/goldens/aivault-resume-prepare-skipped.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/aivault-resume-prepare-unavailable.json b/mobile/rpc-foundation/goldens/aivault-resume-prepare-unavailable.json
index 7a43e993eb5..cfdbc612399 100644
--- a/mobile/rpc-foundation/goldens/aivault-resume-prepare-unavailable.json
+++ b/mobile/rpc-foundation/goldens/aivault-resume-prepare-unavailable.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/b1.json b/mobile/rpc-foundation/goldens/b1.json
index 424f72c16b3..8c137e1148b 100644
--- a/mobile/rpc-foundation/goldens/b1.json
+++ b/mobile/rpc-foundation/goldens/b1.json
@@ -3,7 +3,7 @@
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca",
diff --git a/mobile/rpc-foundation/goldens/b2.json b/mobile/rpc-foundation/goldens/b2.json
index aaddc937a7f..cee86516d62 100644
--- a/mobile/rpc-foundation/goldens/b2.json
+++ b/mobile/rpc-foundation/goldens/b2.json
@@ -3,7 +3,7 @@
"family": "project-explicit-false",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab",
diff --git a/mobile/rpc-foundation/goldens/b3.json b/mobile/rpc-foundation/goldens/b3.json
index a11a8c18f7b..0846bf836a6 100644
--- a/mobile/rpc-foundation/goldens/b3.json
+++ b/mobile/rpc-foundation/goldens/b3.json
@@ -3,7 +3,7 @@
"family": "linear-detail-barrier",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab",
diff --git a/mobile/rpc-foundation/goldens/browser-dialog-accepted.json b/mobile/rpc-foundation/goldens/browser-dialog-accepted.json
index b9422b20df3..2e32118b188 100644
--- a/mobile/rpc-foundation/goldens/browser-dialog-accepted.json
+++ b/mobile/rpc-foundation/goldens/browser-dialog-accepted.json
@@ -3,7 +3,7 @@
"family": "browser.dialog",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/browser-dialog-dismissed.json b/mobile/rpc-foundation/goldens/browser-dialog-dismissed.json
index f8a246ba8c8..ef6b8c81d0f 100644
--- a/mobile/rpc-foundation/goldens/browser-dialog-dismissed.json
+++ b/mobile/rpc-foundation/goldens/browser-dialog-dismissed.json
@@ -3,7 +3,7 @@
"family": "browser.dialog",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/browser-keyboard-input.json b/mobile/rpc-foundation/goldens/browser-keyboard-input.json
index 5812dae044d..860c57da1af 100644
--- a/mobile/rpc-foundation/goldens/browser-keyboard-input.json
+++ b/mobile/rpc-foundation/goldens/browser-keyboard-input.json
@@ -3,7 +3,7 @@
"family": "browser.keyboard",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/browser-pointer-click-accepted.json b/mobile/rpc-foundation/goldens/browser-pointer-click-accepted.json
index 15ce598798e..10fd6455b47 100644
--- a/mobile/rpc-foundation/goldens/browser-pointer-click-accepted.json
+++ b/mobile/rpc-foundation/goldens/browser-pointer-click-accepted.json
@@ -3,7 +3,7 @@
"family": "browser.pointer-click",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/browser-pointer-click-fallback.json b/mobile/rpc-foundation/goldens/browser-pointer-click-fallback.json
index be0b8c92452..13a8575e2d2 100644
--- a/mobile/rpc-foundation/goldens/browser-pointer-click-fallback.json
+++ b/mobile/rpc-foundation/goldens/browser-pointer-click-fallback.json
@@ -3,7 +3,7 @@
"family": "browser.pointer-click",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/browser-wheel-scrolled.json b/mobile/rpc-foundation/goldens/browser-wheel-scrolled.json
index 783db0a2a6e..7f03d11b14c 100644
--- a/mobile/rpc-foundation/goldens/browser-wheel-scrolled.json
+++ b/mobile/rpc-foundation/goldens/browser-wheel-scrolled.json
@@ -3,7 +3,7 @@
"family": "browser.wheel",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/clipboard-image-attachment-anonymous.json b/mobile/rpc-foundation/goldens/clipboard-image-attachment-anonymous.json
index 7ccc43bcfe0..40499472cf9 100644
--- a/mobile/rpc-foundation/goldens/clipboard-image-attachment-anonymous.json
+++ b/mobile/rpc-foundation/goldens/clipboard-image-attachment-anonymous.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-attachment",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/clipboard-image-attachment-blocked-before-send.json b/mobile/rpc-foundation/goldens/clipboard-image-attachment-blocked-before-send.json
index 3bea239bfab..6c87b9c24fc 100644
--- a/mobile/rpc-foundation/goldens/clipboard-image-attachment-blocked-before-send.json
+++ b/mobile/rpc-foundation/goldens/clipboard-image-attachment-blocked-before-send.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-attachment",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/clipboard-image-attachment-cancelled.json b/mobile/rpc-foundation/goldens/clipboard-image-attachment-cancelled.json
index 01b4e22c3e4..1645ab66eee 100644
--- a/mobile/rpc-foundation/goldens/clipboard-image-attachment-cancelled.json
+++ b/mobile/rpc-foundation/goldens/clipboard-image-attachment-cancelled.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-attachment",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/clipboard-image-attachment-pasted.json b/mobile/rpc-foundation/goldens/clipboard-image-attachment-pasted.json
index 23184e8aa59..9e9ef92db17 100644
--- a/mobile/rpc-foundation/goldens/clipboard-image-attachment-pasted.json
+++ b/mobile/rpc-foundation/goldens/clipboard-image-attachment-pasted.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-attachment",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/clipboard-image-attachment-upload-refused.json b/mobile/rpc-foundation/goldens/clipboard-image-attachment-upload-refused.json
index 34fba5c6308..52e53f73ee7 100644
--- a/mobile/rpc-foundation/goldens/clipboard-image-attachment-upload-refused.json
+++ b/mobile/rpc-foundation/goldens/clipboard-image-attachment-upload-refused.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-attachment",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/clipboard-image-upload-aborts-on-chunk-failure.json b/mobile/rpc-foundation/goldens/clipboard-image-upload-aborts-on-chunk-failure.json
index 86b73c156fc..4406c87bbba 100644
--- a/mobile/rpc-foundation/goldens/clipboard-image-upload-aborts-on-chunk-failure.json
+++ b/mobile/rpc-foundation/goldens/clipboard-image-upload-aborts-on-chunk-failure.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/clipboard-image-upload-chunked.json b/mobile/rpc-foundation/goldens/clipboard-image-upload-chunked.json
index b69a45cda87..97803218f94 100644
--- a/mobile/rpc-foundation/goldens/clipboard-image-upload-chunked.json
+++ b/mobile/rpc-foundation/goldens/clipboard-image-upload-chunked.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/clipboard-image-upload-single-frame-fallback.json b/mobile/rpc-foundation/goldens/clipboard-image-upload-single-frame-fallback.json
index 2a03971b35b..d70f943b27f 100644
--- a/mobile/rpc-foundation/goldens/clipboard-image-upload-single-frame-fallback.json
+++ b/mobile/rpc-foundation/goldens/clipboard-image-upload-single-frame-fallback.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/clipboard-image-upload-start-refused.json b/mobile/rpc-foundation/goldens/clipboard-image-upload-start-refused.json
index 25d136c95ad..7d54ad13020 100644
--- a/mobile/rpc-foundation/goldens/clipboard-image-upload-start-refused.json
+++ b/mobile/rpc-foundation/goldens/clipboard-image-upload-start-refused.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/codex-reset-credit-consumed.json b/mobile/rpc-foundation/goldens/codex-reset-credit-consumed.json
index 16d13527d53..95683cb0275 100644
--- a/mobile/rpc-foundation/goldens/codex-reset-credit-consumed.json
+++ b/mobile/rpc-foundation/goldens/codex-reset-credit-consumed.json
@@ -3,7 +3,7 @@
"family": "components.codex-reset-credit",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "76b53dea504a688493843e23e8e7d052fc196f559bb1e2579d0fd38bf3156d0e",
diff --git a/mobile/rpc-foundation/goldens/codex-reset-credit-resumed.json b/mobile/rpc-foundation/goldens/codex-reset-credit-resumed.json
index 67ffe01d128..ade586d43d5 100644
--- a/mobile/rpc-foundation/goldens/codex-reset-credit-resumed.json
+++ b/mobile/rpc-foundation/goldens/codex-reset-credit-resumed.json
@@ -3,7 +3,7 @@
"family": "components.codex-reset-credit",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "76b53dea504a688493843e23e8e7d052fc196f559bb1e2579d0fd38bf3156d0e",
diff --git a/mobile/rpc-foundation/goldens/components-codex-capability.json b/mobile/rpc-foundation/goldens/components-codex-capability.json
index 13211875513..9fcba28c07e 100644
--- a/mobile/rpc-foundation/goldens/components-codex-capability.json
+++ b/mobile/rpc-foundation/goldens/components-codex-capability.json
@@ -3,7 +3,7 @@
"family": "components.codex-reset-capability",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7",
diff --git a/mobile/rpc-foundation/goldens/components-setup-ask.json b/mobile/rpc-foundation/goldens/components-setup-ask.json
index bfb612a8164..448bba08a94 100644
--- a/mobile/rpc-foundation/goldens/components-setup-ask.json
+++ b/mobile/rpc-foundation/goldens/components-setup-ask.json
@@ -3,7 +3,7 @@
"family": "components.setup-script",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7",
diff --git a/mobile/rpc-foundation/goldens/components-target-local.json b/mobile/rpc-foundation/goldens/components-target-local.json
index a4052d7ef4f..584dff58131 100644
--- a/mobile/rpc-foundation/goldens/components-target-local.json
+++ b/mobile/rpc-foundation/goldens/components-target-local.json
@@ -3,7 +3,7 @@
"family": "components.execution-target-local",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7",
diff --git a/mobile/rpc-foundation/goldens/components-target-ssh.json b/mobile/rpc-foundation/goldens/components-target-ssh.json
index 83581b3af71..3041922356f 100644
--- a/mobile/rpc-foundation/goldens/components-target-ssh.json
+++ b/mobile/rpc-foundation/goldens/components-target-ssh.json
@@ -3,7 +3,7 @@
"family": "components.execution-target",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7",
diff --git a/mobile/rpc-foundation/goldens/diff-review-branch-compare.json b/mobile/rpc-foundation/goldens/diff-review-branch-compare.json
index dbbd4a250a8..62103ec119d 100644
--- a/mobile/rpc-foundation/goldens/diff-review-branch-compare.json
+++ b/mobile/rpc-foundation/goldens/diff-review-branch-compare.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/diff-review-branch-file-diff.json b/mobile/rpc-foundation/goldens/diff-review-branch-file-diff.json
index 72d68f80f5e..82aca40040a 100644
--- a/mobile/rpc-foundation/goldens/diff-review-branch-file-diff.json
+++ b/mobile/rpc-foundation/goldens/diff-review-branch-file-diff.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/diff-review-notes-refused-before-compare.json b/mobile/rpc-foundation/goldens/diff-review-notes-refused-before-compare.json
index db90689dc6f..52f956516b4 100644
--- a/mobile/rpc-foundation/goldens/diff-review-notes-refused-before-compare.json
+++ b/mobile/rpc-foundation/goldens/diff-review-notes-refused-before-compare.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/diff-review-refused-file-diff.json b/mobile/rpc-foundation/goldens/diff-review-refused-file-diff.json
index 37f4dafd853..6cf14bfa6cf 100644
--- a/mobile/rpc-foundation/goldens/diff-review-refused-file-diff.json
+++ b/mobile/rpc-foundation/goldens/diff-review-refused-file-diff.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/diff-review-snapshot.json b/mobile/rpc-foundation/goldens/diff-review-snapshot.json
index 4d566df590b..2396ef2c684 100644
--- a/mobile/rpc-foundation/goldens/diff-review-snapshot.json
+++ b/mobile/rpc-foundation/goldens/diff-review-snapshot.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/diff-review-status-unavailable.json b/mobile/rpc-foundation/goldens/diff-review-status-unavailable.json
index f1275b88b4d..0a9c707944b 100644
--- a/mobile/rpc-foundation/goldens/diff-review-status-unavailable.json
+++ b/mobile/rpc-foundation/goldens/diff-review-status-unavailable.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/diff-review-worktree-file-diff.json b/mobile/rpc-foundation/goldens/diff-review-worktree-file-diff.json
index 6586c18c453..9803138546f 100644
--- a/mobile/rpc-foundation/goldens/diff-review-worktree-file-diff.json
+++ b/mobile/rpc-foundation/goldens/diff-review-worktree-file-diff.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/file-tap-open-refused.json b/mobile/rpc-foundation/goldens/file-tap-open-refused.json
index 7cf29b9a7f2..96a52c5a0ec 100644
--- a/mobile/rpc-foundation/goldens/file-tap-open-refused.json
+++ b/mobile/rpc-foundation/goldens/file-tap-open-refused.json
@@ -3,7 +3,7 @@
"family": "files.terminal-path-tap",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b",
diff --git a/mobile/rpc-foundation/goldens/file-tap-opens-worktree-file.json b/mobile/rpc-foundation/goldens/file-tap-opens-worktree-file.json
index 6f5cab9af62..9460ecdad88 100644
--- a/mobile/rpc-foundation/goldens/file-tap-opens-worktree-file.json
+++ b/mobile/rpc-foundation/goldens/file-tap-opens-worktree-file.json
@@ -3,7 +3,7 @@
"family": "files.terminal-path-tap",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b",
diff --git a/mobile/rpc-foundation/goldens/file-tap-previews-absolute-artifact.json b/mobile/rpc-foundation/goldens/file-tap-previews-absolute-artifact.json
index f029affc780..51af13c9b6a 100644
--- a/mobile/rpc-foundation/goldens/file-tap-previews-absolute-artifact.json
+++ b/mobile/rpc-foundation/goldens/file-tap-previews-absolute-artifact.json
@@ -3,7 +3,7 @@
"family": "files.terminal-path-tap",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b",
diff --git a/mobile/rpc-foundation/goldens/file-tap-resolve-miss.json b/mobile/rpc-foundation/goldens/file-tap-resolve-miss.json
index d2f90369eb0..c57d44a47fd 100644
--- a/mobile/rpc-foundation/goldens/file-tap-resolve-miss.json
+++ b/mobile/rpc-foundation/goldens/file-tap-resolve-miss.json
@@ -3,7 +3,7 @@
"family": "files.terminal-path-tap",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b",
diff --git a/mobile/rpc-foundation/goldens/file-tap-resolve-refused.json b/mobile/rpc-foundation/goldens/file-tap-resolve-refused.json
index b74a5018ded..e0782e72028 100644
--- a/mobile/rpc-foundation/goldens/file-tap-resolve-refused.json
+++ b/mobile/rpc-foundation/goldens/file-tap-resolve-refused.json
@@ -3,7 +3,7 @@
"family": "files.terminal-path-tap",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b",
diff --git a/mobile/rpc-foundation/goldens/files-explorer-legacy-fallback.json b/mobile/rpc-foundation/goldens/files-explorer-legacy-fallback.json
index cea0f5c91e0..bc8949b6ddc 100644
--- a/mobile/rpc-foundation/goldens/files-explorer-legacy-fallback.json
+++ b/mobile/rpc-foundation/goldens/files-explorer-legacy-fallback.json
@@ -3,7 +3,7 @@
"family": "files.explorer-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7a42a348f4407b94cf75ac77a4b6b783b7d28103b1ae1d111d2708dab0dd4a0c",
diff --git a/mobile/rpc-foundation/goldens/files-explorer-readdir.json b/mobile/rpc-foundation/goldens/files-explorer-readdir.json
index 84669eee874..3635407b85e 100644
--- a/mobile/rpc-foundation/goldens/files-explorer-readdir.json
+++ b/mobile/rpc-foundation/goldens/files-explorer-readdir.json
@@ -3,7 +3,7 @@
"family": "files.explorer-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7a42a348f4407b94cf75ac77a4b6b783b7d28103b1ae1d111d2708dab0dd4a0c",
diff --git a/mobile/rpc-foundation/goldens/files-ownership-local.json b/mobile/rpc-foundation/goldens/files-ownership-local.json
index c1b2a2b89ff..b6fee34f12f 100644
--- a/mobile/rpc-foundation/goldens/files-ownership-local.json
+++ b/mobile/rpc-foundation/goldens/files-ownership-local.json
@@ -3,7 +3,7 @@
"family": "files.mutation-ownership",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-ownership-ssh.json b/mobile/rpc-foundation/goldens/files-ownership-ssh.json
index aea3fd487dc..1c7281ba01b 100644
--- a/mobile/rpc-foundation/goldens/files-ownership-ssh.json
+++ b/mobile/rpc-foundation/goldens/files-ownership-ssh.json
@@ -3,7 +3,7 @@
"family": "files.mutation-ownership",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json b/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json
index 3541aa7ccb4..f51dbbd96b3 100644
--- a/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json
+++ b/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json
@@ -3,7 +3,7 @@
"family": "files.preview-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-preview-artifact-image-read.json b/mobile/rpc-foundation/goldens/files-preview-artifact-image-read.json
index b5f0e107b3f..d656c291e6b 100644
--- a/mobile/rpc-foundation/goldens/files-preview-artifact-image-read.json
+++ b/mobile/rpc-foundation/goldens/files-preview-artifact-image-read.json
@@ -3,7 +3,7 @@
"family": "files.preview-artifact-image",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-preview-artifact-image.json b/mobile/rpc-foundation/goldens/files-preview-artifact-image.json
index 74aa49f9220..8c11d914f1d 100644
--- a/mobile/rpc-foundation/goldens/files-preview-artifact-image.json
+++ b/mobile/rpc-foundation/goldens/files-preview-artifact-image.json
@@ -3,7 +3,7 @@
"family": "files.preview-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json b/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json
index dd57ba203de..a2643397928 100644
--- a/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json
+++ b/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json
@@ -3,7 +3,7 @@
"family": "files.preview-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-preview-worktree-image-read.json b/mobile/rpc-foundation/goldens/files-preview-worktree-image-read.json
index 8d16cefba74..3a934f629fe 100644
--- a/mobile/rpc-foundation/goldens/files-preview-worktree-image-read.json
+++ b/mobile/rpc-foundation/goldens/files-preview-worktree-image-read.json
@@ -3,7 +3,7 @@
"family": "files.preview-worktree-image",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-preview-worktree-image.json b/mobile/rpc-foundation/goldens/files-preview-worktree-image.json
index a3472a3c4a5..6205702638e 100644
--- a/mobile/rpc-foundation/goldens/files-preview-worktree-image.json
+++ b/mobile/rpc-foundation/goldens/files-preview-worktree-image.json
@@ -3,7 +3,7 @@
"family": "files.preview-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-preview-worktree-text-read.json b/mobile/rpc-foundation/goldens/files-preview-worktree-text-read.json
index 7c427d89318..e89fb7239b5 100644
--- a/mobile/rpc-foundation/goldens/files-preview-worktree-text-read.json
+++ b/mobile/rpc-foundation/goldens/files-preview-worktree-text-read.json
@@ -3,7 +3,7 @@
"family": "files.preview-worktree-text",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-preview-worktree.json b/mobile/rpc-foundation/goldens/files-preview-worktree.json
index 1d642951eb4..285dd5b2070 100644
--- a/mobile/rpc-foundation/goldens/files-preview-worktree.json
+++ b/mobile/rpc-foundation/goldens/files-preview-worktree.json
@@ -3,7 +3,7 @@
"family": "files.preview-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-save-blind.json b/mobile/rpc-foundation/goldens/files-save-blind.json
index e3e07a2b881..5a3abcf56fd 100644
--- a/mobile/rpc-foundation/goldens/files-save-blind.json
+++ b/mobile/rpc-foundation/goldens/files-save-blind.json
@@ -3,7 +3,7 @@
"family": "files.preview-save",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-save-verified.json b/mobile/rpc-foundation/goldens/files-save-verified.json
index a9ab9936cf2..0421a3cba2b 100644
--- a/mobile/rpc-foundation/goldens/files-save-verified.json
+++ b/mobile/rpc-foundation/goldens/files-save-verified.json
@@ -3,7 +3,7 @@
"family": "files.preview-save",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json b/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json
index 704f63849e6..a6a119288df 100644
--- a/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json
+++ b/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json
@@ -3,7 +3,7 @@
"family": "files.tab-doc",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/home-host-accounts.json b/mobile/rpc-foundation/goldens/home-host-accounts.json
index 0b1dc5777a1..8206ebce25d 100644
--- a/mobile/rpc-foundation/goldens/home-host-accounts.json
+++ b/mobile/rpc-foundation/goldens/home-host-accounts.json
@@ -3,7 +3,7 @@
"family": "home.host-accounts",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c632fdbc4b730777ecb09f08bec14cca0586042b01ed99d40d0228806c7def4a",
diff --git a/mobile/rpc-foundation/goldens/home-host-stats.json b/mobile/rpc-foundation/goldens/home-host-stats.json
index 524d1ab36b2..1e17e46e1ab 100644
--- a/mobile/rpc-foundation/goldens/home-host-stats.json
+++ b/mobile/rpc-foundation/goldens/home-host-stats.json
@@ -3,7 +3,7 @@
"family": "home.host-stats",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b",
diff --git a/mobile/rpc-foundation/goldens/host-view-settings-sync.json b/mobile/rpc-foundation/goldens/host-view-settings-sync.json
index 7565fd9cbc3..b63a50b9e0b 100644
--- a/mobile/rpc-foundation/goldens/host-view-settings-sync.json
+++ b/mobile/rpc-foundation/goldens/host-view-settings-sync.json
@@ -3,7 +3,7 @@
"family": "host.view-settings",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b",
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
index 83ed50c9a95..7bfa1f93583 100644
--- a/mobile/rpc-foundation/goldens/host-worktree-actions-pin-open-delete.json
+++ b/mobile/rpc-foundation/goldens/host-worktree-actions-pin-open-delete.json
@@ -3,7 +3,7 @@
"family": "host.worktree-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639",
diff --git a/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json b/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json
index 73c0867bb0d..52fd008c50c 100644
--- a/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json
+++ b/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json
@@ -3,7 +3,7 @@
"family": "host.worktree-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639",
diff --git a/mobile/rpc-foundation/goldens/host-worktree-refresh-stream.json b/mobile/rpc-foundation/goldens/host-worktree-refresh-stream.json
index 3c9c1434487..9d28e5e2ebd 100644
--- a/mobile/rpc-foundation/goldens/host-worktree-refresh-stream.json
+++ b/mobile/rpc-foundation/goldens/host-worktree-refresh-stream.json
@@ -3,7 +3,7 @@
"family": "host-worktree-refresh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/interruptions-inventory-lifecycle.json b/mobile/rpc-foundation/goldens/interruptions-inventory-lifecycle.json
index 853310eb8b2..1634c69eff3 100644
--- a/mobile/rpc-foundation/goldens/interruptions-inventory-lifecycle.json
+++ b/mobile/rpc-foundation/goldens/interruptions-inventory-lifecycle.json
@@ -3,7 +3,7 @@
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca",
diff --git a/mobile/rpc-foundation/goldens/interruptions-settings-bot-overrides-fulfilled.json b/mobile/rpc-foundation/goldens/interruptions-settings-bot-overrides-fulfilled.json
index 2c8c813bf43..0de13f9f0b6 100644
--- a/mobile/rpc-foundation/goldens/interruptions-settings-bot-overrides-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/interruptions-settings-bot-overrides-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.bot-overrides",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/inventory-lifecycle.json b/mobile/rpc-foundation/goldens/inventory-lifecycle.json
index f34ecb55237..9c65d9e03f8 100644
--- a/mobile/rpc-foundation/goldens/inventory-lifecycle.json
+++ b/mobile/rpc-foundation/goldens/inventory-lifecycle.json
@@ -3,7 +3,7 @@
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca",
diff --git a/mobile/rpc-foundation/goldens/inventory-repeat-query.json b/mobile/rpc-foundation/goldens/inventory-repeat-query.json
index c1719dc71c9..55e705fe802 100644
--- a/mobile/rpc-foundation/goldens/inventory-repeat-query.json
+++ b/mobile/rpc-foundation/goldens/inventory-repeat-query.json
@@ -3,7 +3,7 @@
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca",
diff --git a/mobile/rpc-foundation/goldens/lifecycle-b3.json b/mobile/rpc-foundation/goldens/lifecycle-b3.json
index 3df3403dd81..7faa0707243 100644
--- a/mobile/rpc-foundation/goldens/lifecycle-b3.json
+++ b/mobile/rpc-foundation/goldens/lifecycle-b3.json
@@ -3,7 +3,7 @@
"family": "linear-detail-barrier",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab",
diff --git a/mobile/rpc-foundation/goldens/lifecycle-inventory-lifecycle.json b/mobile/rpc-foundation/goldens/lifecycle-inventory-lifecycle.json
index 738ac1d76d7..792d8d69e95 100644
--- a/mobile/rpc-foundation/goldens/lifecycle-inventory-lifecycle.json
+++ b/mobile/rpc-foundation/goldens/lifecycle-inventory-lifecycle.json
@@ -3,7 +3,7 @@
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca",
diff --git a/mobile/rpc-foundation/goldens/lifecycle-settings-bot-overrides-fulfilled.json b/mobile/rpc-foundation/goldens/lifecycle-settings-bot-overrides-fulfilled.json
index e13d93bc00f..e6711bde5a0 100644
--- a/mobile/rpc-foundation/goldens/lifecycle-settings-bot-overrides-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/lifecycle-settings-bot-overrides-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.bot-overrides",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/lifecycle-settings-task-hydration-fulfilled.json b/mobile/rpc-foundation/goldens/lifecycle-settings-task-hydration-fulfilled.json
index 344911618f1..d4b5bac6b88 100644
--- a/mobile/rpc-foundation/goldens/lifecycle-settings-task-hydration-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/lifecycle-settings-task-hydration-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/lifecycle-settings-workspace-context-fulfilled.json b/mobile/rpc-foundation/goldens/lifecycle-settings-workspace-context-fulfilled.json
index b92956af95c..ca3b5b30a64 100644
--- a/mobile/rpc-foundation/goldens/lifecycle-settings-workspace-context-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/lifecycle-settings-workspace-context-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-context",
"namedDeltas": ["new-workspace-runtime-context-null-results-degrade-to-absent"],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/linear-select-workspace.json b/mobile/rpc-foundation/goldens/linear-select-workspace.json
index c05e32cb10f..a2bb58f3661 100644
--- a/mobile/rpc-foundation/goldens/linear-select-workspace.json
+++ b/mobile/rpc-foundation/goldens/linear-select-workspace.json
@@ -3,7 +3,7 @@
"family": "linear.select-workspace-picker",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b65996c152b632d553a31e07e31ea5c76f998eada42cf0966923d730da21908f",
diff --git a/mobile/rpc-foundation/goldens/live-worktree-name-stream.json b/mobile/rpc-foundation/goldens/live-worktree-name-stream.json
index 13eb852db99..9bff3a4e51b 100644
--- a/mobile/rpc-foundation/goldens/live-worktree-name-stream.json
+++ b/mobile/rpc-foundation/goldens/live-worktree-name-stream.json
@@ -3,7 +3,7 @@
"family": "live-worktree-name",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/matrix-agentsession.structured-create-agentsession.create-1.json b/mobile/rpc-foundation/goldens/matrix-agentsession.structured-create-agentsession.create-1.json
index 70e9cd3a5c0..6f0f60122d4 100644
--- a/mobile/rpc-foundation/goldens/matrix-agentsession.structured-create-agentsession.create-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-agentsession.structured-create-agentsession.create-1.json
@@ -3,7 +3,7 @@
"family": "agentSession.structured-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6",
diff --git a/mobile/rpc-foundation/goldens/matrix-agentsession.structured-create-agentsession.createsupport-1.json b/mobile/rpc-foundation/goldens/matrix-agentsession.structured-create-agentsession.createsupport-1.json
index 0e2a209ad15..37896453de4 100644
--- a/mobile/rpc-foundation/goldens/matrix-agentsession.structured-create-agentsession.createsupport-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-agentsession.structured-create-agentsession.createsupport-1.json
@@ -3,7 +3,7 @@
"family": "agentSession.structured-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6",
diff --git a/mobile/rpc-foundation/goldens/matrix-agentsession.structured-launch-agentsession.createsupport-1.json b/mobile/rpc-foundation/goldens/matrix-agentsession.structured-launch-agentsession.createsupport-1.json
index 4d5b49f379a..85653cf50d7 100644
--- a/mobile/rpc-foundation/goldens/matrix-agentsession.structured-launch-agentsession.createsupport-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-agentsession.structured-launch-agentsession.createsupport-1.json
@@ -3,7 +3,7 @@
"family": "agentSession.structured-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6",
diff --git a/mobile/rpc-foundation/goldens/matrix-aivault.history-aivault.listsessions-1.json b/mobile/rpc-foundation/goldens/matrix-aivault.history-aivault.listsessions-1.json
index f555965c67a..201a59ce8c7 100644
--- a/mobile/rpc-foundation/goldens/matrix-aivault.history-aivault.listsessions-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-aivault.history-aivault.listsessions-1.json
@@ -3,7 +3,7 @@
"family": "aiVault.history",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7add46922ba5486e56c8acd99a53d083b605f5d98f3cc44ee3cb350ec0406080",
diff --git a/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-platform-status.json b/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-platform-status.json
index 959c2f6ab7c..55caa0ee5b1 100644
--- a/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-platform-status.json
+++ b/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-platform-status.json
@@ -3,7 +3,7 @@
"family": "aiVault.history-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c78ab47eea594b7e1988403321ff9ba135ca60c513bb9d5848bdde26c0ffe3c3",
diff --git a/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-status.get-2.json b/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-status.get-2.json
index a9a79e25f57..68ca8a29cfd 100644
--- a/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-status.get-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-status.get-2.json
@@ -3,7 +3,7 @@
"family": "aiVault.history-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c78ab47eea594b7e1988403321ff9ba135ca60c513bb9d5848bdde26c0ffe3c3",
diff --git a/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-worktree.ps-1.json b/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-worktree.ps-1.json
index 32ae31e6ce8..b2abd8acd44 100644
--- a/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-worktree.ps-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-aivault.history-screen-worktree.ps-1.json
@@ -3,7 +3,7 @@
"family": "aiVault.history-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c78ab47eea594b7e1988403321ff9ba135ca60c513bb9d5848bdde26c0ffe3c3",
diff --git a/mobile/rpc-foundation/goldens/matrix-aivault.history-status.get-1.json b/mobile/rpc-foundation/goldens/matrix-aivault.history-status.get-1.json
index bd9253c7c0d..8053b35fc98 100644
--- a/mobile/rpc-foundation/goldens/matrix-aivault.history-status.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-aivault.history-status.get-1.json
@@ -3,7 +3,7 @@
"family": "aiVault.history",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7add46922ba5486e56c8acd99a53d083b605f5d98f3cc44ee3cb350ec0406080",
diff --git a/mobile/rpc-foundation/goldens/matrix-aivault.resume-launch-session.tabs.createterminal-1.json b/mobile/rpc-foundation/goldens/matrix-aivault.resume-launch-session.tabs.createterminal-1.json
index 50ea47be769..421223a8d7f 100644
--- a/mobile/rpc-foundation/goldens/matrix-aivault.resume-launch-session.tabs.createterminal-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-aivault.resume-launch-session.tabs.createterminal-1.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/matrix-aivault.resume-launch-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-aivault.resume-launch-terminal.send-1.json
index 6cdef2e7283..2868c463b3d 100644
--- a/mobile/rpc-foundation/goldens/matrix-aivault.resume-launch-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-aivault.resume-launch-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/matrix-aivault.resume-preparation-aivault.preparesessionresume-1.json b/mobile/rpc-foundation/goldens/matrix-aivault.resume-preparation-aivault.preparesessionresume-1.json
index 8ef05104d57..6f715931a9e 100644
--- a/mobile/rpc-foundation/goldens/matrix-aivault.resume-preparation-aivault.preparesessionresume-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-aivault.resume-preparation-aivault.preparesessionresume-1.json
@@ -3,7 +3,7 @@
"family": "aiVault.resume-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb",
diff --git a/mobile/rpc-foundation/goldens/matrix-browser.dialog-browser.dialogaccept-1.json b/mobile/rpc-foundation/goldens/matrix-browser.dialog-browser.dialogaccept-1.json
index 006be6ad564..6f893b8f5da 100644
--- a/mobile/rpc-foundation/goldens/matrix-browser.dialog-browser.dialogaccept-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-browser.dialog-browser.dialogaccept-1.json
@@ -3,7 +3,7 @@
"family": "browser.dialog",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/matrix-browser.keyboard-browser.keyboardinserttext-1.json b/mobile/rpc-foundation/goldens/matrix-browser.keyboard-browser.keyboardinserttext-1.json
index 2dbd58984b4..2032bf4b1c4 100644
--- a/mobile/rpc-foundation/goldens/matrix-browser.keyboard-browser.keyboardinserttext-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-browser.keyboard-browser.keyboardinserttext-1.json
@@ -3,7 +3,7 @@
"family": "browser.keyboard",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/matrix-browser.keyboard-browser.keypress-1.json b/mobile/rpc-foundation/goldens/matrix-browser.keyboard-browser.keypress-1.json
index 078648f615f..7e582828527 100644
--- a/mobile/rpc-foundation/goldens/matrix-browser.keyboard-browser.keypress-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-browser.keyboard-browser.keypress-1.json
@@ -3,7 +3,7 @@
"family": "browser.keyboard",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mouseclick-1.json b/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mouseclick-1.json
index 9e47d02bddb..9253a936da4 100644
--- a/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mouseclick-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mouseclick-1.json
@@ -3,7 +3,7 @@
"family": "browser.pointer-click",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mousedown-1.json b/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mousedown-1.json
index 0df087718f9..b7984e55abf 100644
--- a/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mousedown-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mousedown-1.json
@@ -3,7 +3,7 @@
"family": "browser.pointer-click",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mousemove-1.json b/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mousemove-1.json
index fbdcd63f4da..9e6243891d2 100644
--- a/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mousemove-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mousemove-1.json
@@ -3,7 +3,7 @@
"family": "browser.pointer-click",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mouseup-1.json b/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mouseup-1.json
index 56e9ae62833..fb4d631b251 100644
--- a/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mouseup-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-browser.pointer-click-browser.mouseup-1.json
@@ -3,7 +3,7 @@
"family": "browser.pointer-click",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/matrix-browser.wheel-browser.mousemove-1.json b/mobile/rpc-foundation/goldens/matrix-browser.wheel-browser.mousemove-1.json
index b0811e193a6..f151f3b3933 100644
--- a/mobile/rpc-foundation/goldens/matrix-browser.wheel-browser.mousemove-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-browser.wheel-browser.mousemove-1.json
@@ -3,7 +3,7 @@
"family": "browser.wheel",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/matrix-browser.wheel-browser.mousewheel-1.json b/mobile/rpc-foundation/goldens/matrix-browser.wheel-browser.mousewheel-1.json
index 939488d91a9..93f0adb616f 100644
--- a/mobile/rpc-foundation/goldens/matrix-browser.wheel-browser.mousewheel-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-browser.wheel-browser.mousewheel-1.json
@@ -3,7 +3,7 @@
"family": "browser.wheel",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658",
diff --git a/mobile/rpc-foundation/goldens/matrix-clipboard.image-attachment-clipboard.startimageupload-1.json b/mobile/rpc-foundation/goldens/matrix-clipboard.image-attachment-clipboard.startimageupload-1.json
index a93ce6407e2..b96753d8d24 100644
--- a/mobile/rpc-foundation/goldens/matrix-clipboard.image-attachment-clipboard.startimageupload-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-clipboard.image-attachment-clipboard.startimageupload-1.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-attachment",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/matrix-clipboard.image-upload-clipboard.saveimageastempfile-1.json b/mobile/rpc-foundation/goldens/matrix-clipboard.image-upload-clipboard.saveimageastempfile-1.json
index 4a554ca2aa2..6e7ac708fe1 100644
--- a/mobile/rpc-foundation/goldens/matrix-clipboard.image-upload-clipboard.saveimageastempfile-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-clipboard.image-upload-clipboard.saveimageastempfile-1.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/matrix-clipboard.image-upload-clipboard.startimageupload-1.json b/mobile/rpc-foundation/goldens/matrix-clipboard.image-upload-clipboard.startimageupload-1.json
index 1a19f87851b..6bf519616f7 100644
--- a/mobile/rpc-foundation/goldens/matrix-clipboard.image-upload-clipboard.startimageupload-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-clipboard.image-upload-clipboard.startimageupload-1.json
@@ -3,7 +3,7 @@
"family": "clipboard.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
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
index 78dc2c550d2..e1d74ee4acd 100644
--- 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
@@ -3,7 +3,7 @@
"family": "components.codex-reset-capability",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7",
diff --git a/mobile/rpc-foundation/goldens/matrix-components.codex-reset-credit-accounts.consumecodexresetcredit-1.json b/mobile/rpc-foundation/goldens/matrix-components.codex-reset-credit-accounts.consumecodexresetcredit-1.json
index 69a4d5612ab..775bd039507 100644
--- a/mobile/rpc-foundation/goldens/matrix-components.codex-reset-credit-accounts.consumecodexresetcredit-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-components.codex-reset-credit-accounts.consumecodexresetcredit-1.json
@@ -3,7 +3,7 @@
"family": "components.codex-reset-credit",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "76b53dea504a688493843e23e8e7d052fc196f559bb1e2579d0fd38bf3156d0e",
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
index 1a8d82eefc7..c4d2cb8b35b 100644
--- 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
@@ -3,7 +3,7 @@
"family": "components.execution-target-local",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7",
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
index 4ef5502e028..af2f982f16d 100644
--- 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
@@ -3,7 +3,7 @@
"family": "components.execution-target",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7",
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
index 9e7ee19ac54..d83cf728358 100644
--- 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
@@ -3,7 +3,7 @@
"family": "components.execution-target",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7",
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
index 5e1362ee1a2..582bcf99d25 100644
--- 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
@@ -3,7 +3,7 @@
"family": "components.execution-target",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7",
diff --git a/mobile/rpc-foundation/goldens/matrix-components.new-workspace-repositories-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-components.new-workspace-repositories-repo.list-1.json
index db08cb0a1cf..d62336945f6 100644
--- a/mobile/rpc-foundation/goldens/matrix-components.new-workspace-repositories-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-components.new-workspace-repositories-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "components.new-workspace-repositories",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "64c1772f0f95a3c43fbb14398a8804b2b4784f7f18874e4fd79767ae634c7faa",
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
index 4e69f077ce1..efb3484c637 100644
--- 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
@@ -3,7 +3,7 @@
"family": "components.setup-script",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7",
diff --git a/mobile/rpc-foundation/goldens/matrix-files.explorer-screen-files.list-1.json b/mobile/rpc-foundation/goldens/matrix-files.explorer-screen-files.list-1.json
index eca6a71d703..89801f19313 100644
--- a/mobile/rpc-foundation/goldens/matrix-files.explorer-screen-files.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-files.explorer-screen-files.list-1.json
@@ -3,7 +3,7 @@
"family": "files.explorer-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7a42a348f4407b94cf75ac77a4b6b783b7d28103b1ae1d111d2708dab0dd4a0c",
diff --git a/mobile/rpc-foundation/goldens/matrix-files.explorer-screen-files.readdir-1.json b/mobile/rpc-foundation/goldens/matrix-files.explorer-screen-files.readdir-1.json
index 1da89da354e..f6922f9ddcc 100644
--- a/mobile/rpc-foundation/goldens/matrix-files.explorer-screen-files.readdir-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-files.explorer-screen-files.readdir-1.json
@@ -3,7 +3,7 @@
"family": "files.explorer-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7a42a348f4407b94cf75ac77a4b6b783b7d28103b1ae1d111d2708dab0dd4a0c",
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
index 5be34b18290..026288fd2cd 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.mutation-ownership",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
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
index 3f5b4de815c..723f06a7683 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.mutation-ownership",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
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
index 05380376292..81bbf599592 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.mutation-ownership",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/matrix-files.preview-artifact-image-files.readterminalartifactpreview-1.json b/mobile/rpc-foundation/goldens/matrix-files.preview-artifact-image-files.readterminalartifactpreview-1.json
index 5ec96e49f04..4e192f50fe9 100644
--- a/mobile/rpc-foundation/goldens/matrix-files.preview-artifact-image-files.readterminalartifactpreview-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-files.preview-artifact-image-files.readterminalartifactpreview-1.json
@@ -3,7 +3,7 @@
"family": "files.preview-artifact-image",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
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
index 971f35d057b..24f83afdffb 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.preview-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
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
index 237069c4cd5..be9e5945688 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.preview-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
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
index 1424a7b1067..1b07ca8e439 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.preview-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
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
index 3c2c830bff2..810068a90fe 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.preview-save",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
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
index 7de1dcc0f63..6d342cac764 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.preview-save",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/matrix-files.preview-worktree-image-files.readpreview-1.json b/mobile/rpc-foundation/goldens/matrix-files.preview-worktree-image-files.readpreview-1.json
index 365dd8d34ef..abff758344f 100644
--- a/mobile/rpc-foundation/goldens/matrix-files.preview-worktree-image-files.readpreview-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-files.preview-worktree-image-files.readpreview-1.json
@@ -3,7 +3,7 @@
"family": "files.preview-worktree-image",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/matrix-files.preview-worktree-text-files.read-1.json b/mobile/rpc-foundation/goldens/matrix-files.preview-worktree-text-files.read-1.json
index a18c1b98594..d395395e190 100644
--- a/mobile/rpc-foundation/goldens/matrix-files.preview-worktree-text-files.read-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-files.preview-worktree-text-files.read-1.json
@@ -3,7 +3,7 @@
"family": "files.preview-worktree-text",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
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
index 1da1adef54c..24700019285 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.tab-doc",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
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
index 1736e6e9def..a9522036b8f 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.tab-doc",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
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
index 6821ae4aa11..40a3d75279d 100644
--- 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
@@ -3,7 +3,7 @@
"family": "files.tab-doc",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309",
diff --git a/mobile/rpc-foundation/goldens/matrix-files.terminal-path-tap-files.open-1.json b/mobile/rpc-foundation/goldens/matrix-files.terminal-path-tap-files.open-1.json
index bdf424f3fa1..2d307403d23 100644
--- a/mobile/rpc-foundation/goldens/matrix-files.terminal-path-tap-files.open-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-files.terminal-path-tap-files.open-1.json
@@ -3,7 +3,7 @@
"family": "files.terminal-path-tap",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b",
diff --git a/mobile/rpc-foundation/goldens/matrix-files.terminal-path-tap-files.resolveterminalpath-1.json b/mobile/rpc-foundation/goldens/matrix-files.terminal-path-tap-files.resolveterminalpath-1.json
index 31d3005d1b1..58906eb7ce8 100644
--- a/mobile/rpc-foundation/goldens/matrix-files.terminal-path-tap-files.resolveterminalpath-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-files.terminal-path-tap-files.resolveterminalpath-1.json
@@ -3,7 +3,7 @@
"family": "files.terminal-path-tap",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-repo.baserefdefault-1.json b/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-repo.baserefdefault-1.json
index 4699d770255..2680929c395 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-repo.baserefdefault-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-repo.baserefdefault-1.json
@@ -3,7 +3,7 @@
"family": "git.base-ref-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-repo.list-1.json
index 9bc438eb63b..23eaf889f6a 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "git.base-ref-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-worktree.show-1.json b/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-worktree.show-1.json
index b02c66ed162..f21fba36b6a 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-worktree.show-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.base-ref-chain-worktree.show-1.json
@@ -3,7 +3,7 @@
"family": "git.base-ref-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.branch-diff-preview-git.branchdiff-1.json b/mobile/rpc-foundation/goldens/matrix-git.branch-diff-preview-git.branchdiff-1.json
index 091ca528d4a..811eeaad579 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.branch-diff-preview-git.branchdiff-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.branch-diff-preview-git.branchdiff-1.json
@@ -3,7 +3,7 @@
"family": "git.branch-diff-preview",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "48ccada93f208a24160483e98ee94a771ab6d63222f29ac4bbd6979157f98333",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.changes-load-git.branchcompare-1.json b/mobile/rpc-foundation/goldens/matrix-git.changes-load-git.branchcompare-1.json
index 350cdbed16a..91ac30b8839 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.changes-load-git.branchcompare-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.changes-load-git.branchcompare-1.json
@@ -3,7 +3,7 @@
"family": "git.changes-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "48ccada93f208a24160483e98ee94a771ab6d63222f29ac4bbd6979157f98333",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.changes-load-git.status-1.json b/mobile/rpc-foundation/goldens/matrix-git.changes-load-git.status-1.json
index caa43333149..57d24564b55 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.changes-load-git.status-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.changes-load-git.status-1.json
@@ -3,7 +3,7 @@
"family": "git.changes-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "48ccada93f208a24160483e98ee94a771ab6d63222f29ac4bbd6979157f98333",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.changes-load-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-git.changes-load-repo.list-1.json
index ff02f789c5d..f3f06b5023b 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.changes-load-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.changes-load-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "git.changes-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "48ccada93f208a24160483e98ee94a771ab6d63222f29ac4bbd6979157f98333",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.changes-load-worktree.show-1.json b/mobile/rpc-foundation/goldens/matrix-git.changes-load-worktree.show-1.json
index 7ac5b6b6913..d520d2e5e56 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.changes-load-worktree.show-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.changes-load-worktree.show-1.json
@@ -3,7 +3,7 @@
"family": "git.changes-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "48ccada93f208a24160483e98ee94a771ab6d63222f29ac4bbd6979157f98333",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.commit-message-ai-git.generatecommitmessage-1.json b/mobile/rpc-foundation/goldens/matrix-git.commit-message-ai-git.generatecommitmessage-1.json
index 74b1fb9f1d8..76cb7144be5 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.commit-message-ai-git.generatecommitmessage-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.commit-message-ai-git.generatecommitmessage-1.json
@@ -3,7 +3,7 @@
"family": "git.commit-message-ai",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.history-commit-files-git.commitcompare-1.json b/mobile/rpc-foundation/goldens/matrix-git.history-commit-files-git.commitcompare-1.json
index ace479c2f18..817329b6104 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.history-commit-files-git.commitcompare-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.history-commit-files-git.commitcompare-1.json
@@ -3,7 +3,7 @@
"family": "git.history-commit-files",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "48ccada93f208a24160483e98ee94a771ab6d63222f29ac4bbd6979157f98333",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.history-commit-files-git.history-1.json b/mobile/rpc-foundation/goldens/matrix-git.history-commit-files-git.history-1.json
index 5f7dbda538d..cce23046c6f 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.history-commit-files-git.history-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.history-commit-files-git.history-1.json
@@ -3,7 +3,7 @@
"family": "git.history-commit-files",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "48ccada93f208a24160483e98ee94a771ab6d63222f29ac4bbd6979157f98333",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.history-read-git.history-1.json b/mobile/rpc-foundation/goldens/matrix-git.history-read-git.history-1.json
index c359bdd3bb4..e66e92c4f18 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.history-read-git.history-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.history-read-git.history-1.json
@@ -3,7 +3,7 @@
"family": "git.history-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.remote-prerequisite-git.push-1.json b/mobile/rpc-foundation/goldens/matrix-git.remote-prerequisite-git.push-1.json
index f566344209b..a5e3b14cb90 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.remote-prerequisite-git.push-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.remote-prerequisite-git.push-1.json
@@ -3,7 +3,7 @@
"family": "git.remote-prerequisite",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-git.review-preparation-git.status-1.json b/mobile/rpc-foundation/goldens/matrix-git.review-preparation-git.status-1.json
index e6358429049..8ad4a5faf20 100644
--- a/mobile/rpc-foundation/goldens/matrix-git.review-preparation-git.status-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-git.review-preparation-git.status-1.json
@@ -3,7 +3,7 @@
"family": "git.review-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.addissuecomment-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.addissuecomment-1.json
index b5323514e47..1455515e450 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.addissuecomment-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.addissuecomment-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-comment-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.addprreviewcommentreply-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.addprreviewcommentreply-1.json
index 9833d78fbc6..f43797fe303 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.addprreviewcommentreply-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.addprreviewcommentreply-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-comment-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.project.deleteissuecommentbyslug-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.project.deleteissuecommentbyslug-1.json
index 62c0dd35043..53786d16204 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.project.deleteissuecommentbyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.project.deleteissuecommentbyslug-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-comment-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.project.updateissuecommentbyslug-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.project.updateissuecommentbyslug-1.json
index 4d6688102a4..b59a0b84edc 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.project.updateissuecommentbyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.project.updateissuecommentbyslug-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-comment-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.resolvereviewthread-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.resolvereviewthread-1.json
index aee0b2f0e33..8d64298ac3f 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.resolvereviewthread-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-comment-mutation-github.resolvereviewthread-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-comment-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.mergepr-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.mergepr-1.json
index c58ff8b756b..903bde1e5f0 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.mergepr-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.mergepr-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.removeprreviewers-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.removeprreviewers-1.json
index b395601f085..bcb49e675ca 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.removeprreviewers-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.removeprreviewers-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.requestprreviewers-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.requestprreviewers-1.json
index 0460fcc08a9..a0b3d9b73d4 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.requestprreviewers-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.requestprreviewers-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.rerunprchecks-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.rerunprchecks-1.json
index d6c67c17c12..b0b358e1f6a 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.rerunprchecks-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.rerunprchecks-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.setprautomerge-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.setprautomerge-1.json
index 9c8a420c3d2..3aa180ea704 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.setprautomerge-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.setprautomerge-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.updateprstate-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.updateprstate-1.json
index 7afdb86a91a..64f54c38e8c 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.updateprstate-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-mutation-github.updateprstate-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.listassignableusers-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.listassignableusers-1.json
index d905e9d39a3..af67fa26a13 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.listassignableusers-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.listassignableusers-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prcheckdetails-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prcheckdetails-1.json
index 1392b519efd..0a32cba06dd 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prcheckdetails-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prcheckdetails-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prchecks-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prchecks-1.json
index b4d000f621d..77af6982c86 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prchecks-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prchecks-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prforbranch-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prforbranch-1.json
index 23d074f7713..651579209c4 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prforbranch-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.prforbranch-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.reposlug-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.reposlug-1.json
index df658791386..f9c63e81960 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.reposlug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.reposlug-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.workitemdetails-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.workitemdetails-1.json
index e0628c7b1d1..9fe0850b18e 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.workitemdetails-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-read-github.workitemdetails-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-read-hostedreview.forbranch-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-read-hostedreview.forbranch-1.json
index ff82a429a31..4d3e118c942 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-read-hostedreview.forbranch-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-read-hostedreview.forbranch-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-github.pr-title-mutation-github.updateprtitle-1.json b/mobile/rpc-foundation/goldens/matrix-github.pr-title-mutation-github.updateprtitle-1.json
index 80afc8eedf0..1c92dc53ce1 100644
--- a/mobile/rpc-foundation/goldens/matrix-github.pr-title-mutation-github.updateprtitle-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-github.pr-title-mutation-github.updateprtitle-1.json
@@ -3,7 +3,7 @@
"family": "github.pr-title-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-home.host-accounts-accounts.list-1.json b/mobile/rpc-foundation/goldens/matrix-home.host-accounts-accounts.list-1.json
index bde0e6d333c..e63b82c445b 100644
--- a/mobile/rpc-foundation/goldens/matrix-home.host-accounts-accounts.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-home.host-accounts-accounts.list-1.json
@@ -3,7 +3,7 @@
"family": "home.host-accounts",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c632fdbc4b730777ecb09f08bec14cca0586042b01ed99d40d0228806c7def4a",
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
index ae04f1d198d..7f1b441ac75 100644
--- 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
@@ -3,7 +3,7 @@
"family": "home.host-stats",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b",
diff --git a/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-1.json b/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-1.json
index 34a07d4547a..5a0257c7801 100644
--- a/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-1.json
@@ -3,7 +3,7 @@
"family": "host-worktree-refresh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-2.json b/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-2.json
index 81506b70b9e..733e07b77e7 100644
--- a/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-2.json
@@ -3,7 +3,7 @@
"family": "host-worktree-refresh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-3.json b/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-3.json
index 6d5c1da6a05..68892d46f4f 100644
--- a/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-3.json
+++ b/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-1-3.json
@@ -3,7 +3,7 @@
"family": "host-worktree-refresh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-2-1.json b/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-2-1.json
index ef748abed79..f18b0bdc542 100644
--- a/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-2-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-host-worktree-refresh-runtime.clientevents.subscribe-2-1.json
@@ -3,7 +3,7 @@
"family": "host-worktree-refresh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
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
index 166a84f198d..59e8bfce095 100644
--- 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
@@ -3,7 +3,7 @@
"family": "host.view-settings",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b",
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
index f303df5b630..ffd745529ec 100644
--- 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
@@ -3,7 +3,7 @@
"family": "host.view-settings",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b",
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
index fc19a28e2d4..c94c38a4c3e 100644
--- 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
@@ -3,7 +3,7 @@
"family": "host.worktree-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639",
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
index 20fd2976f47..69225d9a8f7 100644
--- 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
@@ -3,7 +3,7 @@
"family": "host.worktree-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639",
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
index ef8d89d1b64..584b62fcd3e 100644
--- 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
@@ -3,7 +3,7 @@
"family": "host.worktree-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-git.push-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-git.push-1.json
index 76496ea77a8..c37161c6c30 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-git.push-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-git.push-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-hostedreview.create-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-hostedreview.create-1.json
index d61b23c1a07..dab55c61515 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-hostedreview.create-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-hostedreview.create-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-worktree.set-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-worktree.set-1.json
index 6e685e963d5..205224357f5 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-worktree.set-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-chain-worktree.set-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.bulkstage-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.bulkstage-1.json
index 1a87319774b..8a2fa23cd82 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.bulkstage-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.bulkstage-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.commit-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.commit-1.json
index 93a76304c07..22df417024d 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.commit-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.commit-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.generatecommitmessage-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.generatecommitmessage-1.json
index a1b222a118b..7db76a5d39d 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.generatecommitmessage-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.generatecommitmessage-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.push-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.push-1.json
index 5c1baa3051f..390618e1fc1 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.push-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.push-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-1.json
index ad0b0f5a551..0777ac8a6d9 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-2.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-2.json
index 3a2346b2ae0..bb03a2497a8 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-2.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-3.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-3.json
index 4f5608befb9..adc516270d3 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-3.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-3.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-4.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-4.json
index 0b2ed8b9b6f..3f140726e98 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-4.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-git.status-4.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.create-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.create-1.json
index 3b367478bcd..ae23a6231d4 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.create-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.create-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.getcreationeligibility-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.getcreationeligibility-1.json
index f2e02ad33b5..dd74ad07fbd 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.getcreationeligibility-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.getcreationeligibility-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.getcreationeligibility-2.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.getcreationeligibility-2.json
index 9493e1620ad..a6082edeac0 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.getcreationeligibility-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-hostedreview.getcreationeligibility-2.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-worktree.set-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-worktree.set-1.json
index fbb4e6fafdc..51f082676e2 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-worktree.set-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.create-intent-worktree.set-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-hostedreview.eligibility-hostedreview.getcreationeligibility-1.json b/mobile/rpc-foundation/goldens/matrix-hostedreview.eligibility-hostedreview.getcreationeligibility-1.json
index 2ef8f40373d..daa10145bb7 100644
--- a/mobile/rpc-foundation/goldens/matrix-hostedreview.eligibility-hostedreview.getcreationeligibility-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-hostedreview.eligibility-hostedreview.getcreationeligibility-1.json
@@ -3,7 +3,7 @@
"family": "hostedReview.eligibility",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/matrix-legacy-inventory-files.searchpaths-1.json b/mobile/rpc-foundation/goldens/matrix-legacy-inventory-files.searchpaths-1.json
index b644d6f0dc2..25406cd2d31 100644
--- a/mobile/rpc-foundation/goldens/matrix-legacy-inventory-files.searchpaths-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-legacy-inventory-files.searchpaths-1.json
@@ -3,7 +3,7 @@
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca",
diff --git a/mobile/rpc-foundation/goldens/matrix-legacy-inventory-files.searchpaths-2.json b/mobile/rpc-foundation/goldens/matrix-legacy-inventory-files.searchpaths-2.json
index 2b837f98190..57c38e3b259 100644
--- a/mobile/rpc-foundation/goldens/matrix-legacy-inventory-files.searchpaths-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-legacy-inventory-files.searchpaths-2.json
@@ -3,7 +3,7 @@
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca",
diff --git a/mobile/rpc-foundation/goldens/matrix-legacy-inventory-fresh-inventory.json b/mobile/rpc-foundation/goldens/matrix-legacy-inventory-fresh-inventory.json
index f11079a518e..869ddb226d0 100644
--- a/mobile/rpc-foundation/goldens/matrix-legacy-inventory-fresh-inventory.json
+++ b/mobile/rpc-foundation/goldens/matrix-legacy-inventory-fresh-inventory.json
@@ -3,7 +3,7 @@
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca",
diff --git a/mobile/rpc-foundation/goldens/matrix-legacy-inventory-old-inventory.json b/mobile/rpc-foundation/goldens/matrix-legacy-inventory-old-inventory.json
index 2ab4cf73a6a..78ac874bc0c 100644
--- a/mobile/rpc-foundation/goldens/matrix-legacy-inventory-old-inventory.json
+++ b/mobile/rpc-foundation/goldens/matrix-legacy-inventory-old-inventory.json
@@ -3,7 +3,7 @@
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca",
diff --git a/mobile/rpc-foundation/goldens/matrix-linear-detail-barrier-linear.getissue-1.json b/mobile/rpc-foundation/goldens/matrix-linear-detail-barrier-linear.getissue-1.json
index e37363ded8d..421ff6284b9 100644
--- a/mobile/rpc-foundation/goldens/matrix-linear-detail-barrier-linear.getissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-linear-detail-barrier-linear.getissue-1.json
@@ -3,7 +3,7 @@
"family": "linear-detail-barrier",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab",
diff --git a/mobile/rpc-foundation/goldens/matrix-linear-detail-barrier-linear.issuecomments-1.json b/mobile/rpc-foundation/goldens/matrix-linear-detail-barrier-linear.issuecomments-1.json
index cdfa4c40e1f..5b9a290d256 100644
--- a/mobile/rpc-foundation/goldens/matrix-linear-detail-barrier-linear.issuecomments-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-linear-detail-barrier-linear.issuecomments-1.json
@@ -3,7 +3,7 @@
"family": "linear-detail-barrier",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab",
diff --git a/mobile/rpc-foundation/goldens/matrix-linear.select-workspace-picker-linear.selectworkspace-1.json b/mobile/rpc-foundation/goldens/matrix-linear.select-workspace-picker-linear.selectworkspace-1.json
index 35773fef987..ffe62097acf 100644
--- a/mobile/rpc-foundation/goldens/matrix-linear.select-workspace-picker-linear.selectworkspace-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-linear.select-workspace-picker-linear.selectworkspace-1.json
@@ -3,7 +3,7 @@
"family": "linear.select-workspace-picker",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b65996c152b632d553a31e07e31ea5c76f998eada42cf0966923d730da21908f",
diff --git a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-1-1.json b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-1-1.json
index 9a98a01a615..8941f661495 100644
--- a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-1-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-1-1.json
@@ -3,7 +3,7 @@
"family": "live-worktree-name",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-1-2.json b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-1-2.json
index 448f33ba903..d4224570656 100644
--- a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-1-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-1-2.json
@@ -3,7 +3,7 @@
"family": "live-worktree-name",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-2-1.json b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-2-1.json
index b991fea43be..0b24fca0839 100644
--- a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-2-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-runtime.clientevents.subscribe-2-1.json
@@ -3,7 +3,7 @@
"family": "live-worktree-name",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-1.json b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-1.json
index f10ec0f01cf..d48f69b5a83 100644
--- a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-1.json
@@ -3,7 +3,7 @@
"family": "live-worktree-name",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-2.json b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-2.json
index 1b64409e34d..b5bbc67ce27 100644
--- a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-2.json
@@ -3,7 +3,7 @@
"family": "live-worktree-name",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-3.json b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-3.json
index 4471240376d..c3568a8fdc1 100644
--- a/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-3.json
+++ b/mobile/rpc-foundation/goldens/matrix-live-worktree-name-worktree.show-3.json
@@ -3,7 +3,7 @@
"family": "live-worktree-name",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be",
diff --git a/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-app-js.json b/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-app-js.json
new file mode 100644
index 00000000000..0f28580663d
--- /dev/null
+++ b/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-app-js.json
@@ -0,0 +1,853 @@
+{
+ "operation": "mobileWeb.bundle-fetch",
+ "family": "mobileWeb.bundle-fetch",
+ "namedDeltas": [],
+ "runnerVersion": 1,
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
+ "lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
+ "recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
+ "adapterSha256": "af339fef2c684d5709c6d3f279e5f0d9c33d17b6d4e5c89e501963400901b564",
+ "scenarioSha256": "3fa9e96357f3df313cca9632bcbc79e0c41f14b055e89dd4b848d8c27ed5ff4d",
+ "platform": "darwin",
+ "scenarioVersion": 1,
+ "projectionVersion": 2,
+ "goldenFormatVersion": 5,
+ "values": {
+ "0675365edeab": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "method_not_found",
+ "message": "Unknown method"
+ },
+ "id": "frame-2",
+ "ok": false
+ }
+ }
+ },
+ "11447b4712c1": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: "
+ },
+ "19aa61aab0e5": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: refused: "
+ },
+ "23871e324a00": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "chunkBytes": 16,
+ "manifest": {
+ "assets": [
+ {
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8",
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ },
+ {
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8",
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ ],
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "entrypoint": "index.html",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "schemaVersion": 1,
+ "totalBytes": 37
+ }
+ }
+ }
+ }
+ },
+ "2988ade7daff": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 6,
+ "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":0}}"
+ },
+ "2bfa7c81f55f": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 9,
+ "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":16}}"
+ },
+ "2ff2addcb1f6": {
+ "name": "bundle-progress",
+ "ordinal": 10,
+ "value": {
+ "completedAssets": 2,
+ "receivedBytes": 37,
+ "totalAssets": 2
+ }
+ },
+ "467f0030b66f": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: The host sent a reply this app could not read (mobileWeb.bundle.chunk)"
+ },
+ "4e3b57d795cb": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "refused: outer refused",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "573943fdb37d": {
+ "assets": {
+ "assets/app.js": "orca.boot()",
+ "index.html": "
orca
"
+ },
+ "outcome": {
+ "assetCount": 2,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "totalBytes": 37
+ }
+ },
+ "5f7979d761c6": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true,
+ "result": {
+ "error": "refused"
+ }
+ }
+ }
+ },
+ "6819e6630a90": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true
+ }
+ }
+ },
+ "70ad183ccf84": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: refused: outer refused"
+ },
+ "714b5d0de2ed": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "refused",
+ "message": ""
+ },
+ "id": "frame-2",
+ "ok": false
+ }
+ }
+ },
+ "76ca82e57d04": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-3",
+ "ok": true,
+ "result": {
+ "assetByteLength": 26,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "PCFkb2N0eXBlIGh0bWw+PA==",
+ "eof": false,
+ "offset": 0,
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ }
+ }
+ },
+ "775bfa42070b": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 2,
+ "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.manifest\",\"params\":null}"
+ },
+ "782d48c615ad": {
+ "name": "bundle-progress",
+ "ordinal": 7,
+ "value": {
+ "completedAssets": 1,
+ "receivedBytes": 11,
+ "totalAssets": 2
+ }
+ },
+ "84a5b50c6206": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: method_not_found: Unknown method"
+ },
+ "a0c050b31ee2": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 5,
+ "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"assets/app.js\",\"offset\":0}}"
+ },
+ "a947768bc0ed": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "transport failure",
+ "isRpcDeliveryUnknown": true
+ }
+ },
+ "ae7f1100e6e5": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true,
+ "result": {
+ "assetByteLength": 11,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "b3JjYS5ib290KCk=",
+ "eof": true,
+ "offset": 0,
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ }
+ }
+ }
+ },
+ "b722dc19c21f": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true,
+ "result": {
+ "error": "inner refused",
+ "ok": false
+ }
+ }
+ }
+ },
+ "b9f5f0928755": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: transport failure"
+ },
+ "bf3d420631ad": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true,
+ "result": {
+ "$rpc": "null"
+ }
+ }
+ }
+ },
+ "c2390891036b": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "refused",
+ "message": "outer refused"
+ },
+ "id": "frame-2",
+ "ok": false
+ }
+ }
+ },
+ "c319ae866f13": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "assetCount": 2,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "totalBytes": 37
+ }
+ },
+ "c7584e82c72f": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "",
+ "isRpcDeliveryUnknown": true
+ }
+ },
+ "c8c78c1816d5": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "RpcIncompatibleReplyError",
+ "message": "The host sent a reply this app could not read (mobileWeb.bundle.chunk)",
+ "isRpcDeliveryUnknown": false,
+ "code": "incompatible_reply"
+ }
+ },
+ "ce7abd9f93bb": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-4",
+ "ok": true,
+ "result": {
+ "assetByteLength": 26,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "cD5vcmNhPC9wPg==",
+ "eof": true,
+ "offset": 16,
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ }
+ }
+ },
+ "d56bfdbce702": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "refused: ",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "ec2ac0525db0": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "transport failure",
+ "isRpcDeliveryUnknown": true
+ }
+ }
+ },
+ "f33db2b3742d": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "",
+ "isRpcDeliveryUnknown": true
+ }
+ }
+ },
+ "f624ac81d963": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "method_not_found: Unknown method",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "f7c0f62c1992": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true,
+ "result": {
+ "error": {
+ "message": "inner refused"
+ },
+ "ok": false
+ }
+ }
+ }
+ }
+ },
+ "recording": {
+ "scenario": "matrix-mobileweb.bundle-fetch-app-js",
+ "checkpoints": [
+ {
+ "id": "mobile-web-bundle-fetch-paged.normal:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "ce7abd9f93bb"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c319ae866f13"
+ },
+ "state": "573943fdb37d",
+ "effects": ["782d48c615ad", "2ff2addcb1f6"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.result-absent:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "6819e6630a90", "76ca82e57d04"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.result-null:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "bf3d420631ad", "76ca82e57d04"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-ok-missing:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "5f7979d761c6", "76ca82e57d04"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-false-string-error:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "b722dc19c21f", "76ca82e57d04"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-false-object-error:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "f7c0f62c1992", "76ca82e57d04"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.outer-refused:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "c2390891036b", "76ca82e57d04"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "4e3b57d795cb"
+ },
+ "state": "70ad183ccf84",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.outer-refused-no-message:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "714b5d0de2ed", "76ca82e57d04"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "d56bfdbce702"
+ },
+ "state": "19aa61aab0e5",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.method-not-found:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "0675365edeab", "76ca82e57d04"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "f624ac81d963"
+ },
+ "state": "84a5b50c6206",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.transport-rejection:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ec2ac0525db0", "76ca82e57d04"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "a947768bc0ed"
+ },
+ "state": "b9f5f0928755",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.transport-rejection-no-message:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "f33db2b3742d", "76ca82e57d04"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c7584e82c72f"
+ },
+ "state": "11447b4712c1",
+ "effects": []
+ }
+ }
+ ]
+ }
+}
diff --git a/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-index-head.json b/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-index-head.json
new file mode 100644
index 00000000000..b92312906ea
--- /dev/null
+++ b/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-index-head.json
@@ -0,0 +1,853 @@
+{
+ "operation": "mobileWeb.bundle-fetch",
+ "family": "mobileWeb.bundle-fetch",
+ "namedDeltas": [],
+ "runnerVersion": 1,
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
+ "lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
+ "recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
+ "adapterSha256": "af339fef2c684d5709c6d3f279e5f0d9c33d17b6d4e5c89e501963400901b564",
+ "scenarioSha256": "73734d83e9bc272cba83255b64a21ccab62561d4b6c753b8e2bbb07d6d7b9cc4",
+ "platform": "darwin",
+ "scenarioVersion": 1,
+ "projectionVersion": 2,
+ "goldenFormatVersion": 5,
+ "values": {
+ "11447b4712c1": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: "
+ },
+ "19aa61aab0e5": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: refused: "
+ },
+ "1c53908ac349": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-3",
+ "ok": true,
+ "result": {
+ "error": "refused"
+ }
+ }
+ }
+ },
+ "2142bf483ffa": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "method_not_found",
+ "message": "Unknown method"
+ },
+ "id": "frame-3",
+ "ok": false
+ }
+ }
+ },
+ "23871e324a00": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "chunkBytes": 16,
+ "manifest": {
+ "assets": [
+ {
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8",
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ },
+ {
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8",
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ ],
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "entrypoint": "index.html",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "schemaVersion": 1,
+ "totalBytes": 37
+ }
+ }
+ }
+ }
+ },
+ "2988ade7daff": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 6,
+ "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":0}}"
+ },
+ "2bfa7c81f55f": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 9,
+ "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":16}}"
+ },
+ "2c0da0506922": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-3",
+ "ok": true,
+ "result": {
+ "error": {
+ "message": "inner refused"
+ },
+ "ok": false
+ }
+ }
+ }
+ },
+ "2ff2addcb1f6": {
+ "name": "bundle-progress",
+ "ordinal": 10,
+ "value": {
+ "completedAssets": 2,
+ "receivedBytes": 37,
+ "totalAssets": 2
+ }
+ },
+ "44b044c3bcbb": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "refused",
+ "message": ""
+ },
+ "id": "frame-3",
+ "ok": false
+ }
+ }
+ },
+ "467f0030b66f": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: The host sent a reply this app could not read (mobileWeb.bundle.chunk)"
+ },
+ "48a06fd06c9f": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "refused",
+ "message": "outer refused"
+ },
+ "id": "frame-3",
+ "ok": false
+ }
+ }
+ },
+ "4e3b57d795cb": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "refused: outer refused",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "51aab07cd069": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "",
+ "isRpcDeliveryUnknown": true
+ }
+ }
+ },
+ "573943fdb37d": {
+ "assets": {
+ "assets/app.js": "orca.boot()",
+ "index.html": "orca
"
+ },
+ "outcome": {
+ "assetCount": 2,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "totalBytes": 37
+ }
+ },
+ "5f506b45b4da": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-3",
+ "ok": true,
+ "result": {
+ "error": "inner refused",
+ "ok": false
+ }
+ }
+ }
+ },
+ "70ad183ccf84": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: refused: outer refused"
+ },
+ "76ca82e57d04": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-3",
+ "ok": true,
+ "result": {
+ "assetByteLength": 26,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "PCFkb2N0eXBlIGh0bWw+PA==",
+ "eof": false,
+ "offset": 0,
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ }
+ }
+ },
+ "775bfa42070b": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 2,
+ "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.manifest\",\"params\":null}"
+ },
+ "782d48c615ad": {
+ "name": "bundle-progress",
+ "ordinal": 7,
+ "value": {
+ "completedAssets": 1,
+ "receivedBytes": 11,
+ "totalAssets": 2
+ }
+ },
+ "78a565992eac": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "transport failure",
+ "isRpcDeliveryUnknown": true
+ }
+ }
+ },
+ "84a5b50c6206": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: method_not_found: Unknown method"
+ },
+ "a0c050b31ee2": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 5,
+ "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"assets/app.js\",\"offset\":0}}"
+ },
+ "a947768bc0ed": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "transport failure",
+ "isRpcDeliveryUnknown": true
+ }
+ },
+ "ae7f1100e6e5": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true,
+ "result": {
+ "assetByteLength": 11,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "b3JjYS5ib290KCk=",
+ "eof": true,
+ "offset": 0,
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ }
+ }
+ }
+ },
+ "b93a57c52fa0": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-3",
+ "ok": true
+ }
+ }
+ },
+ "b9f5f0928755": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: transport failure"
+ },
+ "c319ae866f13": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "assetCount": 2,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "totalBytes": 37
+ }
+ },
+ "c7584e82c72f": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "",
+ "isRpcDeliveryUnknown": true
+ }
+ },
+ "c8c78c1816d5": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "RpcIncompatibleReplyError",
+ "message": "The host sent a reply this app could not read (mobileWeb.bundle.chunk)",
+ "isRpcDeliveryUnknown": false,
+ "code": "incompatible_reply"
+ }
+ },
+ "ca40206d195c": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-3",
+ "ok": true,
+ "result": {
+ "$rpc": "null"
+ }
+ }
+ }
+ },
+ "ce7abd9f93bb": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-4",
+ "ok": true,
+ "result": {
+ "assetByteLength": 26,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "cD5vcmNhPC9wPg==",
+ "eof": true,
+ "offset": 16,
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ }
+ }
+ },
+ "d56bfdbce702": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "refused: ",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "f624ac81d963": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "method_not_found: Unknown method",
+ "isRpcDeliveryUnknown": false
+ }
+ }
+ },
+ "recording": {
+ "scenario": "matrix-mobileweb.bundle-fetch-index-head",
+ "checkpoints": [
+ {
+ "id": "mobile-web-bundle-fetch-paged.normal:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "ce7abd9f93bb"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c319ae866f13"
+ },
+ "state": "573943fdb37d",
+ "effects": ["782d48c615ad", "2ff2addcb1f6"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.result-absent:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "b93a57c52fa0"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.result-null:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "ca40206d195c"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-ok-missing:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "1c53908ac349"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-false-string-error:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "5f506b45b4da"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-false-object-error:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "2c0da0506922"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.outer-refused:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "48a06fd06c9f"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "4e3b57d795cb"
+ },
+ "state": "70ad183ccf84",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.outer-refused-no-message:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "44b044c3bcbb"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "d56bfdbce702"
+ },
+ "state": "19aa61aab0e5",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.method-not-found:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "2142bf483ffa"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "f624ac81d963"
+ },
+ "state": "84a5b50c6206",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.transport-rejection:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "78a565992eac"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "a947768bc0ed"
+ },
+ "state": "b9f5f0928755",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.transport-rejection-no-message:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "51aab07cd069"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "c7584e82c72f"
+ },
+ "state": "11447b4712c1",
+ "effects": ["782d48c615ad"]
+ }
+ }
+ ]
+ }
+}
diff --git a/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-index-tail.json b/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-index-tail.json
new file mode 100644
index 00000000000..c323cf9fd41
--- /dev/null
+++ b/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-index-tail.json
@@ -0,0 +1,853 @@
+{
+ "operation": "mobileWeb.bundle-fetch",
+ "family": "mobileWeb.bundle-fetch",
+ "namedDeltas": [],
+ "runnerVersion": 1,
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
+ "lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
+ "recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
+ "adapterSha256": "af339fef2c684d5709c6d3f279e5f0d9c33d17b6d4e5c89e501963400901b564",
+ "scenarioSha256": "dd6d7a35c8ce229211f693ce7b581daecd9f1d7923efb09aff190ea6c46a8b66",
+ "platform": "darwin",
+ "scenarioVersion": 1,
+ "projectionVersion": 2,
+ "goldenFormatVersion": 5,
+ "values": {
+ "0e77845a234c": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-4",
+ "ok": true,
+ "result": {
+ "error": {
+ "message": "inner refused"
+ },
+ "ok": false
+ }
+ }
+ }
+ },
+ "0fd8cd28042f": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "",
+ "isRpcDeliveryUnknown": true
+ }
+ }
+ },
+ "11447b4712c1": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: "
+ },
+ "19aa61aab0e5": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: refused: "
+ },
+ "23871e324a00": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "chunkBytes": 16,
+ "manifest": {
+ "assets": [
+ {
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8",
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ },
+ {
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8",
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ ],
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "entrypoint": "index.html",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "schemaVersion": 1,
+ "totalBytes": 37
+ }
+ }
+ }
+ }
+ },
+ "2988ade7daff": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 6,
+ "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":0}}"
+ },
+ "2bfa7c81f55f": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 9,
+ "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":16}}"
+ },
+ "2ff2addcb1f6": {
+ "name": "bundle-progress",
+ "ordinal": 10,
+ "value": {
+ "completedAssets": 2,
+ "receivedBytes": 37,
+ "totalAssets": 2
+ }
+ },
+ "31b995bd644d": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-4",
+ "ok": true,
+ "result": {
+ "error": "refused"
+ }
+ }
+ }
+ },
+ "467f0030b66f": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: The host sent a reply this app could not read (mobileWeb.bundle.chunk)"
+ },
+ "4e3b57d795cb": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "refused: outer refused",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "573943fdb37d": {
+ "assets": {
+ "assets/app.js": "orca.boot()",
+ "index.html": "orca
"
+ },
+ "outcome": {
+ "assetCount": 2,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "totalBytes": 37
+ }
+ },
+ "582980d0a726": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "transport failure",
+ "isRpcDeliveryUnknown": true
+ }
+ }
+ },
+ "6a71630ead47": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-4",
+ "ok": true,
+ "result": {
+ "$rpc": "null"
+ }
+ }
+ }
+ },
+ "70ab70e5f72c": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-4",
+ "ok": true,
+ "result": {
+ "error": "inner refused",
+ "ok": false
+ }
+ }
+ }
+ },
+ "70ad183ccf84": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: refused: outer refused"
+ },
+ "76ca82e57d04": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-3",
+ "ok": true,
+ "result": {
+ "assetByteLength": 26,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "PCFkb2N0eXBlIGh0bWw+PA==",
+ "eof": false,
+ "offset": 0,
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ }
+ }
+ },
+ "775bfa42070b": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 2,
+ "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.manifest\",\"params\":null}"
+ },
+ "77da9e3f0b42": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-4",
+ "ok": true
+ }
+ }
+ },
+ "782d48c615ad": {
+ "name": "bundle-progress",
+ "ordinal": 7,
+ "value": {
+ "completedAssets": 1,
+ "receivedBytes": 11,
+ "totalAssets": 2
+ }
+ },
+ "84a5b50c6206": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: method_not_found: Unknown method"
+ },
+ "a0c050b31ee2": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 5,
+ "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"assets/app.js\",\"offset\":0}}"
+ },
+ "a1a88d7a4c18": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "method_not_found",
+ "message": "Unknown method"
+ },
+ "id": "frame-4",
+ "ok": false
+ }
+ }
+ },
+ "a947768bc0ed": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "transport failure",
+ "isRpcDeliveryUnknown": true
+ }
+ },
+ "ae7f1100e6e5": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true,
+ "result": {
+ "assetByteLength": 11,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "b3JjYS5ib290KCk=",
+ "eof": true,
+ "offset": 0,
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ }
+ }
+ }
+ },
+ "b9f5f0928755": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: transport failure"
+ },
+ "c319ae866f13": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "assetCount": 2,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "totalBytes": 37
+ }
+ },
+ "c7584e82c72f": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "",
+ "isRpcDeliveryUnknown": true
+ }
+ },
+ "c8c78c1816d5": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "RpcIncompatibleReplyError",
+ "message": "The host sent a reply this app could not read (mobileWeb.bundle.chunk)",
+ "isRpcDeliveryUnknown": false,
+ "code": "incompatible_reply"
+ }
+ },
+ "ce7abd9f93bb": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-4",
+ "ok": true,
+ "result": {
+ "assetByteLength": 26,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "cD5vcmNhPC9wPg==",
+ "eof": true,
+ "offset": 16,
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ }
+ }
+ },
+ "d1c2396755f2": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "refused",
+ "message": "outer refused"
+ },
+ "id": "frame-4",
+ "ok": false
+ }
+ }
+ },
+ "d3f6932f076d": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "refused",
+ "message": ""
+ },
+ "id": "frame-4",
+ "ok": false
+ }
+ }
+ },
+ "d56bfdbce702": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "refused: ",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "f624ac81d963": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "method_not_found: Unknown method",
+ "isRpcDeliveryUnknown": false
+ }
+ }
+ },
+ "recording": {
+ "scenario": "matrix-mobileweb.bundle-fetch-index-tail",
+ "checkpoints": [
+ {
+ "id": "mobile-web-bundle-fetch-paged.normal:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "ce7abd9f93bb"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c319ae866f13"
+ },
+ "state": "573943fdb37d",
+ "effects": ["782d48c615ad", "2ff2addcb1f6"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.result-absent:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "77da9e3f0b42"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.result-null:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "6a71630ead47"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-ok-missing:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "31b995bd644d"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-false-string-error:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "70ab70e5f72c"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-false-object-error:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "0e77845a234c"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c8c78c1816d5"
+ },
+ "state": "467f0030b66f",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.outer-refused:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "d1c2396755f2"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "4e3b57d795cb"
+ },
+ "state": "70ad183ccf84",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.outer-refused-no-message:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "d3f6932f076d"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "d56bfdbce702"
+ },
+ "state": "19aa61aab0e5",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.method-not-found:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "a1a88d7a4c18"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "f624ac81d963"
+ },
+ "state": "84a5b50c6206",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.transport-rejection:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "582980d0a726"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "a947768bc0ed"
+ },
+ "state": "b9f5f0928755",
+ "effects": ["782d48c615ad"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.transport-rejection-no-message:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "0fd8cd28042f"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c7584e82c72f"
+ },
+ "state": "11447b4712c1",
+ "effects": ["782d48c615ad"]
+ }
+ }
+ ]
+ }
+}
diff --git a/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-mobileweb.bundle.manifest-1.json b/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-mobileweb.bundle.manifest-1.json
new file mode 100644
index 00000000000..4aa6817740e
--- /dev/null
+++ b/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-fetch-mobileweb.bundle.manifest-1.json
@@ -0,0 +1,833 @@
+{
+ "operation": "mobileWeb.bundle-fetch",
+ "family": "mobileWeb.bundle-fetch",
+ "namedDeltas": [],
+ "runnerVersion": 1,
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
+ "lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
+ "recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
+ "adapterSha256": "af339fef2c684d5709c6d3f279e5f0d9c33d17b6d4e5c89e501963400901b564",
+ "scenarioSha256": "d8e4c64949caef9f98ec67aad62a482d0ecbc4bcc611ba5e4d2e73764bf80ea3",
+ "platform": "darwin",
+ "scenarioVersion": 1,
+ "projectionVersion": 2,
+ "goldenFormatVersion": 5,
+ "values": {
+ "04c76c033ffb": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: The host sent a reply this app could not read (mobileWeb.bundle.manifest)"
+ },
+ "11447b4712c1": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: "
+ },
+ "19aa61aab0e5": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: refused: "
+ },
+ "1f83ee5bcef4": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "$rpc": "null"
+ }
+ }
+ }
+ },
+ "23871e324a00": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "chunkBytes": 16,
+ "manifest": {
+ "assets": [
+ {
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8",
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ },
+ {
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8",
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ ],
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "entrypoint": "index.html",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "schemaVersion": 1,
+ "totalBytes": 37
+ }
+ }
+ }
+ }
+ },
+ "2988ade7daff": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 6,
+ "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":0}}"
+ },
+ "2bfa7c81f55f": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 9,
+ "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":16}}"
+ },
+ "2f77c40dc9fb": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "error": {
+ "message": "inner refused"
+ },
+ "ok": false
+ }
+ }
+ }
+ },
+ "2ff2addcb1f6": {
+ "name": "bundle-progress",
+ "ordinal": 10,
+ "value": {
+ "completedAssets": 2,
+ "receivedBytes": 37,
+ "totalAssets": 2
+ }
+ },
+ "4e3b57d795cb": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "refused: outer refused",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "573943fdb37d": {
+ "assets": {
+ "assets/app.js": "orca.boot()",
+ "index.html": "orca
"
+ },
+ "outcome": {
+ "assetCount": 2,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "totalBytes": 37
+ }
+ },
+ "70ad183ccf84": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: refused: outer refused"
+ },
+ "76ca82e57d04": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-3",
+ "ok": true,
+ "result": {
+ "assetByteLength": 26,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "PCFkb2N0eXBlIGh0bWw+PA==",
+ "eof": false,
+ "offset": 0,
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ }
+ }
+ },
+ "775bfa42070b": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 2,
+ "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.manifest\",\"params\":null}"
+ },
+ "782d48c615ad": {
+ "name": "bundle-progress",
+ "ordinal": 7,
+ "value": {
+ "completedAssets": 1,
+ "receivedBytes": 11,
+ "totalAssets": 2
+ }
+ },
+ "849b557190c4": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "RpcIncompatibleReplyError",
+ "message": "The host sent a reply this app could not read (mobileWeb.bundle.manifest)",
+ "isRpcDeliveryUnknown": false,
+ "code": "incompatible_reply"
+ }
+ },
+ "84a5b50c6206": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: method_not_found: Unknown method"
+ },
+ "92180fc007fa": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "",
+ "isRpcDeliveryUnknown": true
+ }
+ }
+ },
+ "959e5b0d7569": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "refused",
+ "message": ""
+ },
+ "id": "frame-1",
+ "ok": false
+ }
+ }
+ },
+ "9bd7a475c5b3": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "method_not_found",
+ "message": "Unknown method"
+ },
+ "id": "frame-1",
+ "ok": false
+ }
+ }
+ },
+ "9f8f097c4318": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "refused",
+ "message": "outer refused"
+ },
+ "id": "frame-1",
+ "ok": false
+ }
+ }
+ },
+ "a0c050b31ee2": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 5,
+ "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"assets/app.js\",\"offset\":0}}"
+ },
+ "a0fb89567920": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "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
+ }
+ },
+ "ad5c054356d4": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "error": "inner refused",
+ "ok": false
+ }
+ }
+ }
+ },
+ "ae7f1100e6e5": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true,
+ "result": {
+ "assetByteLength": 11,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "b3JjYS5ib290KCk=",
+ "eof": true,
+ "offset": 0,
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ }
+ }
+ }
+ },
+ "b539b28b8552": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "error": "refused"
+ }
+ }
+ }
+ },
+ "b9f5f0928755": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "failed: transport failure"
+ },
+ "c319ae866f13": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "assetCount": 2,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "totalBytes": 37
+ }
+ },
+ "c7584e82c72f": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "",
+ "isRpcDeliveryUnknown": true
+ }
+ },
+ "ce7abd9f93bb": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-4",
+ "ok": true,
+ "result": {
+ "assetByteLength": 26,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "cD5vcmNhPC9wPg==",
+ "eof": true,
+ "offset": 16,
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ }
+ }
+ },
+ "d54e9333d433": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true
+ }
+ }
+ },
+ "d56bfdbce702": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "refused: ",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "f624ac81d963": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "method_not_found: Unknown method",
+ "isRpcDeliveryUnknown": false
+ }
+ }
+ },
+ "recording": {
+ "scenario": "matrix-mobileweb.bundle-fetch-mobileweb.bundle.manifest-1",
+ "checkpoints": [
+ {
+ "id": "mobile-web-bundle-fetch-paged.normal:bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "ce7abd9f93bb"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c319ae866f13"
+ },
+ "state": "573943fdb37d",
+ "effects": ["782d48c615ad", "2ff2addcb1f6"]
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.result-absent:bundle-fetched",
+ "observation": {
+ "sender": ["d54e9333d433"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "849b557190c4"
+ },
+ "state": "04c76c033ffb",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.result-null:bundle-fetched",
+ "observation": {
+ "sender": ["1f83ee5bcef4"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "849b557190c4"
+ },
+ "state": "04c76c033ffb",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-ok-missing:bundle-fetched",
+ "observation": {
+ "sender": ["b539b28b8552"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "849b557190c4"
+ },
+ "state": "04c76c033ffb",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-false-string-error:bundle-fetched",
+ "observation": {
+ "sender": ["ad5c054356d4"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "849b557190c4"
+ },
+ "state": "04c76c033ffb",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.inner-false-object-error:bundle-fetched",
+ "observation": {
+ "sender": ["2f77c40dc9fb"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "849b557190c4"
+ },
+ "state": "04c76c033ffb",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.outer-refused:bundle-fetched",
+ "observation": {
+ "sender": ["9f8f097c4318"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "4e3b57d795cb"
+ },
+ "state": "70ad183ccf84",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.outer-refused-no-message:bundle-fetched",
+ "observation": {
+ "sender": ["959e5b0d7569"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "d56bfdbce702"
+ },
+ "state": "19aa61aab0e5",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.method-not-found:bundle-fetched",
+ "observation": {
+ "sender": ["9bd7a475c5b3"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "f624ac81d963"
+ },
+ "state": "84a5b50c6206",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.transport-rejection:bundle-fetched",
+ "observation": {
+ "sender": ["a0fb89567920"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "a947768bc0ed"
+ },
+ "state": "b9f5f0928755",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged.transport-rejection-no-message:bundle-fetched",
+ "observation": {
+ "sender": ["92180fc007fa"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "c7584e82c72f"
+ },
+ "state": "11447b4712c1",
+ "effects": []
+ }
+ }
+ ]
+ }
+}
diff --git a/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-manifest-mobileweb.bundle.manifest-1.json b/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-manifest-mobileweb.bundle.manifest-1.json
new file mode 100644
index 00000000000..673c6bcde0c
--- /dev/null
+++ b/mobile/rpc-foundation/goldens/matrix-mobileweb.bundle-manifest-mobileweb.bundle.manifest-1.json
@@ -0,0 +1,674 @@
+{
+ "operation": "mobileWeb.bundle-manifest",
+ "family": "mobileWeb.bundle-manifest",
+ "namedDeltas": [],
+ "runnerVersion": 1,
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
+ "lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
+ "recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
+ "adapterSha256": "af339fef2c684d5709c6d3f279e5f0d9c33d17b6d4e5c89e501963400901b564",
+ "scenarioSha256": "8f5211fd3de1d77d3ea139f22bd6fc6119c72c08aa016f252a0df14bedf23ab3",
+ "platform": "darwin",
+ "scenarioVersion": 1,
+ "projectionVersion": 2,
+ "goldenFormatVersion": 5,
+ "values": {
+ "12e970df3db8": {
+ "outcome": "failed: refused: outer refused"
+ },
+ "1f83ee5bcef4": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "$rpc": "null"
+ }
+ }
+ }
+ },
+ "23871e324a00": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "chunkBytes": 16,
+ "manifest": {
+ "assets": [
+ {
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8",
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ },
+ {
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8",
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ ],
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "entrypoint": "index.html",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "schemaVersion": 1,
+ "totalBytes": 37
+ }
+ }
+ }
+ }
+ },
+ "2f77c40dc9fb": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "error": {
+ "message": "inner refused"
+ },
+ "ok": false
+ }
+ }
+ }
+ },
+ "37fa2b81fff0": {
+ "outcome": "failed: method_not_found: Unknown method"
+ },
+ "4e3b57d795cb": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "refused: outer refused",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "533d41ae6475": {
+ "outcome": "failed: "
+ },
+ "775bfa42070b": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 2,
+ "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.manifest\",\"params\":null}"
+ },
+ "849b557190c4": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "RpcIncompatibleReplyError",
+ "message": "The host sent a reply this app could not read (mobileWeb.bundle.manifest)",
+ "isRpcDeliveryUnknown": false,
+ "code": "incompatible_reply"
+ }
+ },
+ "92180fc007fa": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "",
+ "isRpcDeliveryUnknown": true
+ }
+ }
+ },
+ "959e5b0d7569": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "refused",
+ "message": ""
+ },
+ "id": "frame-1",
+ "ok": false
+ }
+ }
+ },
+ "9bd7a475c5b3": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "method_not_found",
+ "message": "Unknown method"
+ },
+ "id": "frame-1",
+ "ok": false
+ }
+ }
+ },
+ "9ca9b2d0fc07": {
+ "outcome": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "chunkBytes": 16,
+ "entrypoint": "index.html",
+ "paths": ["assets/app.js", "index.html"]
+ }
+ },
+ "9d87b3b6bd74": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "chunkBytes": 16,
+ "manifest": {
+ "assets": [
+ {
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8",
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ },
+ {
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8",
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ ],
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "entrypoint": "index.html",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "schemaVersion": 1,
+ "totalBytes": 37
+ }
+ }
+ },
+ "9f8f097c4318": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "refused",
+ "message": "outer refused"
+ },
+ "id": "frame-1",
+ "ok": false
+ }
+ }
+ },
+ "a0fb89567920": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "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
+ }
+ },
+ "ad5c054356d4": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "error": "inner refused",
+ "ok": false
+ }
+ }
+ }
+ },
+ "b539b28b8552": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "error": "refused"
+ }
+ }
+ }
+ },
+ "c7584e82c72f": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "",
+ "isRpcDeliveryUnknown": true
+ }
+ },
+ "ce45a7dbe0d4": {
+ "outcome": "failed: refused: "
+ },
+ "ce8ef76590e2": {
+ "outcome": "failed: The host sent a reply this app could not read (mobileWeb.bundle.manifest)"
+ },
+ "d54e9333d433": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true
+ }
+ }
+ },
+ "d56bfdbce702": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "refused: ",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "ded62b26901e": {
+ "outcome": "failed: transport failure"
+ },
+ "f624ac81d963": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "method_not_found: Unknown method",
+ "isRpcDeliveryUnknown": false
+ }
+ }
+ },
+ "recording": {
+ "scenario": "matrix-mobileweb.bundle-manifest-mobileweb.bundle.manifest-1",
+ "checkpoints": [
+ {
+ "id": "mobile-web-bundle-manifest-read.normal:manifest-read",
+ "observation": {
+ "sender": ["23871e324a00"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "9d87b3b6bd74"
+ },
+ "state": "9ca9b2d0fc07",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read.result-absent:manifest-read",
+ "observation": {
+ "sender": ["d54e9333d433"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "849b557190c4"
+ },
+ "state": "ce8ef76590e2",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read.result-null:manifest-read",
+ "observation": {
+ "sender": ["1f83ee5bcef4"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "849b557190c4"
+ },
+ "state": "ce8ef76590e2",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read.inner-ok-missing:manifest-read",
+ "observation": {
+ "sender": ["b539b28b8552"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "849b557190c4"
+ },
+ "state": "ce8ef76590e2",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read.inner-false-string-error:manifest-read",
+ "observation": {
+ "sender": ["ad5c054356d4"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "849b557190c4"
+ },
+ "state": "ce8ef76590e2",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read.inner-false-object-error:manifest-read",
+ "observation": {
+ "sender": ["2f77c40dc9fb"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "849b557190c4"
+ },
+ "state": "ce8ef76590e2",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read.outer-refused:manifest-read",
+ "observation": {
+ "sender": ["9f8f097c4318"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "4e3b57d795cb"
+ },
+ "state": "12e970df3db8",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read.outer-refused-no-message:manifest-read",
+ "observation": {
+ "sender": ["959e5b0d7569"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "d56bfdbce702"
+ },
+ "state": "ce45a7dbe0d4",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read.method-not-found:manifest-read",
+ "observation": {
+ "sender": ["9bd7a475c5b3"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "f624ac81d963"
+ },
+ "state": "37fa2b81fff0",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read.transport-rejection:manifest-read",
+ "observation": {
+ "sender": ["a0fb89567920"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "a947768bc0ed"
+ },
+ "state": "ded62b26901e",
+ "effects": []
+ }
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read.transport-rejection-no-message:manifest-read",
+ "observation": {
+ "sender": ["92180fc007fa"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "c7584e82c72f"
+ },
+ "state": "533d41ae6475",
+ "effects": []
+ }
+ }
+ ]
+ }
+}
diff --git a/mobile/rpc-foundation/goldens/matrix-nativechat.image-paste-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-nativechat.image-paste-terminal.send-1.json
index c660212b892..eb9af3347dd 100644
--- a/mobile/rpc-foundation/goldens/matrix-nativechat.image-paste-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-nativechat.image-paste-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/matrix-nativechat.image-paste-terminal.send-2.json b/mobile/rpc-foundation/goldens/matrix-nativechat.image-paste-terminal.send-2.json
index 2408059a3de..3d5af994e58 100644
--- a/mobile/rpc-foundation/goldens/matrix-nativechat.image-paste-terminal.send-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-nativechat.image-paste-terminal.send-2.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/matrix-nativechat.image-upload-clipboard.startimageupload-1.json b/mobile/rpc-foundation/goldens/matrix-nativechat.image-upload-clipboard.startimageupload-1.json
index 6bcc68ae4e0..5a232e4778c 100644
--- a/mobile/rpc-foundation/goldens/matrix-nativechat.image-upload-clipboard.startimageupload-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-nativechat.image-upload-clipboard.startimageupload-1.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/matrix-nativechat.session-option-pick-settings.mutatenativechatsessionoptions-1.json b/mobile/rpc-foundation/goldens/matrix-nativechat.session-option-pick-settings.mutatenativechatsessionoptions-1.json
index d929a9ef4c8..ad1b01dc79a 100644
--- a/mobile/rpc-foundation/goldens/matrix-nativechat.session-option-pick-settings.mutatenativechatsessionoptions-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-nativechat.session-option-pick-settings.mutatenativechatsessionoptions-1.json
@@ -3,7 +3,7 @@
"family": "nativeChat.session-option-pick",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/matrix-nativechat.terminal-write-orchestration.workerterminaluserinput-1.json b/mobile/rpc-foundation/goldens/matrix-nativechat.terminal-write-orchestration.workerterminaluserinput-1.json
index 0fd9dcb63fb..658c5fa15eb 100644
--- a/mobile/rpc-foundation/goldens/matrix-nativechat.terminal-write-orchestration.workerterminaluserinput-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-nativechat.terminal-write-orchestration.workerterminaluserinput-1.json
@@ -3,7 +3,7 @@
"family": "nativeChat.terminal-write",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/matrix-nativechat.terminal-write-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-nativechat.terminal-write-terminal.send-1.json
index 79d9c60d60c..1ee62b745f7 100644
--- a/mobile/rpc-foundation/goldens/matrix-nativechat.terminal-write-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-nativechat.terminal-write-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "nativeChat.terminal-write",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.getmissedsince-1.json b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.getmissedsince-1.json
index 6689bf37e41..418fb01baae 100644
--- a/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.getmissedsince-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.getmissedsince-1.json
@@ -3,7 +3,7 @@
"family": "notifications.desktop-stream",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4",
diff --git a/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-1.json b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-1.json
index c9da82f05f7..25df5c608b5 100644
--- a/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-1.json
@@ -3,7 +3,7 @@
"family": "notifications.desktop-stream",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4",
diff --git a/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-2.json b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-2.json
index e44bb6f2e78..2bfe76d3c6d 100644
--- a/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-2.json
@@ -3,7 +3,7 @@
"family": "notifications.desktop-stream",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4",
diff --git a/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.unsubscribe-1.json b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.unsubscribe-1.json
index dd286c55ebb..9b35fe7aded 100644
--- a/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.unsubscribe-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.unsubscribe-1.json
@@ -3,7 +3,7 @@
"family": "notifications.desktop-stream",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4",
diff --git a/mobile/rpc-foundation/goldens/matrix-notifications.display-test-screen-notifications.testpush-1.json b/mobile/rpc-foundation/goldens/matrix-notifications.display-test-screen-notifications.testpush-1.json
index 171a2085f4a..4186fbf5cd4 100644
--- a/mobile/rpc-foundation/goldens/matrix-notifications.display-test-screen-notifications.testpush-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-notifications.display-test-screen-notifications.testpush-1.json
@@ -3,7 +3,7 @@
"family": "notifications.display-test-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "12a04986290715d5db23a1eb5192c1138bb2d375d1b1dd37ba310ea89eb11566",
diff --git a/mobile/rpc-foundation/goldens/matrix-notifications.push-dismissal-notifications.getmissedsince-1.json b/mobile/rpc-foundation/goldens/matrix-notifications.push-dismissal-notifications.getmissedsince-1.json
index 5973d0e1d7e..e35222077a4 100644
--- a/mobile/rpc-foundation/goldens/matrix-notifications.push-dismissal-notifications.getmissedsince-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-notifications.push-dismissal-notifications.getmissedsince-1.json
@@ -3,7 +3,7 @@
"family": "notifications.push-dismissal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "595a3eb2994d0596b9fcd0707b175b4e978625053dfbc5c541b0350c0cbfb524",
diff --git a/mobile/rpc-foundation/goldens/matrix-notifications.push-registration-notifications.registerpush-1.json b/mobile/rpc-foundation/goldens/matrix-notifications.push-registration-notifications.registerpush-1.json
index c79adaa0255..8a760ce0715 100644
--- a/mobile/rpc-foundation/goldens/matrix-notifications.push-registration-notifications.registerpush-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-notifications.push-registration-notifications.registerpush-1.json
@@ -3,7 +3,7 @@
"family": "notifications.push-registration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2e3d939dc162dbc5a38d8a7207111688204a825fd70348721917b3016e1c9470",
diff --git a/mobile/rpc-foundation/goldens/matrix-notifications.push-registration-notifications.unregisterpush-1.json b/mobile/rpc-foundation/goldens/matrix-notifications.push-registration-notifications.unregisterpush-1.json
index c58dcc2a5bb..0695c4c18f2 100644
--- a/mobile/rpc-foundation/goldens/matrix-notifications.push-registration-notifications.unregisterpush-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-notifications.push-registration-notifications.unregisterpush-1.json
@@ -3,7 +3,7 @@
"family": "notifications.push-registration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2e3d939dc162dbc5a38d8a7207111688204a825fd70348721917b3016e1c9470",
diff --git a/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-direct-status.json b/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-direct-status.json
index c804c127297..e0b892d1427 100644
--- a/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-direct-status.json
+++ b/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-direct-status.json
@@ -3,7 +3,7 @@
"family": "pairing.pre-profile",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197",
diff --git a/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-pairing.getendpoints-1.json b/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-pairing.getendpoints-1.json
index 0aa43d5ac1e..82852f532c0 100644
--- a/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-pairing.getendpoints-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-pairing.getendpoints-1.json
@@ -3,7 +3,7 @@
"family": "pairing.pre-profile",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197",
diff --git a/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-pairing.provisionrelay-1.json b/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-pairing.provisionrelay-1.json
index d77be27ac25..d1429543e20 100644
--- a/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-pairing.provisionrelay-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-pairing.provisionrelay-1.json
@@ -3,7 +3,7 @@
"family": "pairing.pre-profile",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197",
diff --git a/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-relay-status.json b/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-relay-status.json
index 597905dd562..bcbee6b1e5b 100644
--- a/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-relay-status.json
+++ b/mobile/rpc-foundation/goldens/matrix-pairing.pre-profile-relay-status.json
@@ -3,7 +3,7 @@
"family": "pairing.pre-profile",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197",
diff --git a/mobile/rpc-foundation/goldens/matrix-project-explicit-false-github.project.updateissuebyslug-1.json b/mobile/rpc-foundation/goldens/matrix-project-explicit-false-github.project.updateissuebyslug-1.json
index 9e9ccbd4636..fc1a0cd87be 100644
--- a/mobile/rpc-foundation/goldens/matrix-project-explicit-false-github.project.updateissuebyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-project-explicit-false-github.project.updateissuebyslug-1.json
@@ -3,7 +3,7 @@
"family": "project-explicit-false",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab",
diff --git a/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.getendpoints-1.json b/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.getendpoints-1.json
index feed9049c1f..8068d4e21fb 100644
--- a/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.getendpoints-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.getendpoints-1.json
@@ -3,7 +3,7 @@
"family": "relay.credential-rotation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2",
diff --git a/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.getendpoints-2.json b/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.getendpoints-2.json
index 55ff37fdb72..5d23602cb01 100644
--- a/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.getendpoints-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.getendpoints-2.json
@@ -3,7 +3,7 @@
"family": "relay.credential-rotation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2",
diff --git a/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.provisionrelay-1.json b/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.provisionrelay-1.json
index e9d546ccc3d..f18c7b9bee8 100644
--- a/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.provisionrelay-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-relay.credential-rotation-pairing.provisionrelay-1.json
@@ -3,7 +3,7 @@
"family": "relay.credential-rotation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2",
diff --git a/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.getendpoints-1.json b/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.getendpoints-1.json
index 5eb4b2f1606..7b9a106276d 100644
--- a/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.getendpoints-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.getendpoints-1.json
@@ -3,7 +3,7 @@
"family": "relay.direct-upgrade",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2",
diff --git a/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.getendpoints-2.json b/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.getendpoints-2.json
index fd4a564d8e4..d0a604a8cf8 100644
--- a/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.getendpoints-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.getendpoints-2.json
@@ -3,7 +3,7 @@
"family": "relay.direct-upgrade",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2",
diff --git a/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.provisionrelay-1.json b/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.provisionrelay-1.json
index 9558cebba6c..0a5ff6b933d 100644
--- a/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.provisionrelay-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-relay.direct-upgrade-pairing.provisionrelay-1.json
@@ -3,7 +3,7 @@
"family": "relay.direct-upgrade",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2",
diff --git a/mobile/rpc-foundation/goldens/matrix-relay.pairing-recovery-pairing.getendpoints-1.json b/mobile/rpc-foundation/goldens/matrix-relay.pairing-recovery-pairing.getendpoints-1.json
index e172e779b0c..6d1daff5e4c 100644
--- a/mobile/rpc-foundation/goldens/matrix-relay.pairing-recovery-pairing.getendpoints-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-relay.pairing-recovery-pairing.getendpoints-1.json
@@ -3,7 +3,7 @@
"family": "relay.pairing-recovery",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.browser-tab-create-browser.tabcreate-1.json b/mobile/rpc-foundation/goldens/matrix-session.browser-tab-create-browser.tabcreate-1.json
index 7937d423ee9..f1c04a310c8 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.browser-tab-create-browser.tabcreate-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.browser-tab-create-browser.tabcreate-1.json
@@ -3,7 +3,7 @@
"family": "session.browser-tab-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.content-create-files.createfile-1.json b/mobile/rpc-foundation/goldens/matrix-session.content-create-files.createfile-1.json
index d3adf585c3d..44d92581593 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.content-create-files.createfile-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.content-create-files.createfile-1.json
@@ -3,7 +3,7 @@
"family": "session.content-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.content-create-files.open-1.json b/mobile/rpc-foundation/goldens/matrix-session.content-create-files.open-1.json
index e29e2155b0c..784482f03fa 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.content-create-files.open-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.content-create-files.open-1.json
@@ -3,7 +3,7 @@
"family": "session.content-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.content-create-status.get-1.json b/mobile/rpc-foundation/goldens/matrix-session.content-create-status.get-1.json
index 85346ef670f..937553048c3 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.content-create-status.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.content-create-status.get-1.json
@@ -3,7 +3,7 @@
"family": "session.content-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.content-create-worktree.show-1.json b/mobile/rpc-foundation/goldens/matrix-session.content-create-worktree.show-1.json
index 223c0188bad..9ea677cce7c 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.content-create-worktree.show-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.content-create-worktree.show-1.json
@@ -3,7 +3,7 @@
"family": "session.content-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.create-terminal-session.tabs.createterminal-1.json b/mobile/rpc-foundation/goldens/matrix-session.create-terminal-session.tabs.createterminal-1.json
index 43bd417113e..4f237e17ce4 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.create-terminal-session.tabs.createterminal-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.create-terminal-session.tabs.createterminal-1.json
@@ -3,7 +3,7 @@
"family": "session.create-terminal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fa7d9fd6428e89282f08e04fefba4289000eb3aed1462489a2f11efed374382c",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.create-terminal-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-session.create-terminal-terminal.send-1.json
index d35868af1f1..a9e337d8364 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.create-terminal-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.create-terminal-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "session.create-terminal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fa7d9fd6428e89282f08e04fefba4289000eb3aed1462489a2f11efed374382c",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.diff-notes-worktree.show-1.json b/mobile/rpc-foundation/goldens/matrix-session.diff-notes-worktree.show-1.json
index 528342e6f45..623d827695a 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.diff-notes-worktree.show-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.diff-notes-worktree.show-1.json
@@ -3,7 +3,7 @@
"family": "session.diff-notes",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.diff-review-actions-worktree.set-1.json b/mobile/rpc-foundation/goldens/matrix-session.diff-review-actions-worktree.set-1.json
index a9092d652fa..79cec039bdb 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.diff-review-actions-worktree.set-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.diff-review-actions-worktree.set-1.json
@@ -3,7 +3,7 @@
"family": "session.diff-review-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.diff-review-base-ref-show.json b/mobile/rpc-foundation/goldens/matrix-session.diff-review-base-ref-show.json
index aacd6049e55..bdd1bf2cf58 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.diff-review-base-ref-show.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.diff-review-base-ref-show.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.diff-review-git.branchcompare-1.json b/mobile/rpc-foundation/goldens/matrix-session.diff-review-git.branchcompare-1.json
index e40ae4fff9a..0fed2535239 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.diff-review-git.branchcompare-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.diff-review-git.branchcompare-1.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.diff-review-git.status-1.json b/mobile/rpc-foundation/goldens/matrix-session.diff-review-git.status-1.json
index 15bece53a2d..1283e269962 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.diff-review-git.status-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.diff-review-git.status-1.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.diff-review-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-session.diff-review-repo.list-1.json
index 9f33618b3ed..f2c7d076bf0 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.diff-review-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.diff-review-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.diff-review-review-show.json b/mobile/rpc-foundation/goldens/matrix-session.diff-review-review-show.json
index 47cc5cc5173..1428f97fe04 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.diff-review-review-show.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.diff-review-review-show.json
@@ -3,7 +3,7 @@
"family": "session.diff-review",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.markdown-disk-fallback-files.read-1.json b/mobile/rpc-foundation/goldens/matrix-session.markdown-disk-fallback-files.read-1.json
index 28f0f997ed4..572bfd06aa8 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.markdown-disk-fallback-files.read-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.markdown-disk-fallback-files.read-1.json
@@ -3,7 +3,7 @@
"family": "session.markdown-disk-fallback",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.markdown-disk-fallback-markdown.readtab-1.json b/mobile/rpc-foundation/goldens/matrix-session.markdown-disk-fallback-markdown.readtab-1.json
index ab5e7722e4f..889e6c9ebdf 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.markdown-disk-fallback-markdown.readtab-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.markdown-disk-fallback-markdown.readtab-1.json
@@ -3,7 +3,7 @@
"family": "session.markdown-disk-fallback",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.markdown-save-markdown.savetab-1.json b/mobile/rpc-foundation/goldens/matrix-session.markdown-save-markdown.savetab-1.json
index a16f19ae733..b22420593a7 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.markdown-save-markdown.savetab-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.markdown-save-markdown.savetab-1.json
@@ -3,7 +3,7 @@
"family": "session.markdown-save",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.readsession-1.json b/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.readsession-1.json
index 5b04ae97049..d6a66ef187e 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.readsession-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.readsession-1.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-page",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "60ce67f66134d6385aa7fb47f2135436a7b3ce0221e3b2514bea65e06dba5518",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-1-1.json b/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-1-1.json
index 72511dc9e9b..ec3c0aa305f 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-1-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-1-1.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-page",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "60ce67f66134d6385aa7fb47f2135436a7b3ce0221e3b2514bea65e06dba5518",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-2-1.json b/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-2-1.json
index 8f8f6f5ad03..90b310931e3 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-2-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-2-1.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-page",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "60ce67f66134d6385aa7fb47f2135436a7b3ce0221e3b2514bea65e06dba5518",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.native-chat-readability-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-session.native-chat-readability-repo.list-1.json
index 24b26b23e4a..8426ae5057d 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.native-chat-readability-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.native-chat-readability-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-readability",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-orchestration.workerterminaluserinput-1.json b/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-orchestration.workerterminaluserinput-1.json
index 5310701e356..10d0dcba8f2 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-orchestration.workerterminaluserinput-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-orchestration.workerterminaluserinput-1.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-stop",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-terminal.send-1.json
index 54b2fe96822..a26fe07d343 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-stop",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-terminal.send-2.json b/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-terminal.send-2.json
index 5925663b025..c28ba3987c8 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-terminal.send-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.native-chat-stop-terminal.send-2.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-stop",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-git.branchcompare-1.json b/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-git.branchcompare-1.json
index ebca2119c20..c585a821bb3 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-git.branchcompare-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-git.branchcompare-1.json
@@ -3,7 +3,7 @@
"family": "session.pr-branch-context",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-git.status-1.json b/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-git.status-1.json
index 1ecf9606299..6085103ee5e 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-git.status-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-git.status-1.json
@@ -3,7 +3,7 @@
"family": "session.pr-branch-context",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-repo.list-1.json
index 49c0a004034..f7fd1adb4ff 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "session.pr-branch-context",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-worktree.show-1.json b/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-worktree.show-1.json
index 4d05d74a774..e47fadcc518 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-worktree.show-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.pr-branch-context-worktree.show-1.json
@@ -3,7 +3,7 @@
"family": "session.pr-branch-context",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-github.prchecks-1.json b/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-github.prchecks-1.json
index ddaa1535764..48c2cd863ef 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-github.prchecks-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-github.prchecks-1.json
@@ -3,7 +3,7 @@
"family": "session.pr-sidebar",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "87ffa2daea415d2682f1112025b5bd9d52404c6fc7c239180a3ad2120678ff1f",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-github.prforbranch-1.json b/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-github.prforbranch-1.json
index e61a24812e7..4eb0fc51ea0 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-github.prforbranch-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-github.prforbranch-1.json
@@ -3,7 +3,7 @@
"family": "session.pr-sidebar",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "87ffa2daea415d2682f1112025b5bd9d52404c6fc7c239180a3ad2120678ff1f",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-hostedreview.forbranch-1.json b/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-hostedreview.forbranch-1.json
index 32b7b02a6dc..b8feccb506a 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-hostedreview.forbranch-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-hostedreview.forbranch-1.json
@@ -3,7 +3,7 @@
"family": "session.pr-sidebar",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "87ffa2daea415d2682f1112025b5bd9d52404c6fc7c239180a3ad2120678ff1f",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-worktree.show-1.json b/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-worktree.show-1.json
index ee7e575771e..57f913b1766 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-worktree.show-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.pr-sidebar-worktree.show-1.json
@@ -3,7 +3,7 @@
"family": "session.pr-sidebar",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "87ffa2daea415d2682f1112025b5bd9d52404c6fc7c239180a3ad2120678ff1f",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.pr-triage-session.tabs.createterminal-1.json b/mobile/rpc-foundation/goldens/matrix-session.pr-triage-session.tabs.createterminal-1.json
index d199564d62c..cf3815b4ab0 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.pr-triage-session.tabs.createterminal-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.pr-triage-session.tabs.createterminal-1.json
@@ -3,7 +3,7 @@
"family": "session.pr-triage",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.pr-triage-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-session.pr-triage-terminal.send-1.json
index 7d2bf88d581..6496fc23230 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.pr-triage-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.pr-triage-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "session.pr-triage",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.review-branch-diff-git.branchdiff-1.json b/mobile/rpc-foundation/goldens/matrix-session.review-branch-diff-git.branchdiff-1.json
index 61badbcb9d0..9cdcf1f43be 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.review-branch-diff-git.branchdiff-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.review-branch-diff-git.branchdiff-1.json
@@ -3,7 +3,7 @@
"family": "session.review-branch-diff",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-1.json b/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-1.json
index c807c216852..e8e190b32f5 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-1.json
@@ -3,7 +3,7 @@
"family": "session.review-file-diff",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-2.json b/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-2.json
index a797d08f740..78194b5fc50 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-2.json
@@ -3,7 +3,7 @@
"family": "session.review-file-diff",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-3.json b/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-3.json
index 6f6b580715e..cb57e9b87c8 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-3.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.review-file-diff-git.diff-3.json
@@ -3,7 +3,7 @@
"family": "session.review-file-diff",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.discard-1.json b/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.discard-1.json
index f5fd3188d83..69103951e33 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.discard-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.discard-1.json
@@ -3,7 +3,7 @@
"family": "session.review-git-mutations",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.stage-1.json b/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.stage-1.json
index 26d33eb5d90..41bdb40f6c1 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.stage-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.stage-1.json
@@ -3,7 +3,7 @@
"family": "session.review-git-mutations",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.stage-2.json b/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.stage-2.json
index caef72ecad2..83a13fc2172 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.stage-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.review-git-mutations-git.stage-2.json
@@ -3,7 +3,7 @@
"family": "session.review-git-mutations",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.review-send-sheet-session.tabs.list-1.json b/mobile/rpc-foundation/goldens/matrix-session.review-send-sheet-session.tabs.list-1.json
index 7000bef1980..e6a2456adf8 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.review-send-sheet-session.tabs.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.review-send-sheet-session.tabs.list-1.json
@@ -3,7 +3,7 @@
"family": "session.review-send-sheet",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.startup-worktree.activate-1.json b/mobile/rpc-foundation/goldens/matrix-session.startup-worktree.activate-1.json
index c562aa4f903..9938c5feb91 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.startup-worktree.activate-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.startup-worktree.activate-1.json
@@ -3,7 +3,7 @@
"family": "session.startup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "6b08c394e37fd572cf63a4c11934247d379008f11117aa5af33b2926fbd32d1e",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.startup-worktree.activate-2.json b/mobile/rpc-foundation/goldens/matrix-session.startup-worktree.activate-2.json
index e510ceebcd3..eba51894d02 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.startup-worktree.activate-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.startup-worktree.activate-2.json
@@ -3,7 +3,7 @@
"family": "session.startup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "6b08c394e37fd572cf63a4c11934247d379008f11117aa5af33b2926fbd32d1e",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.tab-activation-session.tabs.activate-1.json b/mobile/rpc-foundation/goldens/matrix-session.tab-activation-session.tabs.activate-1.json
index d138fb695a3..35e05041f75 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.tab-activation-session.tabs.activate-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.tab-activation-session.tabs.activate-1.json
@@ -3,7 +3,7 @@
"family": "session.tab-activation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.tab-activation-terminal.focus-1.json b/mobile/rpc-foundation/goldens/matrix-session.tab-activation-terminal.focus-1.json
index f5d150d9972..b77e9434391 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.tab-activation-terminal.focus-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.tab-activation-terminal.focus-1.json
@@ -3,7 +3,7 @@
"family": "session.tab-activation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.tab-close-session-session.tabs.close-1.json b/mobile/rpc-foundation/goldens/matrix-session.tab-close-session-session.tabs.close-1.json
index 3f019077e7b..aa7e11b10c9 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.tab-close-session-session.tabs.close-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.tab-close-session-session.tabs.close-1.json
@@ -3,7 +3,7 @@
"family": "session.tab-close-session",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.tab-close-terminal.close-1.json b/mobile/rpc-foundation/goldens/matrix-session.tab-close-terminal.close-1.json
index db353bbcfa9..f32a7834ecc 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.tab-close-terminal.close-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.tab-close-terminal.close-1.json
@@ -3,7 +3,7 @@
"family": "session.tab-close",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.tab-documents-markdown.readtab-1.json b/mobile/rpc-foundation/goldens/matrix-session.tab-documents-markdown.readtab-1.json
index 932571e6155..895f01ac4e7 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.tab-documents-markdown.readtab-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.tab-documents-markdown.readtab-1.json
@@ -3,7 +3,7 @@
"family": "session.tab-documents",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.tab-rename-terminal.rename-1.json b/mobile/rpc-foundation/goldens/matrix-session.tab-rename-terminal.rename-1.json
index 58b3884daa4..5dcdc830c19 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.tab-rename-terminal.rename-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.tab-rename-terminal.rename-1.json
@@ -3,7 +3,7 @@
"family": "session.tab-rename",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.tab-reveal-session.tabs.activate-1.json b/mobile/rpc-foundation/goldens/matrix-session.tab-reveal-session.tabs.activate-1.json
index e4cf277de9b..4d4a36f6fac 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.tab-reveal-session.tabs.activate-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.tab-reveal-session.tabs.activate-1.json
@@ -3,7 +3,7 @@
"family": "session.tab-reveal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.tab-reveal-session.tabs.list-1.json b/mobile/rpc-foundation/goldens/matrix-session.tab-reveal-session.tabs.list-1.json
index 2aa1e03d6f3..8ea5bd2be60 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.tab-reveal-session.tabs.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.tab-reveal-session.tabs.list-1.json
@@ -3,7 +3,7 @@
"family": "session.tab-reveal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.tabs-stream-health-session.tabs.list-1.json b/mobile/rpc-foundation/goldens/matrix-session.tabs-stream-health-session.tabs.list-1.json
index b35e403bfae..6fd108933b9 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.tabs-stream-health-session.tabs.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.tabs-stream-health-session.tabs.list-1.json
@@ -3,7 +3,7 @@
"family": "session.tabs-stream-health",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.terminal-display-mode-terminal.setdisplaymode-1.json b/mobile/rpc-foundation/goldens/matrix-session.terminal-display-mode-terminal.setdisplaymode-1.json
index 9e29ad3fcfe..f4b4a6576e7 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.terminal-display-mode-terminal.setdisplaymode-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-display-mode-terminal.setdisplaymode-1.json
@@ -3,7 +3,7 @@
"family": "session.terminal-display-mode",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "9e90ad39a8d4257adf30166757a6364c4710dc3ae9f06365f80a3dd8f1c94d89",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-orchestration.workerterminaluserinput-1.json b/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-orchestration.workerterminaluserinput-1.json
index d6dd86e5125..f1c39daf967 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-orchestration.workerterminaluserinput-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-orchestration.workerterminaluserinput-1.json
@@ -3,7 +3,7 @@
"family": "session.terminal-gesture-input",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "9d119d5ec320e2538105d6ff673b9f4b8e3decbe46527947489dffbcf2ac0472",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.clearbuffer-1.json b/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.clearbuffer-1.json
index e3e27458724..eec62b76a58 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.clearbuffer-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.clearbuffer-1.json
@@ -3,7 +3,7 @@
"family": "session.terminal-gesture-input",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "9d119d5ec320e2538105d6ff673b9f4b8e3decbe46527947489dffbcf2ac0472",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.send-1.json
index 6fdd6c6e3c1..ca5f852b678 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "session.terminal-gesture-input",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "9d119d5ec320e2538105d6ff673b9f4b8e3decbe46527947489dffbcf2ac0472",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.terminal-input-send-orchestration.workerterminaluserinput-1.json b/mobile/rpc-foundation/goldens/matrix-session.terminal-input-send-orchestration.workerterminaluserinput-1.json
index 209707eb204..782caa89cbd 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.terminal-input-send-orchestration.workerterminaluserinput-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-input-send-orchestration.workerterminaluserinput-1.json
@@ -3,7 +3,7 @@
"family": "session.terminal-input-send",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.terminal-input-send-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-session.terminal-input-send-terminal.send-1.json
index 31c2c258b4e..dc7f2ebfc0b 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.terminal-input-send-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-input-send-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "session.terminal-input-send",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.terminal-inventory-terminal.list-1.json b/mobile/rpc-foundation/goldens/matrix-session.terminal-inventory-terminal.list-1.json
index 2485b957e56..c6bad41ea5c 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.terminal-inventory-terminal.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-inventory-terminal.list-1.json
@@ -3,7 +3,7 @@
"family": "session.terminal-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-orchestration.workerterminaluserinput-1.json b/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-orchestration.workerterminaluserinput-1.json
index ee23e454a0f..a5c0c85b66a 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-orchestration.workerterminaluserinput-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-orchestration.workerterminaluserinput-1.json
@@ -3,7 +3,7 @@
"family": "session.terminal-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-settings.get-1.json
index d888d9d8e97..2060916a4bf 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "session.terminal-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-terminal.send-1.json
index a374c85ed9e..a738ed53b3d 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-paste-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "session.terminal-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.worktree-connection-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-session.worktree-connection-repo.list-1.json
index 3a4cc2a668c..fb0ac449993 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.worktree-connection-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.worktree-connection-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "session.worktree-connection",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/matrix-session.worktree-connection-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-session.worktree-connection-settings.get-1.json
index e731af4eded..0aa1365c328 100644
--- a/mobile/rpc-foundation/goldens/matrix-session.worktree-connection-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-session.worktree-connection-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "session.worktree-connection",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings-agent-read-preflight.detectremoteagents-1.json b/mobile/rpc-foundation/goldens/matrix-settings-agent-read-preflight.detectremoteagents-1.json
index bd8fe086517..9bb778e5dbc 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings-agent-read-preflight.detectremoteagents-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings-agent-read-preflight.detectremoteagents-1.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings-agent-read-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-settings-agent-read-repo.list-1.json
index 0c3f2ed82e7..d5e47a92f43 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings-agent-read-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings-agent-read-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings-agent-read-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings-agent-read-settings.get-1.json
index 79cb2602334..0fc5441fb70 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings-agent-read-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings-agent-read-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings-best-effort-settings.update-1.json b/mobile/rpc-foundation/goldens/matrix-settings-best-effort-settings.update-1.json
index 9141433148f..7b84a9ee3f1 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings-best-effort-settings.update-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings-best-effort-settings.update-1.json
@@ -3,7 +3,7 @@
"family": "settings-best-effort",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.bot-overrides-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.bot-overrides-settings.get-1.json
index e4d2ec19192..317d05e89cd 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.bot-overrides-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.bot-overrides-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.bot-overrides",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.home-providers-linear.status-1.json b/mobile/rpc-foundation/goldens/matrix-settings.home-providers-linear.status-1.json
index b7c68d25145..1d46b8cb543 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.home-providers-linear.status-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.home-providers-linear.status-1.json
@@ -3,7 +3,7 @@
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.home-providers-preflight.check-1.json b/mobile/rpc-foundation/goldens/matrix-settings.home-providers-preflight.check-1.json
index cc1107cc032..4e6900f9c3c 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.home-providers-preflight.check-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.home-providers-preflight.check-1.json
@@ -3,7 +3,7 @@
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.home-providers-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.home-providers-settings.get-1.json
index c8a1f547cb4..0632e412cea 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.home-providers-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.home-providers-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-preflight.detectagents-1.json b/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-preflight.detectagents-1.json
index 06a5d830069..26e30bda713 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-preflight.detectagents-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-preflight.detectagents-1.json
@@ -3,7 +3,7 @@
"family": "settings.new-tab-local-agents",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-repo.list-1.json
index be297103994..2b59c43016e 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "settings.new-tab-local-agents",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-settings.get-1.json
index 9efdf7628d9..dd3261fac6d 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.new-tab-local-agents-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.new-tab-local-agents",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.quick-commands-settings.getterminalquickcommands-1.json b/mobile/rpc-foundation/goldens/matrix-settings.quick-commands-settings.getterminalquickcommands-1.json
index 970b1954702..1c4f6e8d449 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.quick-commands-settings.getterminalquickcommands-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.quick-commands-settings.getterminalquickcommands-1.json
@@ -3,7 +3,7 @@
"family": "settings.quick-commands",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.quick-commands-settings.updateterminalquickcommands-1.json b/mobile/rpc-foundation/goldens/matrix-settings.quick-commands-settings.updateterminalquickcommands-1.json
index 2777711cbef..93de68eb77b 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.quick-commands-settings.updateterminalquickcommands-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.quick-commands-settings.updateterminalquickcommands-1.json
@@ -3,7 +3,7 @@
"family": "settings.quick-commands",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-host.platform-1.json b/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-host.platform-1.json
index 1c552208819..04fc071c991 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-host.platform-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-host.platform-1.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-repo.list-1.json
index d4a67cf6721..1c946d451b4 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-settings.get-1.json
index bdcdd23aa91..e573f898896 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-ssh.listtargetsummaries-1.json b/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-ssh.listtargetsummaries-1.json
index c6398578bbb..beebf240ecc 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-ssh.listtargetsummaries-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.repo-metadata-ssh.listtargetsummaries-1.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-folderworkspace.list-1.json b/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-folderworkspace.list-1.json
index efdabb52dc8..3a33228ba13 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-folderworkspace.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-folderworkspace.list-1.json
@@ -3,7 +3,7 @@
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-projectgroup.list-1.json b/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-projectgroup.list-1.json
index b7ab972ef14..e5096bd5609 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-projectgroup.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-projectgroup.list-1.json
@@ -3,7 +3,7 @@
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-repo.list-1.json
index a352d673dd4..5412f0aa704 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-settings.get-1.json
index 2f99dc6913e..6a0c4b2d20d 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-worktree.ps-1.json b/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-worktree.ps-1.json
index 317164e097a..5f566166d7c 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-worktree.ps-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.resume-metadata-worktree.ps-1.json
@@ -3,7 +3,7 @@
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-linear.status-1.json b/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-linear.status-1.json
index 809cac0cb0f..f3cca3e83dc 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-linear.status-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-linear.status-1.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-preflight.check-1.json b/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-preflight.check-1.json
index 27a97870acc..24a6b327ea8 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-preflight.check-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-preflight.check-1.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-settings.get-1.json
index 1a36e67804b..9ac54d8234b 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-status.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-status.get-1.json
index 15e04f42c4a..25355ba2aa6 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-status.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-status.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-ui.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-ui.get-1.json
index 282aa51dd34..3d0950d887d 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-ui.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.task-hydration-ui.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-create-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-create-settings.get-1.json
index e7729076fdb..8edc55a3cae 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-create-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-create-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.task-workspace-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-create-worktree.create-1.json b/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-create-worktree.create-1.json
index 25c39f1c4d2..4222003e02c 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-create-worktree.create-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-create-worktree.create-1.json
@@ -3,7 +3,7 @@
"family": "settings.task-workspace-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-settings.get-1.json
index 1529b12da3e..9648600cd0b 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.task-workspace-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.task-workspace",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-linear.status-1.json b/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-linear.status-1.json
index c1384aeefd1..78bd94371e2 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-linear.status-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-linear.status-1.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-context",
"namedDeltas": ["new-workspace-runtime-context-null-results-degrade-to-absent"],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-preflight.check-1.json b/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-preflight.check-1.json
index 333402f476d..aa38a079c17 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-preflight.check-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-preflight.check-1.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-context",
"namedDeltas": ["new-workspace-runtime-context-null-results-degrade-to-absent"],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-settings.get-1.json
index d96bc82e8fc..6d6ff546eb3 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-context",
"namedDeltas": ["new-workspace-runtime-context-null-results-degrade-to-absent"],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-ui.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-ui.get-1.json
index 49a2f3599eb..2433a222fb3 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-ui.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.workspace-context-ui.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-context",
"namedDeltas": ["new-workspace-runtime-context-null-results-degrade-to-absent"],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/matrix-settings.workspace-submit-settings.get-1.json b/mobile/rpc-foundation/goldens/matrix-settings.workspace-submit-settings.get-1.json
index 016a3c123c1..5190e2f1243 100644
--- a/mobile/rpc-foundation/goldens/matrix-settings.workspace-submit-settings.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-settings.workspace-submit-settings.get-1.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-submit",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/matrix-speech.dictation-chunk-speech.dictation.chunk-1.json b/mobile/rpc-foundation/goldens/matrix-speech.dictation-chunk-speech.dictation.chunk-1.json
index c09d52dbdb1..54d3406c0c3 100644
--- a/mobile/rpc-foundation/goldens/matrix-speech.dictation-chunk-speech.dictation.chunk-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-speech.dictation-chunk-speech.dictation.chunk-1.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-chunk",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/matrix-speech.dictation-session-speech.dictation.finish-1.json b/mobile/rpc-foundation/goldens/matrix-speech.dictation-session-speech.dictation.finish-1.json
index 4424aa41f05..38352cc271e 100644
--- a/mobile/rpc-foundation/goldens/matrix-speech.dictation-session-speech.dictation.finish-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-speech.dictation-session-speech.dictation.finish-1.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-session",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/matrix-speech.dictation-session-speech.dictation.start-1.json b/mobile/rpc-foundation/goldens/matrix-speech.dictation-session-speech.dictation.start-1.json
index cb8e2eb4f03..5e21ae38877 100644
--- a/mobile/rpc-foundation/goldens/matrix-speech.dictation-session-speech.dictation.start-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-speech.dictation-session-speech.dictation.start-1.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-session",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/matrix-speech.dictation-start-speech.dictation.cancel-1.json b/mobile/rpc-foundation/goldens/matrix-speech.dictation-start-speech.dictation.cancel-1.json
index ae47f95d589..f1987472c99 100644
--- a/mobile/rpc-foundation/goldens/matrix-speech.dictation-start-speech.dictation.cancel-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-speech.dictation-start-speech.dictation.cancel-1.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-start",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/matrix-speech.dictation-start-speech.dictation.start-1.json b/mobile/rpc-foundation/goldens/matrix-speech.dictation-start-speech.dictation.start-1.json
index e772c23079c..5419fa7776d 100644
--- a/mobile/rpc-foundation/goldens/matrix-speech.dictation-start-speech.dictation.start-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-speech.dictation-start-speech.dictation.start-1.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-start",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.dictation.setup-1.json b/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.dictation.setup-1.json
index ce3e047cc6c..e68efcd8310 100644
--- a/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.dictation.setup-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.dictation.setup-1.json
@@ -3,7 +3,7 @@
"family": "speech.setup-sheet",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.delete-1.json b/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.delete-1.json
index a990fcc3c9c..fc2f788c2ad 100644
--- a/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.delete-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.delete-1.json
@@ -3,7 +3,7 @@
"family": "speech.setup-sheet",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.download-1.json b/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.download-1.json
index 9f76b612d1f..e1990ed11a1 100644
--- a/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.download-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.download-1.json
@@ -3,7 +3,7 @@
"family": "speech.setup-sheet",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.list-1.json b/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.list-1.json
index c725717e4fd..f773a3353bf 100644
--- a/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-speech.setup-sheet-speech.models.list-1.json
@@ -3,7 +3,7 @@
"family": "speech.setup-sheet",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.addprreviewcomment-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.addprreviewcomment-1.json
index 969adfb7bd3..9bfd006843e 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.addprreviewcomment-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.addprreviewcomment-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-checks-files",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.prfilecontents-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.prfilecontents-1.json
index a90b60cd162..0cc70ca28ed 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.prfilecontents-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.prfilecontents-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-checks-files",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.rerunprchecks-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.rerunprchecks-1.json
index 37abeda39f5..2c0d1191f59 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.rerunprchecks-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.rerunprchecks-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-checks-files",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.resolvereviewthread-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.resolvereviewthread-1.json
index 0c1d9b8befd..c844f6d84b7 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.resolvereviewthread-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.resolvereviewthread-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-checks-files",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.setprfileviewed-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.setprfileviewed-1.json
index a9e6a86c142..b38705e3fc0 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.setprfileviewed-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-checks-files-github.setprfileviewed-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-checks-files",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-github-github.addissuecomment-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-github-github.addissuecomment-1.json
index bb62ea8ebd8..2c347580e4e 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-github-github.addissuecomment-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-github-github.addissuecomment-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-comment-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-gitlab-gitlab.addissuecomment-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-gitlab-gitlab.addissuecomment-1.json
index 78c7295bf6a..f70aa0784aa 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-gitlab-gitlab.addissuecomment-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-gitlab-gitlab.addissuecomment-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-comment-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-gitlab-mr-gitlab.addmrcomment-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-gitlab-mr-gitlab.addmrcomment-1.json
index 667a14ba996..05c987158a4 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-gitlab-mr-gitlab.addmrcomment-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-comment-gitlab-mr-gitlab.addmrcomment-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-comment-gitlab-mr",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-github-github.workitemdetails-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-github-github.workitemdetails-1.json
index 39eefa4b43a..fe4ae7760da 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-github-github.workitemdetails-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-github-github.workitemdetails-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-gitlab-gitlab.workitemdetails-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-gitlab-gitlab.workitemdetails-1.json
index 93e8bbb406d..738700fa618 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-gitlab-gitlab.workitemdetails-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-gitlab-gitlab.workitemdetails-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-linear-linear.getissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-linear-linear.getissue-1.json
index 869b00d61cd..b2bc9a7c466 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-linear-linear.getissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-linear-linear.getissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-linear",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-linear-linear.issuecomments-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-linear-linear.issuecomments-1.json
index faeea3c5558..1c9d549f4ee 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-linear-linear.issuecomments-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-linear-linear.issuecomments-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-linear",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-metadata-github.listassignableusers-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-metadata-github.listassignableusers-1.json
index 95f7f49b8e7..cbfecde65a7 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-metadata-github.listassignableusers-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-metadata-github.listassignableusers-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-metadata-github.listlabels-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-metadata-github.listlabels-1.json
index ac686c98310..d0a8beef27f 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-metadata-github.listlabels-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-detail-metadata-github.listlabels-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-merge-gitlab-gitlab.mergemr-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-merge-gitlab-gitlab.mergemr-1.json
index eed90edd81b..9ffa4fd09f5 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-merge-gitlab-gitlab.mergemr-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-merge-gitlab-gitlab.mergemr-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-merge-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-github-github.updatepr-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-github-github.updatepr-1.json
index 48bb2ba53d8..026535f9c5b 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-github-github.updatepr-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-github-github.updatepr-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-metadata-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-gitlab-gitlab.updateissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-gitlab-gitlab.updateissue-1.json
index 45227c0f1e7..5df6ab8a123 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-gitlab-gitlab.updateissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-gitlab-gitlab.updateissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-metadata-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-gitlab-mr-gitlab.updatemr-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-gitlab-mr-gitlab.updatemr-1.json
index c84a464eacb..4acb4320ea2 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-gitlab-mr-gitlab.updatemr-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-metadata-gitlab-mr-gitlab.updatemr-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-metadata-gitlab-mr",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.addissuecomment-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.addissuecomment-1.json
index c2ceae9b35e..578685a5fb8 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.addissuecomment-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.addissuecomment-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-reply-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.addprreviewcommentreply-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.addprreviewcommentreply-1.json
index 3d41447db5c..d1a1f1075ee 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.addprreviewcommentreply-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.addprreviewcommentreply-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-reply-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.mergepr-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.mergepr-1.json
index 9c151d4f4a3..8bf181851b8 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.mergepr-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-github.mergepr-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-reply-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-linear.updateissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-linear.updateissue-1.json
index bfad96ab441..4e4927dcef1 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-linear.updateissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-reply-merge-linear.updateissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-reply-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-review-github-github.prchecks-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-review-github-github.prchecks-1.json
index 6c6b01217e5..e2d2832b5ee 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-review-github-github.prchecks-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-review-github-github.prchecks-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-review-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-review-github-github.requestprreviewers-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-review-github-github.requestprreviewers-1.json
index fe47471b166..fb13f486e88 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-review-github-github.requestprreviewers-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-review-github-github.requestprreviewers-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-review-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-github.updateissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-github.updateissue-1.json
index 833e83874e4..3dab0676dbc 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-github.updateissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-github.updateissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-status-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-gitlab.updateissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-gitlab.updateissue-1.json
index c7daed8a6ff..bcb4ef849d4 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-gitlab.updateissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-gitlab.updateissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-status-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-mr-gitlab.updatemrstate-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-mr-gitlab.updatemrstate-1.json
index b65e1ca6f32..a2058f3839c 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-mr-gitlab.updatemrstate-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.item-status-gitlab-mr-gitlab.updatemrstate-1.json
@@ -3,7 +3,7 @@
"family": "tasks.item-status-gitlab-mr",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.linear-connect-linear.connect-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.linear-connect-linear.connect-1.json
index 4d747f62258..05eddb607b6 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.linear-connect-linear.connect-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.linear-connect-linear.connect-1.json
@@ -3,7 +3,7 @@
"family": "tasks.linear-connect",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.addissuecomment-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.addissuecomment-1.json
index 5f061261f78..e872951bdda 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.addissuecomment-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.addissuecomment-1.json
@@ -3,7 +3,7 @@
"family": "tasks.linear-item",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.createissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.createissue-1.json
index ba8e76a170c..30252ff7779 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.createissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.createissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.linear-item",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.getissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.getissue-1.json
index bfb0720ca99..35ca7259162 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.getissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.linear-item-linear.getissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.linear-item",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.linear-team-context-linear.listteams-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.linear-team-context-linear.listteams-1.json
index 0e530995693..585a0ce1a53 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.linear-team-context-linear.listteams-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.linear-team-context-linear.listteams-1.json
@@ -3,7 +3,7 @@
"family": "tasks.linear-team-context",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.linear-team-context-linear.teamstates-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.linear-team-context-linear.teamstates-1.json
index 5df25ca2886..a331c042414 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.linear-team-context-linear.teamstates-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.linear-team-context-linear.teamstates-1.json
@@ -3,7 +3,7 @@
"family": "tasks.linear-team-context",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.reposlug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.reposlug-1.json
index e8d6b37a7c8..e568ed7deb2 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.reposlug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.reposlug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.paste-lookup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.workitem-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.workitem-1.json
index 4dcc3ea9d23..09a8623e12d 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.workitem-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.workitem-1.json
@@ -3,7 +3,7 @@
"family": "tasks.paste-lookup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.workitembyownerrepo-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.workitembyownerrepo-1.json
index 87b03e93480..3a9a431b0d3 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.workitembyownerrepo-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-github.workitembyownerrepo-1.json
@@ -3,7 +3,7 @@
"family": "tasks.paste-lookup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-gitlab.workitembypath-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-gitlab.workitembypath-1.json
index 893e8f549a1..42cc25ea0f4 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-gitlab.workitembypath-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.paste-lookup-gitlab.workitembypath-1.json
@@ -3,7 +3,7 @@
"family": "tasks.paste-lookup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listaccessible-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listaccessible-1.json
index adf542f5234..e72e3708c06 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listaccessible-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listaccessible-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-board-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listviews-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listviews-1.json
index ab8b0eed755..56b5c985e08 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listviews-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listviews-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-board-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listviews-2.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listviews-2.json
index 14605033277..43ebd12480b 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listviews-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.listviews-2.json
@@ -3,7 +3,7 @@
"family": "tasks.project-board-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.resolveref-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.resolveref-1.json
index fde9517ee04..1df9758b390 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.resolveref-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.resolveref-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-board-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.viewtable-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.viewtable-1.json
index b674292d190..2d571a50b27 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.viewtable-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-board-load-github.project.viewtable-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-board-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-repo-slugs-github.reposlug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-repo-slugs-github.reposlug-1.json
index 453a1561602..be2b0697498 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-repo-slugs-github.reposlug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-repo-slugs-github.reposlug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-repo-slugs",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.addissuecommentbyslug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.addissuecommentbyslug-1.json
index 20b67c2ab40..04dafc45c2e 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.addissuecommentbyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.addissuecommentbyslug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-comments-issue",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.updateissuebyslug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.updateissuebyslug-1.json
index 317f36d79c6..2a3fcf77a47 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.updateissuebyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.updateissuebyslug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-comments-issue",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.updateissuecommentbyslug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.updateissuecommentbyslug-1.json
index 56c79020dce..b4431143e5c 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.updateissuecommentbyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-issue-github.project.updateissuecommentbyslug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-comments-issue",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-pr-github.project.updatepullrequestbyslug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-pr-github.project.updatepullrequestbyslug-1.json
index 67d69a7ab6a..d71226e7392 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-pr-github.project.updatepullrequestbyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-comments-pr-github.project.updatepullrequestbyslug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-comments-pr",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-detail-github.project.workitemdetailsbyslug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-detail-github.project.workitemdetailsbyslug-1.json
index 1cfe4867f76..153999c8fa3 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-detail-github.project.workitemdetailsbyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-detail-github.project.workitemdetailsbyslug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-detail",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.clearitemfield-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.clearitemfield-1.json
index ed7a10ce717..670fbf334b6 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.clearitemfield-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.clearitemfield-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-fields",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.updateissuetypebyslug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.updateissuetypebyslug-1.json
index a48f0052fc5..e9e8591fb4b 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.updateissuetypebyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.updateissuetypebyslug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-fields",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.updateitemfield-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.updateitemfield-1.json
index 00f3315e7d2..f2cde8c7876 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.updateitemfield-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-fields-github.project.updateitemfield-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-fields",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.addprreviewcomment-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.addprreviewcomment-1.json
index 36ed9fb613e..68f7c60b216 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.addprreviewcomment-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.addprreviewcomment-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-files-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.mergepr-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.mergepr-1.json
index 7f993ff28a8..93de2be604a 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.mergepr-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.mergepr-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-files-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.prfilecontents-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.prfilecontents-1.json
index 24cf716a6b8..0a95358d600 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.prfilecontents-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.prfilecontents-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-files-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.updateissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.updateissue-1.json
index ffb1aedd812..295175d0694 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.updateissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.updateissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-files-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.updateprstate-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.updateprstate-1.json
index ba9a71949c7..d3c1183ceef 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.updateprstate-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-files-merge-github.updateprstate-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-files-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listassignableusersbyslug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listassignableusersbyslug-1.json
index e2b20f7f3b4..3912c126137 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listassignableusersbyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listassignableusersbyslug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-metadata-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listissuetypesbyslug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listissuetypesbyslug-1.json
index 38a4cd1f9f0..60bf2d3acc4 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listissuetypesbyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listissuetypesbyslug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-metadata-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listlabelsbyslug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listlabelsbyslug-1.json
index e23de516bec..ebd38177b39 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listlabelsbyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-metadata-load-github.project.listlabelsbyslug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-metadata-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.prchecks-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.prchecks-1.json
index 8fdf368f9d1..aafb025f855 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.prchecks-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.prchecks-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-review-checks",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.requestprreviewers-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.requestprreviewers-1.json
index 3f80e0f8f5c..b9be225d833 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.requestprreviewers-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.requestprreviewers-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-review-checks",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.rerunprchecks-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.rerunprchecks-1.json
index c04371a1c01..d98a5dd9112 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.rerunprchecks-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.rerunprchecks-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-review-checks",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.setprfileviewed-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.setprfileviewed-1.json
index b515f4a7adf..935ae8eee83 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.setprfileviewed-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-review-checks-github.setprfileviewed-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-review-checks",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.addissuecomment-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.addissuecomment-1.json
index d5b98105954..7b6a0350757 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.addissuecomment-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.addissuecomment-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-threads",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.addprreviewcommentreply-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.addprreviewcommentreply-1.json
index 57623a1bdc1..f91b2bb82a6 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.addprreviewcommentreply-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.addprreviewcommentreply-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-threads",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.project.deleteissuecommentbyslug-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.project.deleteissuecommentbyslug-1.json
index eb9dd2ff0b6..2c027586e2c 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.project.deleteissuecommentbyslug-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.project.deleteissuecommentbyslug-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-threads",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.resolvereviewthread-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.resolvereviewthread-1.json
index c19eafc7183..ed692389850 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.resolvereviewthread-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.project-row-threads-github.resolvereviewthread-1.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-threads",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-github.countworkitems-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-github.countworkitems-1.json
index defd19d552a..9efb85efffd 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-github.countworkitems-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-github.countworkitems-1.json
@@ -3,7 +3,7 @@
"family": "tasks.provider-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-github.listworkitems-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-github.listworkitems-1.json
index bb58c7b4f4a..4623c580bb8 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-github.listworkitems-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-github.listworkitems-1.json
@@ -3,7 +3,7 @@
"family": "tasks.provider-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-linear.listteams-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-linear.listteams-1.json
index f98dcbdd2a4..df9d28e0f9b 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-linear.listteams-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-linear.listteams-1.json
@@ -3,7 +3,7 @@
"family": "tasks.provider-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-linear.status-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-linear.status-1.json
index f1892f399c6..06b12c2163f 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-linear.status-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-linear.status-1.json
@@ -3,7 +3,7 @@
"family": "tasks.provider-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-settings.update-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-settings.update-1.json
index ddc44454e8a..7bdd0059243 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-settings.update-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.provider-load-settings.update-1.json
@@ -3,7 +3,7 @@
"family": "tasks.provider-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.route-repo-list-repo.list-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.route-repo-list-repo.list-1.json
index 32be0427f6a..30b6ad18272 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.route-repo-list-repo.list-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.route-repo-list-repo.list-1.json
@@ -3,7 +3,7 @@
"family": "tasks.route-repo-list",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "feb6cee1ab7ecff1ba98bfba22d4924c748d3bb6b749db460cb617ee50b92f2c",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-github.listworkitems-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-github.listworkitems-1.json
index 9f7c7b6b74d..bb1f713f98c 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-github.listworkitems-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-github.listworkitems-1.json
@@ -3,7 +3,7 @@
"family": "tasks.smart-source-search",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-gitlab.listworkitems-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-gitlab.listworkitems-1.json
index 2fbd566d63e..15af2f98ce0 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-gitlab.listworkitems-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-gitlab.listworkitems-1.json
@@ -3,7 +3,7 @@
"family": "tasks.smart-source-search",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-linear.listissues-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-linear.listissues-1.json
index 61f9b2b1c1e..0b1bd8d5eaa 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-linear.listissues-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-linear.listissues-1.json
@@ -3,7 +3,7 @@
"family": "tasks.smart-source-search",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-linear.searchissues-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-linear.searchissues-1.json
index 6a699c04bdd..ddfbeb459c5 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-linear.searchissues-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-linear.searchissues-1.json
@@ -3,7 +3,7 @@
"family": "tasks.smart-source-search",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-repo.searchrefs-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-repo.searchrefs-1.json
index c7d714c4294..6df34401109 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-repo.searchrefs-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.smart-source-search-repo.searchrefs-1.json
@@ -3,7 +3,7 @@
"family": "tasks.smart-source-search",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.task-create-github-github.createissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.task-create-github-github.createissue-1.json
index d04a37f6c51..09a3cd9056c 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.task-create-github-github.createissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.task-create-github-github.createissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.task-create-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.task-create-github-repo.update-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.task-create-github-repo.update-1.json
index ce0a75442b8..8c3f5770e6b 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.task-create-github-repo.update-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.task-create-github-repo.update-1.json
@@ -3,7 +3,7 @@
"family": "tasks.task-create-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.task-create-gitlab-gitlab.createissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.task-create-gitlab-gitlab.createissue-1.json
index 55ccc7feefb..0c257530c36 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.task-create-gitlab-gitlab.createissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.task-create-gitlab-gitlab.createissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.task-create-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.task-create-linear-linear.createissue-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.task-create-linear-linear.createissue-1.json
index e69245d7f2b..c11d58ddddd 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.task-create-linear-linear.createissue-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.task-create-linear-linear.createissue-1.json
@@ -3,7 +3,7 @@
"family": "tasks.task-create-linear",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.task-list-gitlab-items-gitlab.listworkitems-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.task-list-gitlab-items-gitlab.listworkitems-1.json
index 030012450ba..9dc4d447e03 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.task-list-gitlab-items-gitlab.listworkitems-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.task-list-gitlab-items-gitlab.listworkitems-1.json
@@ -3,7 +3,7 @@
"family": "tasks.task-list-gitlab-items",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.task-list-gitlab-todos-gitlab.todos-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.task-list-gitlab-todos-gitlab.todos-1.json
index 7be4c82de44..db48d87ee35 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.task-list-gitlab-todos-gitlab.todos-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.task-list-gitlab-todos-gitlab.todos-1.json
@@ -3,7 +3,7 @@
"family": "tasks.task-list-gitlab-todos",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.task-list-linear-linear.listissues-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.task-list-linear-linear.listissues-1.json
index 9c3446138c2..293c629d0cc 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.task-list-linear-linear.listissues-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.task-list-linear-linear.listissues-1.json
@@ -3,7 +3,7 @@
"family": "tasks.task-list-linear",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.task-list-linear-linear.searchissues-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.task-list-linear-linear.searchissues-1.json
index cd42a40e6bb..43b521f9190 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.task-list-linear-linear.searchissues-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.task-list-linear-linear.searchissues-1.json
@@ -3,7 +3,7 @@
"family": "tasks.task-list-linear",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-source-repo.searchrefs-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-source-repo.searchrefs-1.json
index dbe8f008b87..65fe3e75195 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-source-repo.searchrefs-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-source-repo.searchrefs-1.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-source",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-source-repo.sparsepresets-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-source-repo.sparsepresets-1.json
index eda9b8d68c1..436c99c9db9 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-source-repo.sparsepresets-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-source-repo.sparsepresets-1.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-source",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-sparse-repo.savesparsepreset-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-sparse-repo.savesparsepreset-1.json
index 14873e66b8d..a900f6a226e 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-sparse-repo.savesparsepreset-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-sparse-repo.savesparsepreset-1.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-sparse",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-sparse-ssh.getstate-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-sparse-ssh.getstate-1.json
index 90982b7a0b4..5106704d7af 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-sparse-ssh.getstate-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-sparse-ssh.getstate-1.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-sparse",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-local-preflight.detectagents-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-local-preflight.detectagents-1.json
index 62484b9d432..6c6c50622a0 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-local-preflight.detectagents-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-local-preflight.detectagents-1.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-ssh-local",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-preflight.detectremoteagents-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-preflight.detectremoteagents-1.json
index 3e268610e7c..8abb1282d7c 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-preflight.detectremoteagents-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-preflight.detectremoteagents-1.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-ssh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-repo.hooks-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-repo.hooks-1.json
index 651ff3e50f6..5e210ecbc2c 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-repo.hooks-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-repo.hooks-1.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-ssh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-ssh.connect-1.json b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-ssh.connect-1.json
index d0eaf4a2cd1..4e38810a165 100644
--- a/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-ssh.connect-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-tasks.workspace-ssh-ssh.connect-1.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-ssh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/matrix-terminal.query-reply-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-terminal.query-reply-terminal.send-1.json
index 19eafa4df51..8ca0604a783 100644
--- a/mobile/rpc-foundation/goldens/matrix-terminal.query-reply-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-terminal.query-reply-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "terminal.query-reply",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/matrix-terminal.raw-input-orchestration.workerterminaluserinput-1.json b/mobile/rpc-foundation/goldens/matrix-terminal.raw-input-orchestration.workerterminaluserinput-1.json
index 9f098021d62..9dd92a3633d 100644
--- a/mobile/rpc-foundation/goldens/matrix-terminal.raw-input-orchestration.workerterminaluserinput-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-terminal.raw-input-orchestration.workerterminaluserinput-1.json
@@ -3,7 +3,7 @@
"family": "terminal.raw-input",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/matrix-terminal.raw-input-terminal.send-1.json b/mobile/rpc-foundation/goldens/matrix-terminal.raw-input-terminal.send-1.json
index b3f99250f74..380472cd0d8 100644
--- a/mobile/rpc-foundation/goldens/matrix-terminal.raw-input-terminal.send-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-terminal.raw-input-terminal.send-1.json
@@ -3,7 +3,7 @@
"family": "terminal.raw-input",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/matrix-terminal.takeover-report-orchestration.workerterminaluserinput-1.json b/mobile/rpc-foundation/goldens/matrix-terminal.takeover-report-orchestration.workerterminaluserinput-1.json
index 4e231605dec..3e239fa6b68 100644
--- a/mobile/rpc-foundation/goldens/matrix-terminal.takeover-report-orchestration.workerterminaluserinput-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-terminal.takeover-report-orchestration.workerterminaluserinput-1.json
@@ -3,7 +3,7 @@
"family": "terminal.takeover-report",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/matrix-terminal.takeover-report-orchestration.workerterminaluserinput-2.json b/mobile/rpc-foundation/goldens/matrix-terminal.takeover-report-orchestration.workerterminaluserinput-2.json
index 70e703015c5..bc489eca7de 100644
--- a/mobile/rpc-foundation/goldens/matrix-terminal.takeover-report-orchestration.workerterminaluserinput-2.json
+++ b/mobile/rpc-foundation/goldens/matrix-terminal.takeover-report-orchestration.workerterminaluserinput-2.json
@@ -3,7 +3,7 @@
"family": "terminal.takeover-report",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/matrix-terminal.viewport-refit-terminal.updateviewport-1.json b/mobile/rpc-foundation/goldens/matrix-terminal.viewport-refit-terminal.updateviewport-1.json
index fc2b147383a..c6b765448c2 100644
--- a/mobile/rpc-foundation/goldens/matrix-terminal.viewport-refit-terminal.updateviewport-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-terminal.viewport-refit-terminal.updateviewport-1.json
@@ -3,7 +3,7 @@
"family": "terminal.viewport-refit",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/matrix-transport.capability-probe-status.get-1.json b/mobile/rpc-foundation/goldens/matrix-transport.capability-probe-status.get-1.json
index 38bf5dc65c0..dcb62bbe991 100644
--- a/mobile/rpc-foundation/goldens/matrix-transport.capability-probe-status.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-transport.capability-probe-status.get-1.json
@@ -3,7 +3,7 @@
"family": "transport.capability-probe",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/matrix-transport.host-status-gates-status.get-1.json b/mobile/rpc-foundation/goldens/matrix-transport.host-status-gates-status.get-1.json
index 432d19598b4..eda010626d0 100644
--- a/mobile/rpc-foundation/goldens/matrix-transport.host-status-gates-status.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-transport.host-status-gates-status.get-1.json
@@ -3,7 +3,7 @@
"family": "transport.host-status-gates",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/matrix-transport.pairing-race-direct-status.json b/mobile/rpc-foundation/goldens/matrix-transport.pairing-race-direct-status.json
index b2fb322c5ab..608b3649bd9 100644
--- a/mobile/rpc-foundation/goldens/matrix-transport.pairing-race-direct-status.json
+++ b/mobile/rpc-foundation/goldens/matrix-transport.pairing-race-direct-status.json
@@ -3,7 +3,7 @@
"family": "transport.pairing-race",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/matrix-transport.pairing-race-relay-status.json b/mobile/rpc-foundation/goldens/matrix-transport.pairing-race-relay-status.json
index 153490a530b..a8102b51879 100644
--- a/mobile/rpc-foundation/goldens/matrix-transport.pairing-race-relay-status.json
+++ b/mobile/rpc-foundation/goldens/matrix-transport.pairing-race-relay-status.json
@@ -3,7 +3,7 @@
"family": "transport.pairing-race",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/matrix-worktree.agent-launch-create-agent.launch-1.json b/mobile/rpc-foundation/goldens/matrix-worktree.agent-launch-create-agent.launch-1.json
index 8c11f56349f..e78faed10b4 100644
--- a/mobile/rpc-foundation/goldens/matrix-worktree.agent-launch-create-agent.launch-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-worktree.agent-launch-create-agent.launch-1.json
@@ -3,7 +3,7 @@
"family": "worktree.agent-launch-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
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
index cc0cde5daf3..f3ed566d096 100644
--- 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
@@ -3,7 +3,7 @@
"family": "worktree.catalog-snapshot",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e",
diff --git a/mobile/rpc-foundation/goldens/matrix-worktree.create-retry-worktree.create-1.json b/mobile/rpc-foundation/goldens/matrix-worktree.create-retry-worktree.create-1.json
index 41c9542e10b..1556bd80d2a 100644
--- a/mobile/rpc-foundation/goldens/matrix-worktree.create-retry-worktree.create-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-worktree.create-retry-worktree.create-1.json
@@ -3,7 +3,7 @@
"family": "worktree.create-retry",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
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
index d5c0be05c90..4575f60e48d 100644
--- 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
@@ -3,7 +3,7 @@
"family": "worktree.home-catalog",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e",
diff --git a/mobile/rpc-foundation/goldens/matrix-worktree.hosted-base-worktree.resolvemrbase-1.json b/mobile/rpc-foundation/goldens/matrix-worktree.hosted-base-worktree.resolvemrbase-1.json
index a4a4449462f..822399e247f 100644
--- a/mobile/rpc-foundation/goldens/matrix-worktree.hosted-base-worktree.resolvemrbase-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-worktree.hosted-base-worktree.resolvemrbase-1.json
@@ -3,7 +3,7 @@
"family": "worktree.hosted-base",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-worktree.hosted-base-worktree.resolveprbase-1.json b/mobile/rpc-foundation/goldens/matrix-worktree.hosted-base-worktree.resolveprbase-1.json
index 371ef955a32..11edd88340b 100644
--- a/mobile/rpc-foundation/goldens/matrix-worktree.hosted-base-worktree.resolveprbase-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-worktree.hosted-base-worktree.resolveprbase-1.json
@@ -3,7 +3,7 @@
"family": "worktree.hosted-base",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
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
index c79bbe5dd6d..72e04ff0a32 100644
--- 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
@@ -3,7 +3,7 @@
"family": "worktree.retired-names",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e",
diff --git a/mobile/rpc-foundation/goldens/matrix-worktree.review-link-worktree.set-1.json b/mobile/rpc-foundation/goldens/matrix-worktree.review-link-worktree.set-1.json
index f0bbd3b3330..507dcf8bd9e 100644
--- a/mobile/rpc-foundation/goldens/matrix-worktree.review-link-worktree.set-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-worktree.review-link-worktree.set-1.json
@@ -3,7 +3,7 @@
"family": "worktree.review-link",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/matrix-worktree.runtime-capabilities-status.get-1.json b/mobile/rpc-foundation/goldens/matrix-worktree.runtime-capabilities-status.get-1.json
index aea34ba1ebe..76cc9013278 100644
--- a/mobile/rpc-foundation/goldens/matrix-worktree.runtime-capabilities-status.get-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-worktree.runtime-capabilities-status.get-1.json
@@ -3,7 +3,7 @@
"family": "worktree.runtime-capabilities",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/matrix-worktree.setup-hook-trust-ui.set-1.json b/mobile/rpc-foundation/goldens/matrix-worktree.setup-hook-trust-ui.set-1.json
index 09e7a292685..8a69535a78c 100644
--- a/mobile/rpc-foundation/goldens/matrix-worktree.setup-hook-trust-ui.set-1.json
+++ b/mobile/rpc-foundation/goldens/matrix-worktree.setup-hook-trust-ui.set-1.json
@@ -3,7 +3,7 @@
"family": "worktree.setup-hook-trust",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/mobile-web-bundle-build-changed.json b/mobile/rpc-foundation/goldens/mobile-web-bundle-build-changed.json
new file mode 100644
index 00000000000..27422acce04
--- /dev/null
+++ b/mobile/rpc-foundation/goldens/mobile-web-bundle-build-changed.json
@@ -0,0 +1,210 @@
+{
+ "operation": "mobileWeb.bundle-fetch",
+ "family": "mobileWeb.bundle-fetch",
+ "namedDeltas": [],
+ "runnerVersion": 1,
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
+ "lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
+ "recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
+ "adapterSha256": "af339fef2c684d5709c6d3f279e5f0d9c33d17b6d4e5c89e501963400901b564",
+ "scenarioSha256": "cef01677c0032d012985aa1be847dbe180f1df9aadd2d13f897c23dee1066d1a",
+ "platform": "darwin",
+ "scenarioVersion": 1,
+ "projectionVersion": 2,
+ "goldenFormatVersion": 5,
+ "values": {
+ "081e772e5b64": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "invalid_argument",
+ "message": "mobile_web_bundle_build_changed"
+ },
+ "id": "frame-3",
+ "ok": false
+ }
+ }
+ },
+ "23871e324a00": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "chunkBytes": 16,
+ "manifest": {
+ "assets": [
+ {
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8",
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ },
+ {
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8",
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ ],
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "entrypoint": "index.html",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "schemaVersion": 1,
+ "totalBytes": 37
+ }
+ }
+ }
+ }
+ },
+ "2988ade7daff": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 6,
+ "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":0}}"
+ },
+ "775bfa42070b": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 2,
+ "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.manifest\",\"params\":null}"
+ },
+ "782d48c615ad": {
+ "name": "bundle-progress",
+ "ordinal": 7,
+ "value": {
+ "completedAssets": 1,
+ "receivedBytes": 11,
+ "totalAssets": 2
+ }
+ },
+ "79725d734e7d": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "refused: mobile_web_bundle_build_changed"
+ },
+ "82b2a7971876": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "invalid_argument: mobile_web_bundle_build_changed",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "a0c050b31ee2": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 5,
+ "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"assets/app.js\",\"offset\":0}}"
+ },
+ "ae7f1100e6e5": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true,
+ "result": {
+ "assetByteLength": 11,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "b3JjYS5ib290KCk=",
+ "eof": true,
+ "offset": 0,
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ }
+ }
+ }
+ }
+ },
+ "recording": {
+ "scenario": "mobile-web-bundle-build-changed",
+ "checkpoints": [
+ {
+ "id": "bundle-build-changed",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "081e772e5b64"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff"],
+ "settlements": {
+ "fetch": "82b2a7971876"
+ },
+ "state": "79725d734e7d",
+ "effects": ["782d48c615ad"]
+ }
+ }
+ ]
+ }
+}
diff --git a/mobile/rpc-foundation/goldens/mobile-web-bundle-fetch-paged.json b/mobile/rpc-foundation/goldens/mobile-web-bundle-fetch-paged.json
new file mode 100644
index 00000000000..d6f0d35e6b4
--- /dev/null
+++ b/mobile/rpc-foundation/goldens/mobile-web-bundle-fetch-paged.json
@@ -0,0 +1,276 @@
+{
+ "operation": "mobileWeb.bundle-fetch",
+ "family": "mobileWeb.bundle-fetch",
+ "namedDeltas": [],
+ "runnerVersion": 1,
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
+ "lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
+ "recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
+ "adapterSha256": "af339fef2c684d5709c6d3f279e5f0d9c33d17b6d4e5c89e501963400901b564",
+ "scenarioSha256": "cec3f6a9dd09a2527f150626d15e3040b741bbf83a823f1656e0f3449c6ed80e",
+ "platform": "darwin",
+ "scenarioVersion": 1,
+ "projectionVersion": 2,
+ "goldenFormatVersion": 5,
+ "values": {
+ "23871e324a00": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "chunkBytes": 16,
+ "manifest": {
+ "assets": [
+ {
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8",
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ },
+ {
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8",
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ ],
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "entrypoint": "index.html",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "schemaVersion": 1,
+ "totalBytes": 37
+ }
+ }
+ }
+ }
+ },
+ "2988ade7daff": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 6,
+ "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":0}}"
+ },
+ "2bfa7c81f55f": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 9,
+ "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"index.html\",\"offset\":16}}"
+ },
+ "2ff2addcb1f6": {
+ "name": "bundle-progress",
+ "ordinal": 10,
+ "value": {
+ "completedAssets": 2,
+ "receivedBytes": 37,
+ "totalAssets": 2
+ }
+ },
+ "573943fdb37d": {
+ "assets": {
+ "assets/app.js": "orca.boot()",
+ "index.html": "orca
"
+ },
+ "outcome": {
+ "assetCount": 2,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "totalBytes": 37
+ }
+ },
+ "76ca82e57d04": {
+ "name": "mobileWeb.bundle.chunk#2",
+ "ordinal": 4,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-3",
+ "ok": true,
+ "result": {
+ "assetByteLength": 26,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "PCFkb2N0eXBlIGh0bWw+PA==",
+ "eof": false,
+ "offset": 0,
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ }
+ }
+ },
+ "775bfa42070b": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 2,
+ "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.manifest\",\"params\":null}"
+ },
+ "782d48c615ad": {
+ "name": "bundle-progress",
+ "ordinal": 7,
+ "value": {
+ "completedAssets": 1,
+ "receivedBytes": 11,
+ "totalAssets": 2
+ }
+ },
+ "a0c050b31ee2": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 5,
+ "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.chunk\",\"params\":{\"buildId\":\"973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177\",\"path\":\"assets/app.js\",\"offset\":0}}"
+ },
+ "ae7f1100e6e5": {
+ "name": "mobileWeb.bundle.chunk#1",
+ "ordinal": 3,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 0,
+ "path": "assets/app.js"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-2",
+ "ok": true,
+ "result": {
+ "assetByteLength": 11,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "b3JjYS5ib290KCk=",
+ "eof": true,
+ "offset": 0,
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ }
+ }
+ }
+ },
+ "c319ae866f13": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "assetCount": 2,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "totalBytes": 37
+ }
+ },
+ "ce7abd9f93bb": {
+ "name": "mobileWeb.bundle.chunk#3",
+ "ordinal": 8,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.chunk"
+ },
+ {
+ "name": "params",
+ "value": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "offset": 16,
+ "path": "index.html"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-4",
+ "ok": true,
+ "result": {
+ "assetByteLength": 26,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "dataBase64": "cD5vcmNhPC9wPg==",
+ "eof": true,
+ "offset": 16,
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ }
+ }
+ }
+ },
+ "recording": {
+ "scenario": "mobile-web-bundle-fetch-paged",
+ "checkpoints": [
+ {
+ "id": "bundle-fetched",
+ "observation": {
+ "sender": ["23871e324a00", "ae7f1100e6e5", "76ca82e57d04", "ce7abd9f93bb"],
+ "payloads": ["775bfa42070b", "a0c050b31ee2", "2988ade7daff", "2bfa7c81f55f"],
+ "settlements": {
+ "fetch": "c319ae866f13"
+ },
+ "state": "573943fdb37d",
+ "effects": ["782d48c615ad", "2ff2addcb1f6"]
+ }
+ }
+ ]
+ }
+}
diff --git a/mobile/rpc-foundation/goldens/mobile-web-bundle-manifest-read.json b/mobile/rpc-foundation/goldens/mobile-web-bundle-manifest-read.json
new file mode 100644
index 00000000000..956a5e9c8a7
--- /dev/null
+++ b/mobile/rpc-foundation/goldens/mobile-web-bundle-manifest-read.json
@@ -0,0 +1,135 @@
+{
+ "operation": "mobileWeb.bundle-manifest",
+ "family": "mobileWeb.bundle-manifest",
+ "namedDeltas": [],
+ "runnerVersion": 1,
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
+ "lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
+ "recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
+ "adapterSha256": "af339fef2c684d5709c6d3f279e5f0d9c33d17b6d4e5c89e501963400901b564",
+ "scenarioSha256": "5e9f4e6878be3f534288a90f7ccabc9cfe4e968aa29da372a98c3064d8e4d89e",
+ "platform": "darwin",
+ "scenarioVersion": 1,
+ "projectionVersion": 2,
+ "goldenFormatVersion": 5,
+ "values": {
+ "23871e324a00": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "id": "frame-1",
+ "ok": true,
+ "result": {
+ "chunkBytes": 16,
+ "manifest": {
+ "assets": [
+ {
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8",
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ },
+ {
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8",
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ ],
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "entrypoint": "index.html",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "schemaVersion": 1,
+ "totalBytes": 37
+ }
+ }
+ }
+ }
+ },
+ "775bfa42070b": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 2,
+ "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.manifest\",\"params\":null}"
+ },
+ "9ca9b2d0fc07": {
+ "outcome": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "chunkBytes": 16,
+ "entrypoint": "index.html",
+ "paths": ["assets/app.js", "index.html"]
+ }
+ },
+ "9d87b3b6bd74": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "chunkBytes": 16,
+ "manifest": {
+ "assets": [
+ {
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8",
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d"
+ },
+ {
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8",
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e"
+ }
+ ],
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "entrypoint": "index.html",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "schemaVersion": 1,
+ "totalBytes": 37
+ }
+ }
+ }
+ },
+ "recording": {
+ "scenario": "mobile-web-bundle-manifest-read",
+ "checkpoints": [
+ {
+ "id": "manifest-read",
+ "observation": {
+ "sender": ["23871e324a00"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "read": "9d87b3b6bd74"
+ },
+ "state": "9ca9b2d0fc07",
+ "effects": []
+ }
+ }
+ ]
+ }
+}
diff --git a/mobile/rpc-foundation/goldens/mobile-web-bundle-unavailable.json b/mobile/rpc-foundation/goldens/mobile-web-bundle-unavailable.json
new file mode 100644
index 00000000000..b1401dfc86c
--- /dev/null
+++ b/mobile/rpc-foundation/goldens/mobile-web-bundle-unavailable.json
@@ -0,0 +1,90 @@
+{
+ "operation": "mobileWeb.bundle-fetch",
+ "family": "mobileWeb.bundle-fetch",
+ "namedDeltas": [],
+ "runnerVersion": 1,
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
+ "lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
+ "recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
+ "adapterSha256": "af339fef2c684d5709c6d3f279e5f0d9c33d17b6d4e5c89e501963400901b564",
+ "scenarioSha256": "7333b1c83120bcfd9bdac8888ec1528c1db9b36325509f1328a551676df219c5",
+ "platform": "darwin",
+ "scenarioVersion": 1,
+ "projectionVersion": 2,
+ "goldenFormatVersion": 5,
+ "values": {
+ "6858fdcae414": {
+ "status": "rejected",
+ "startedAt": 0,
+ "settledAt": 0,
+ "error": {
+ "category": "Error",
+ "message": "invalid_argument: mobile_web_bundle_unavailable",
+ "isRpcDeliveryUnknown": false
+ }
+ },
+ "775bfa42070b": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 2,
+ "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"mobileWeb.bundle.manifest\",\"params\":null}"
+ },
+ "8ea0c6a90560": {
+ "assets": {
+ "$rpc": "null"
+ },
+ "outcome": "refused: mobile_web_bundle_unavailable"
+ },
+ "fe8605eb5d5d": {
+ "name": "mobileWeb.bundle.manifest#1",
+ "ordinal": 1,
+ "args": [
+ {
+ "name": "method",
+ "value": "mobileWeb.bundle.manifest"
+ },
+ {
+ "name": "params",
+ "value": {
+ "$rpc": "null"
+ }
+ },
+ {
+ "name": "options",
+ "value": {
+ "$rpc": "undefined"
+ }
+ }
+ ],
+ "settlement": {
+ "status": "fulfilled",
+ "startedAt": 0,
+ "settledAt": 0,
+ "value": {
+ "error": {
+ "code": "invalid_argument",
+ "message": "mobile_web_bundle_unavailable"
+ },
+ "id": "frame-1",
+ "ok": false
+ }
+ }
+ }
+ },
+ "recording": {
+ "scenario": "mobile-web-bundle-unavailable",
+ "checkpoints": [
+ {
+ "id": "bundle-unavailable",
+ "observation": {
+ "sender": ["fe8605eb5d5d"],
+ "payloads": ["775bfa42070b"],
+ "settlements": {
+ "fetch": "6858fdcae414"
+ },
+ "state": "8ea0c6a90560",
+ "effects": []
+ }
+ }
+ ]
+ }
+}
diff --git a/mobile/rpc-foundation/goldens/native-chat-image-paste-single.json b/mobile/rpc-foundation/goldens/native-chat-image-paste-single.json
index 444671a68fd..34b7a3cde17 100644
--- a/mobile/rpc-foundation/goldens/native-chat-image-paste-single.json
+++ b/mobile/rpc-foundation/goldens/native-chat-image-paste-single.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/native-chat-image-paste-stops-on-rejection.json b/mobile/rpc-foundation/goldens/native-chat-image-paste-stops-on-rejection.json
index cbffd086a94..69848989291 100644
--- a/mobile/rpc-foundation/goldens/native-chat-image-paste-stops-on-rejection.json
+++ b/mobile/rpc-foundation/goldens/native-chat-image-paste-stops-on-rejection.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/native-chat-image-paste-trailing-image.json b/mobile/rpc-foundation/goldens/native-chat-image-paste-trailing-image.json
index 797b76573cd..c7c9110bc84 100644
--- a/mobile/rpc-foundation/goldens/native-chat-image-paste-trailing-image.json
+++ b/mobile/rpc-foundation/goldens/native-chat-image-paste-trailing-image.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/native-chat-image-paste-two-images.json b/mobile/rpc-foundation/goldens/native-chat-image-paste-two-images.json
index 42e968007b1..fad3cf9c12e 100644
--- a/mobile/rpc-foundation/goldens/native-chat-image-paste-two-images.json
+++ b/mobile/rpc-foundation/goldens/native-chat-image-paste-two-images.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/native-chat-image-upload-cancelled.json b/mobile/rpc-foundation/goldens/native-chat-image-upload-cancelled.json
index efec3633436..1265fd5ce64 100644
--- a/mobile/rpc-foundation/goldens/native-chat-image-upload-cancelled.json
+++ b/mobile/rpc-foundation/goldens/native-chat-image-upload-cancelled.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/native-chat-image-upload-second-fails.json b/mobile/rpc-foundation/goldens/native-chat-image-upload-second-fails.json
index ef7179a8681..33050390c03 100644
--- a/mobile/rpc-foundation/goldens/native-chat-image-upload-second-fails.json
+++ b/mobile/rpc-foundation/goldens/native-chat-image-upload-second-fails.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/native-chat-image-upload-single.json b/mobile/rpc-foundation/goldens/native-chat-image-upload-single.json
index e54fa99f4f2..284e04c5b1f 100644
--- a/mobile/rpc-foundation/goldens/native-chat-image-upload-single.json
+++ b/mobile/rpc-foundation/goldens/native-chat-image-upload-single.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/native-chat-image-upload-start-refused.json b/mobile/rpc-foundation/goldens/native-chat-image-upload-start-refused.json
index 51e2383d91c..3c13d7e7a46 100644
--- a/mobile/rpc-foundation/goldens/native-chat-image-upload-start-refused.json
+++ b/mobile/rpc-foundation/goldens/native-chat-image-upload-start-refused.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/native-chat-image-upload-two.json b/mobile/rpc-foundation/goldens/native-chat-image-upload-two.json
index 92d33cf4403..3e9c0116c49 100644
--- a/mobile/rpc-foundation/goldens/native-chat-image-upload-two.json
+++ b/mobile/rpc-foundation/goldens/native-chat-image-upload-two.json
@@ -3,7 +3,7 @@
"family": "nativeChat.image-upload",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c",
diff --git a/mobile/rpc-foundation/goldens/native-chat-page-earlier.json b/mobile/rpc-foundation/goldens/native-chat-page-earlier.json
index 4cd32bd4dc4..e449bf6319c 100644
--- a/mobile/rpc-foundation/goldens/native-chat-page-earlier.json
+++ b/mobile/rpc-foundation/goldens/native-chat-page-earlier.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-page",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "60ce67f66134d6385aa7fb47f2135436a7b3ce0221e3b2514bea65e06dba5518",
diff --git a/mobile/rpc-foundation/goldens/native-chat-readability-local-repo.json b/mobile/rpc-foundation/goldens/native-chat-readability-local-repo.json
index 9c5dd5bba2a..039fa9c363e 100644
--- a/mobile/rpc-foundation/goldens/native-chat-readability-local-repo.json
+++ b/mobile/rpc-foundation/goldens/native-chat-readability-local-repo.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-readability",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/native-chat-readability-refused.json b/mobile/rpc-foundation/goldens/native-chat-readability-refused.json
index cd48baf6367..87908902563 100644
--- a/mobile/rpc-foundation/goldens/native-chat-readability-refused.json
+++ b/mobile/rpc-foundation/goldens/native-chat-readability-refused.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-readability",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/native-chat-readability-remote-repo.json b/mobile/rpc-foundation/goldens/native-chat-readability-remote-repo.json
index 208face6ecf..c1fa8c47da8 100644
--- a/mobile/rpc-foundation/goldens/native-chat-readability-remote-repo.json
+++ b/mobile/rpc-foundation/goldens/native-chat-readability-remote-repo.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-readability",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/native-chat-session-option-pick-empty.json b/mobile/rpc-foundation/goldens/native-chat-session-option-pick-empty.json
index 31eb6efeea2..1d8ece2ebad 100644
--- a/mobile/rpc-foundation/goldens/native-chat-session-option-pick-empty.json
+++ b/mobile/rpc-foundation/goldens/native-chat-session-option-pick-empty.json
@@ -3,7 +3,7 @@
"family": "nativeChat.session-option-pick",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/native-chat-session-option-pick-refused.json b/mobile/rpc-foundation/goldens/native-chat-session-option-pick-refused.json
index 7919382bf7c..14f75a8fbbb 100644
--- a/mobile/rpc-foundation/goldens/native-chat-session-option-pick-refused.json
+++ b/mobile/rpc-foundation/goldens/native-chat-session-option-pick-refused.json
@@ -3,7 +3,7 @@
"family": "nativeChat.session-option-pick",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/native-chat-session-option-pick-written.json b/mobile/rpc-foundation/goldens/native-chat-session-option-pick-written.json
index 1590b889ea6..724de3fe781 100644
--- a/mobile/rpc-foundation/goldens/native-chat-session-option-pick-written.json
+++ b/mobile/rpc-foundation/goldens/native-chat-session-option-pick-written.json
@@ -3,7 +3,7 @@
"family": "nativeChat.session-option-pick",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/native-chat-stop-accepted.json b/mobile/rpc-foundation/goldens/native-chat-stop-accepted.json
index 3e794edddcc..c679056c415 100644
--- a/mobile/rpc-foundation/goldens/native-chat-stop-accepted.json
+++ b/mobile/rpc-foundation/goldens/native-chat-stop-accepted.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-stop",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/native-chat-stop-both-rejected.json b/mobile/rpc-foundation/goldens/native-chat-stop-both-rejected.json
index d178b4f7aff..bb702bed6f4 100644
--- a/mobile/rpc-foundation/goldens/native-chat-stop-both-rejected.json
+++ b/mobile/rpc-foundation/goldens/native-chat-stop-both-rejected.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-stop",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/native-chat-stop-delivery-unknown.json b/mobile/rpc-foundation/goldens/native-chat-stop-delivery-unknown.json
index eea930a68ad..666f89b5879 100644
--- a/mobile/rpc-foundation/goldens/native-chat-stop-delivery-unknown.json
+++ b/mobile/rpc-foundation/goldens/native-chat-stop-delivery-unknown.json
@@ -3,7 +3,7 @@
"family": "session.native-chat-stop",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/native-chat-write-accepted.json b/mobile/rpc-foundation/goldens/native-chat-write-accepted.json
index 965eec2bcd7..b7caeca64b2 100644
--- a/mobile/rpc-foundation/goldens/native-chat-write-accepted.json
+++ b/mobile/rpc-foundation/goldens/native-chat-write-accepted.json
@@ -3,7 +3,7 @@
"family": "nativeChat.terminal-write",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/native-chat-write-clear-line.json b/mobile/rpc-foundation/goldens/native-chat-write-clear-line.json
index 82f6be70c62..f3debdaeb2c 100644
--- a/mobile/rpc-foundation/goldens/native-chat-write-clear-line.json
+++ b/mobile/rpc-foundation/goldens/native-chat-write-clear-line.json
@@ -3,7 +3,7 @@
"family": "nativeChat.terminal-write",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/native-chat-write-delivery-unknown.json b/mobile/rpc-foundation/goldens/native-chat-write-delivery-unknown.json
index 9c509bd7690..2ee43c70bd8 100644
--- a/mobile/rpc-foundation/goldens/native-chat-write-delivery-unknown.json
+++ b/mobile/rpc-foundation/goldens/native-chat-write-delivery-unknown.json
@@ -3,7 +3,7 @@
"family": "nativeChat.terminal-write",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/native-chat-write-rejected.json b/mobile/rpc-foundation/goldens/native-chat-write-rejected.json
index 900bd952534..f16bf79f939 100644
--- a/mobile/rpc-foundation/goldens/native-chat-write-rejected.json
+++ b/mobile/rpc-foundation/goldens/native-chat-write-rejected.json
@@ -3,7 +3,7 @@
"family": "nativeChat.terminal-write",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/native-chat-write-typed-command.json b/mobile/rpc-foundation/goldens/native-chat-write-typed-command.json
index 86f6ca5debe..398a4e3206b 100644
--- a/mobile/rpc-foundation/goldens/native-chat-write-typed-command.json
+++ b/mobile/rpc-foundation/goldens/native-chat-write-typed-command.json
@@ -3,7 +3,7 @@
"family": "nativeChat.terminal-write",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008",
diff --git a/mobile/rpc-foundation/goldens/new-tab-local-agents.json b/mobile/rpc-foundation/goldens/new-tab-local-agents.json
index 1ef040d0833..7cad9cf79c3 100644
--- a/mobile/rpc-foundation/goldens/new-tab-local-agents.json
+++ b/mobile/rpc-foundation/goldens/new-tab-local-agents.json
@@ -3,7 +3,7 @@
"family": "settings.new-tab-local-agents",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/new-workspace-repositories-fulfilled.json b/mobile/rpc-foundation/goldens/new-workspace-repositories-fulfilled.json
index aabf42cb85e..77b47e280f7 100644
--- a/mobile/rpc-foundation/goldens/new-workspace-repositories-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/new-workspace-repositories-fulfilled.json
@@ -3,7 +3,7 @@
"family": "components.new-workspace-repositories",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "64c1772f0f95a3c43fbb14398a8804b2b4784f7f18874e4fd79767ae634c7faa",
diff --git a/mobile/rpc-foundation/goldens/notifications-desktop-stream-closed.json b/mobile/rpc-foundation/goldens/notifications-desktop-stream-closed.json
index 9dcc9cdd0ee..e4c4ae6304f 100644
--- a/mobile/rpc-foundation/goldens/notifications-desktop-stream-closed.json
+++ b/mobile/rpc-foundation/goldens/notifications-desktop-stream-closed.json
@@ -3,7 +3,7 @@
"family": "notifications.desktop-stream",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4",
diff --git a/mobile/rpc-foundation/goldens/notifications-desktop-stream-replayed.json b/mobile/rpc-foundation/goldens/notifications-desktop-stream-replayed.json
index 1777a97f59e..bf1f6f0c525 100644
--- a/mobile/rpc-foundation/goldens/notifications-desktop-stream-replayed.json
+++ b/mobile/rpc-foundation/goldens/notifications-desktop-stream-replayed.json
@@ -3,7 +3,7 @@
"family": "notifications.desktop-stream",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4",
diff --git a/mobile/rpc-foundation/goldens/notifications-desktop-stream.json b/mobile/rpc-foundation/goldens/notifications-desktop-stream.json
index 0371276e529..e363a8790b4 100644
--- a/mobile/rpc-foundation/goldens/notifications-desktop-stream.json
+++ b/mobile/rpc-foundation/goldens/notifications-desktop-stream.json
@@ -3,7 +3,7 @@
"family": "notifications.desktop-stream",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4",
diff --git a/mobile/rpc-foundation/goldens/notifications-display-test-accepted.json b/mobile/rpc-foundation/goldens/notifications-display-test-accepted.json
index 38d6dee8ea5..ae0a3deba66 100644
--- a/mobile/rpc-foundation/goldens/notifications-display-test-accepted.json
+++ b/mobile/rpc-foundation/goldens/notifications-display-test-accepted.json
@@ -3,7 +3,7 @@
"family": "notifications.display-test-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "12a04986290715d5db23a1eb5192c1138bb2d375d1b1dd37ba310ea89eb11566",
diff --git a/mobile/rpc-foundation/goldens/notifications-display-test-not-registered.json b/mobile/rpc-foundation/goldens/notifications-display-test-not-registered.json
index 347e627608d..b39af2d6b3f 100644
--- a/mobile/rpc-foundation/goldens/notifications-display-test-not-registered.json
+++ b/mobile/rpc-foundation/goldens/notifications-display-test-not-registered.json
@@ -3,7 +3,7 @@
"family": "notifications.display-test-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "12a04986290715d5db23a1eb5192c1138bb2d375d1b1dd37ba310ea89eb11566",
diff --git a/mobile/rpc-foundation/goldens/notifications-display-test-rate-limited.json b/mobile/rpc-foundation/goldens/notifications-display-test-rate-limited.json
index f22bf7203bc..ce2e3ad34c1 100644
--- a/mobile/rpc-foundation/goldens/notifications-display-test-rate-limited.json
+++ b/mobile/rpc-foundation/goldens/notifications-display-test-rate-limited.json
@@ -3,7 +3,7 @@
"family": "notifications.display-test-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "12a04986290715d5db23a1eb5192c1138bb2d375d1b1dd37ba310ea89eb11566",
diff --git a/mobile/rpc-foundation/goldens/notifications-display-test-unknown-reason.json b/mobile/rpc-foundation/goldens/notifications-display-test-unknown-reason.json
index b29c6619ea3..964660efa3d 100644
--- a/mobile/rpc-foundation/goldens/notifications-display-test-unknown-reason.json
+++ b/mobile/rpc-foundation/goldens/notifications-display-test-unknown-reason.json
@@ -3,7 +3,7 @@
"family": "notifications.display-test-screen",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "12a04986290715d5db23a1eb5192c1138bb2d375d1b1dd37ba310ea89eb11566",
diff --git a/mobile/rpc-foundation/goldens/notifications-push-gateway-rejected.json b/mobile/rpc-foundation/goldens/notifications-push-gateway-rejected.json
index b054aab49c3..372503d08f4 100644
--- a/mobile/rpc-foundation/goldens/notifications-push-gateway-rejected.json
+++ b/mobile/rpc-foundation/goldens/notifications-push-gateway-rejected.json
@@ -3,7 +3,7 @@
"family": "notifications.push-registration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2e3d939dc162dbc5a38d8a7207111688204a825fd70348721917b3016e1c9470",
diff --git a/mobile/rpc-foundation/goldens/notifications-push-registered.json b/mobile/rpc-foundation/goldens/notifications-push-registered.json
index d5f4fb848b0..fc9ce141ee1 100644
--- a/mobile/rpc-foundation/goldens/notifications-push-registered.json
+++ b/mobile/rpc-foundation/goldens/notifications-push-registered.json
@@ -3,7 +3,7 @@
"family": "notifications.push-registration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2e3d939dc162dbc5a38d8a7207111688204a825fd70348721917b3016e1c9470",
diff --git a/mobile/rpc-foundation/goldens/pairing-pre-profile-direct-wins-and-provisions.json b/mobile/rpc-foundation/goldens/pairing-pre-profile-direct-wins-and-provisions.json
index 767d60cd85c..719bbb2c806 100644
--- a/mobile/rpc-foundation/goldens/pairing-pre-profile-direct-wins-and-provisions.json
+++ b/mobile/rpc-foundation/goldens/pairing-pre-profile-direct-wins-and-provisions.json
@@ -3,7 +3,7 @@
"family": "pairing.pre-profile",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197",
diff --git a/mobile/rpc-foundation/goldens/pairing-pre-profile-provision-unsupported-saves-direct-host.json b/mobile/rpc-foundation/goldens/pairing-pre-profile-provision-unsupported-saves-direct-host.json
index 1118719f3cf..20fcdbcf0bb 100644
--- a/mobile/rpc-foundation/goldens/pairing-pre-profile-provision-unsupported-saves-direct-host.json
+++ b/mobile/rpc-foundation/goldens/pairing-pre-profile-provision-unsupported-saves-direct-host.json
@@ -3,7 +3,7 @@
"family": "pairing.pre-profile",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197",
diff --git a/mobile/rpc-foundation/goldens/pairing-pre-profile-times-out.json b/mobile/rpc-foundation/goldens/pairing-pre-profile-times-out.json
index c44d1ccfa25..ce47a62911a 100644
--- a/mobile/rpc-foundation/goldens/pairing-pre-profile-times-out.json
+++ b/mobile/rpc-foundation/goldens/pairing-pre-profile-times-out.json
@@ -3,7 +3,7 @@
"family": "pairing.pre-profile",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197",
diff --git a/mobile/rpc-foundation/goldens/pr-branch-identity.json b/mobile/rpc-foundation/goldens/pr-branch-identity.json
index dcf51b1f0ef..8cbe1323348 100644
--- a/mobile/rpc-foundation/goldens/pr-branch-identity.json
+++ b/mobile/rpc-foundation/goldens/pr-branch-identity.json
@@ -3,7 +3,7 @@
"family": "session.pr-branch-context",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-branch-repo-context.json b/mobile/rpc-foundation/goldens/pr-branch-repo-context.json
index 64939c7fb24..81056ec0c87 100644
--- a/mobile/rpc-foundation/goldens/pr-branch-repo-context.json
+++ b/mobile/rpc-foundation/goldens/pr-branch-repo-context.json
@@ -3,7 +3,7 @@
"family": "session.pr-branch-context",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-comment-mutation.json b/mobile/rpc-foundation/goldens/pr-comment-mutation.json
index c4f801666f1..7ae487db0c1 100644
--- a/mobile/rpc-foundation/goldens/pr-comment-mutation.json
+++ b/mobile/rpc-foundation/goldens/pr-comment-mutation.json
@@ -3,7 +3,7 @@
"family": "github.pr-comment-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-comment-resolve-unconfirmed.json b/mobile/rpc-foundation/goldens/pr-comment-resolve-unconfirmed.json
index 03bc8591739..b91b86e8c63 100644
--- a/mobile/rpc-foundation/goldens/pr-comment-resolve-unconfirmed.json
+++ b/mobile/rpc-foundation/goldens/pr-comment-resolve-unconfirmed.json
@@ -3,7 +3,7 @@
"family": "github.pr-comment-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-mutation-in-band-failure.json b/mobile/rpc-foundation/goldens/pr-mutation-in-band-failure.json
index 81998fc8939..096dbf4bad6 100644
--- a/mobile/rpc-foundation/goldens/pr-mutation-in-band-failure.json
+++ b/mobile/rpc-foundation/goldens/pr-mutation-in-band-failure.json
@@ -3,7 +3,7 @@
"family": "github.pr-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-mutation-status.json b/mobile/rpc-foundation/goldens/pr-mutation-status.json
index 6f02667da82..0eeb24aeb2c 100644
--- a/mobile/rpc-foundation/goldens/pr-mutation-status.json
+++ b/mobile/rpc-foundation/goldens/pr-mutation-status.json
@@ -3,7 +3,7 @@
"family": "github.pr-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-read-fork-routing.json b/mobile/rpc-foundation/goldens/pr-read-fork-routing.json
index dcb7df25732..b45fa26e9a6 100644
--- a/mobile/rpc-foundation/goldens/pr-read-fork-routing.json
+++ b/mobile/rpc-foundation/goldens/pr-read-fork-routing.json
@@ -3,7 +3,7 @@
"family": "github.pr-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-read-surface.json b/mobile/rpc-foundation/goldens/pr-read-surface.json
index cc681664739..43bf9c1bf2b 100644
--- a/mobile/rpc-foundation/goldens/pr-read-surface.json
+++ b/mobile/rpc-foundation/goldens/pr-read-surface.json
@@ -3,7 +3,7 @@
"family": "github.pr-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-read-upstream-error.json b/mobile/rpc-foundation/goldens/pr-read-upstream-error.json
index 4ff45e2295b..965bcc25200 100644
--- a/mobile/rpc-foundation/goldens/pr-read-upstream-error.json
+++ b/mobile/rpc-foundation/goldens/pr-read-upstream-error.json
@@ -3,7 +3,7 @@
"family": "github.pr-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-sidebar-checks-refused.json b/mobile/rpc-foundation/goldens/pr-sidebar-checks-refused.json
index 2825650bd39..e50a91fbe0c 100644
--- a/mobile/rpc-foundation/goldens/pr-sidebar-checks-refused.json
+++ b/mobile/rpc-foundation/goldens/pr-sidebar-checks-refused.json
@@ -3,7 +3,7 @@
"family": "session.pr-sidebar",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "87ffa2daea415d2682f1112025b5bd9d52404c6fc7c239180a3ad2120678ff1f",
diff --git a/mobile/rpc-foundation/goldens/pr-sidebar-load.json b/mobile/rpc-foundation/goldens/pr-sidebar-load.json
index c0bbccf2ab5..d22b3326902 100644
--- a/mobile/rpc-foundation/goldens/pr-sidebar-load.json
+++ b/mobile/rpc-foundation/goldens/pr-sidebar-load.json
@@ -3,7 +3,7 @@
"family": "session.pr-sidebar",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "87ffa2daea415d2682f1112025b5bd9d52404c6fc7c239180a3ad2120678ff1f",
diff --git a/mobile/rpc-foundation/goldens/pr-title-mutation.json b/mobile/rpc-foundation/goldens/pr-title-mutation.json
index c1c2f84ba33..26e35d30722 100644
--- a/mobile/rpc-foundation/goldens/pr-title-mutation.json
+++ b/mobile/rpc-foundation/goldens/pr-title-mutation.json
@@ -3,7 +3,7 @@
"family": "github.pr-title-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-title-unconfirmed.json b/mobile/rpc-foundation/goldens/pr-title-unconfirmed.json
index 54038386532..310b7b63410 100644
--- a/mobile/rpc-foundation/goldens/pr-title-unconfirmed.json
+++ b/mobile/rpc-foundation/goldens/pr-title-unconfirmed.json
@@ -3,7 +3,7 @@
"family": "github.pr-title-mutation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-triage-invalid-terminal.json b/mobile/rpc-foundation/goldens/pr-triage-invalid-terminal.json
index ad09b4ece8b..6cd9f8fc76b 100644
--- a/mobile/rpc-foundation/goldens/pr-triage-invalid-terminal.json
+++ b/mobile/rpc-foundation/goldens/pr-triage-invalid-terminal.json
@@ -3,7 +3,7 @@
"family": "session.pr-triage",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-triage-launch.json b/mobile/rpc-foundation/goldens/pr-triage-launch.json
index d353a66dd8b..5cf8796ee6c 100644
--- a/mobile/rpc-foundation/goldens/pr-triage-launch.json
+++ b/mobile/rpc-foundation/goldens/pr-triage-launch.json
@@ -3,7 +3,7 @@
"family": "session.pr-triage",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/pr-triage-send-locked.json b/mobile/rpc-foundation/goldens/pr-triage-send-locked.json
index 036f17e8fcf..0cd444dc8a8 100644
--- a/mobile/rpc-foundation/goldens/pr-triage-send-locked.json
+++ b/mobile/rpc-foundation/goldens/pr-triage-send-locked.json
@@ -3,7 +3,7 @@
"family": "session.pr-triage",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d",
diff --git a/mobile/rpc-foundation/goldens/probe-new-tab-both-refused.json b/mobile/rpc-foundation/goldens/probe-new-tab-both-refused.json
index 2a7aeaaacdc..82377a1aaf0 100644
--- a/mobile/rpc-foundation/goldens/probe-new-tab-both-refused.json
+++ b/mobile/rpc-foundation/goldens/probe-new-tab-both-refused.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/probe-new-tab-null-sibling-refused.json b/mobile/rpc-foundation/goldens/probe-new-tab-null-sibling-refused.json
index 66cfc6eb89f..46a5f4a8c13 100644
--- a/mobile/rpc-foundation/goldens/probe-new-tab-null-sibling-refused.json
+++ b/mobile/rpc-foundation/goldens/probe-new-tab-null-sibling-refused.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/probe-new-tab-refused-sibling-rejects.json b/mobile/rpc-foundation/goldens/probe-new-tab-refused-sibling-rejects.json
index 65a6d3ed0b8..738a0c210b8 100644
--- a/mobile/rpc-foundation/goldens/probe-new-tab-refused-sibling-rejects.json
+++ b/mobile/rpc-foundation/goldens/probe-new-tab-refused-sibling-rejects.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/probe-new-tab-rejects-sibling-refused.json b/mobile/rpc-foundation/goldens/probe-new-tab-rejects-sibling-refused.json
index 6b9bf370e48..736ad95562a 100644
--- a/mobile/rpc-foundation/goldens/probe-new-tab-rejects-sibling-refused.json
+++ b/mobile/rpc-foundation/goldens/probe-new-tab-rejects-sibling-refused.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/push-dismissal-tray-reconciled.json b/mobile/rpc-foundation/goldens/push-dismissal-tray-reconciled.json
index 72190de61bd..808aacb3831 100644
--- a/mobile/rpc-foundation/goldens/push-dismissal-tray-reconciled.json
+++ b/mobile/rpc-foundation/goldens/push-dismissal-tray-reconciled.json
@@ -3,7 +3,7 @@
"family": "notifications.push-dismissal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "595a3eb2994d0596b9fcd0707b175b4e978625053dfbc5c541b0350c0cbfb524",
diff --git a/mobile/rpc-foundation/goldens/quick-commands-load-refused.json b/mobile/rpc-foundation/goldens/quick-commands-load-refused.json
index f11395b82d0..d3450316af3 100644
--- a/mobile/rpc-foundation/goldens/quick-commands-load-refused.json
+++ b/mobile/rpc-foundation/goldens/quick-commands-load-refused.json
@@ -3,7 +3,7 @@
"family": "settings.quick-commands",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/quick-commands-loaded-and-saved.json b/mobile/rpc-foundation/goldens/quick-commands-loaded-and-saved.json
index 63b48f8b515..37889fad0dd 100644
--- a/mobile/rpc-foundation/goldens/quick-commands-loaded-and-saved.json
+++ b/mobile/rpc-foundation/goldens/quick-commands-loaded-and-saved.json
@@ -3,7 +3,7 @@
"family": "settings.quick-commands",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/quick-commands-save-refused-rolls-back.json b/mobile/rpc-foundation/goldens/quick-commands-save-refused-rolls-back.json
index 0f8c1821178..bb270dfdf4f 100644
--- a/mobile/rpc-foundation/goldens/quick-commands-save-refused-rolls-back.json
+++ b/mobile/rpc-foundation/goldens/quick-commands-save-refused-rolls-back.json
@@ -3,7 +3,7 @@
"family": "settings.quick-commands",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/relay-direct-upgrade-commits.json b/mobile/rpc-foundation/goldens/relay-direct-upgrade-commits.json
index 4f77f8cbb5e..e5f09bb3c85 100644
--- a/mobile/rpc-foundation/goldens/relay-direct-upgrade-commits.json
+++ b/mobile/rpc-foundation/goldens/relay-direct-upgrade-commits.json
@@ -3,7 +3,7 @@
"family": "relay.direct-upgrade",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2",
diff --git a/mobile/rpc-foundation/goldens/relay-direct-upgrade-unsupported-host-declines.json b/mobile/rpc-foundation/goldens/relay-direct-upgrade-unsupported-host-declines.json
index 2e73220748d..22805bddef6 100644
--- a/mobile/rpc-foundation/goldens/relay-direct-upgrade-unsupported-host-declines.json
+++ b/mobile/rpc-foundation/goldens/relay-direct-upgrade-unsupported-host-declines.json
@@ -3,7 +3,7 @@
"family": "relay.direct-upgrade",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2",
diff --git a/mobile/rpc-foundation/goldens/relay-pairing-recovery-invite-authorizes.json b/mobile/rpc-foundation/goldens/relay-pairing-recovery-invite-authorizes.json
index 2cc867acd1d..388d1e5a313 100644
--- a/mobile/rpc-foundation/goldens/relay-pairing-recovery-invite-authorizes.json
+++ b/mobile/rpc-foundation/goldens/relay-pairing-recovery-invite-authorizes.json
@@ -3,7 +3,7 @@
"family": "relay.pairing-recovery",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197",
diff --git a/mobile/rpc-foundation/goldens/relay-pairing-recovery-resume-committed.json b/mobile/rpc-foundation/goldens/relay-pairing-recovery-resume-committed.json
index 83269b855a5..003fd578314 100644
--- a/mobile/rpc-foundation/goldens/relay-pairing-recovery-resume-committed.json
+++ b/mobile/rpc-foundation/goldens/relay-pairing-recovery-resume-committed.json
@@ -3,7 +3,7 @@
"family": "relay.pairing-recovery",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197",
diff --git a/mobile/rpc-foundation/goldens/relay-rotation-installs-and-commits.json b/mobile/rpc-foundation/goldens/relay-rotation-installs-and-commits.json
index 38ead4f641f..677042deaef 100644
--- a/mobile/rpc-foundation/goldens/relay-rotation-installs-and-commits.json
+++ b/mobile/rpc-foundation/goldens/relay-rotation-installs-and-commits.json
@@ -3,7 +3,7 @@
"family": "relay.credential-rotation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2",
diff --git a/mobile/rpc-foundation/goldens/relay-rotation-resumes-committed-pending.json b/mobile/rpc-foundation/goldens/relay-rotation-resumes-committed-pending.json
index a18c839256a..5d3f174cd90 100644
--- a/mobile/rpc-foundation/goldens/relay-rotation-resumes-committed-pending.json
+++ b/mobile/rpc-foundation/goldens/relay-rotation-resumes-committed-pending.json
@@ -3,7 +3,7 @@
"family": "relay.credential-rotation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2",
diff --git a/mobile/rpc-foundation/goldens/review-branch-diff-shapes.json b/mobile/rpc-foundation/goldens/review-branch-diff-shapes.json
index 96118a231d8..79f78d328b6 100644
--- a/mobile/rpc-foundation/goldens/review-branch-diff-shapes.json
+++ b/mobile/rpc-foundation/goldens/review-branch-diff-shapes.json
@@ -3,7 +3,7 @@
"family": "session.review-branch-diff",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/review-create-terminal-refused.json b/mobile/rpc-foundation/goldens/review-create-terminal-refused.json
index b15f5ca4b18..158364c10f8 100644
--- a/mobile/rpc-foundation/goldens/review-create-terminal-refused.json
+++ b/mobile/rpc-foundation/goldens/review-create-terminal-refused.json
@@ -3,7 +3,7 @@
"family": "session.diff-review-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/review-file-diff-shapes.json b/mobile/rpc-foundation/goldens/review-file-diff-shapes.json
index ccf041d5824..93fa7bd8af2 100644
--- a/mobile/rpc-foundation/goldens/review-file-diff-shapes.json
+++ b/mobile/rpc-foundation/goldens/review-file-diff-shapes.json
@@ -3,7 +3,7 @@
"family": "session.review-file-diff",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2",
diff --git a/mobile/rpc-foundation/goldens/review-git-mutations-run.json b/mobile/rpc-foundation/goldens/review-git-mutations-run.json
index 8e307ffd1e3..b7d7028bc70 100644
--- a/mobile/rpc-foundation/goldens/review-git-mutations-run.json
+++ b/mobile/rpc-foundation/goldens/review-git-mutations-run.json
@@ -3,7 +3,7 @@
"family": "session.review-git-mutations",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/review-mark-reviewed-persists.json b/mobile/rpc-foundation/goldens/review-mark-reviewed-persists.json
index fa3c53fec13..512093321d8 100644
--- a/mobile/rpc-foundation/goldens/review-mark-reviewed-persists.json
+++ b/mobile/rpc-foundation/goldens/review-mark-reviewed-persists.json
@@ -3,7 +3,7 @@
"family": "session.diff-review-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/review-mark-reviewed-rolls-back.json b/mobile/rpc-foundation/goldens/review-mark-reviewed-rolls-back.json
index 461b89b9e62..515a7cc72b4 100644
--- a/mobile/rpc-foundation/goldens/review-mark-reviewed-rolls-back.json
+++ b/mobile/rpc-foundation/goldens/review-mark-reviewed-rolls-back.json
@@ -3,7 +3,7 @@
"family": "session.diff-review-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/review-open-in-session.json b/mobile/rpc-foundation/goldens/review-open-in-session.json
index 5a9cce71905..1e760d2300c 100644
--- a/mobile/rpc-foundation/goldens/review-open-in-session.json
+++ b/mobile/rpc-foundation/goldens/review-open-in-session.json
@@ -3,7 +3,7 @@
"family": "session.diff-review-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/review-send-notes-heals-stale-input.json b/mobile/rpc-foundation/goldens/review-send-notes-heals-stale-input.json
index 385bb1f436d..d0f820f0bd6 100644
--- a/mobile/rpc-foundation/goldens/review-send-notes-heals-stale-input.json
+++ b/mobile/rpc-foundation/goldens/review-send-notes-heals-stale-input.json
@@ -3,7 +3,7 @@
"family": "session.diff-review-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/review-send-sheet-lists-terminals.json b/mobile/rpc-foundation/goldens/review-send-sheet-lists-terminals.json
index 1d16f9524be..de968c3a13b 100644
--- a/mobile/rpc-foundation/goldens/review-send-sheet-lists-terminals.json
+++ b/mobile/rpc-foundation/goldens/review-send-sheet-lists-terminals.json
@@ -3,7 +3,7 @@
"family": "session.review-send-sheet",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/review-stage-file.json b/mobile/rpc-foundation/goldens/review-stage-file.json
index cdcc87b0e74..74868cca6f0 100644
--- a/mobile/rpc-foundation/goldens/review-stage-file.json
+++ b/mobile/rpc-foundation/goldens/review-stage-file.json
@@ -3,7 +3,7 @@
"family": "session.diff-review-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/review-stage-refused.json b/mobile/rpc-foundation/goldens/review-stage-refused.json
index 81e0b015ef1..a8680fcaf8f 100644
--- a/mobile/rpc-foundation/goldens/review-stage-refused.json
+++ b/mobile/rpc-foundation/goldens/review-stage-refused.json
@@ -3,7 +3,7 @@
"family": "session.diff-review-actions",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "2d72b8e68a66a906394167beb8c78f1c0521ca1e731976fd26963ec3bfa9cca4",
diff --git a/mobile/rpc-foundation/goldens/sc-base-ref-default.json b/mobile/rpc-foundation/goldens/sc-base-ref-default.json
index f4da33147c2..36189b62622 100644
--- a/mobile/rpc-foundation/goldens/sc-base-ref-default.json
+++ b/mobile/rpc-foundation/goldens/sc-base-ref-default.json
@@ -3,7 +3,7 @@
"family": "git.base-ref-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-base-ref-repo-fallback.json b/mobile/rpc-foundation/goldens/sc-base-ref-repo-fallback.json
index 573f545ccac..72ef300b85d 100644
--- a/mobile/rpc-foundation/goldens/sc-base-ref-repo-fallback.json
+++ b/mobile/rpc-foundation/goldens/sc-base-ref-repo-fallback.json
@@ -3,7 +3,7 @@
"family": "git.base-ref-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-base-ref-unavailable.json b/mobile/rpc-foundation/goldens/sc-base-ref-unavailable.json
index a2e6da4fbae..b9f121b5e68 100644
--- a/mobile/rpc-foundation/goldens/sc-base-ref-unavailable.json
+++ b/mobile/rpc-foundation/goldens/sc-base-ref-unavailable.json
@@ -3,7 +3,7 @@
"family": "git.base-ref-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-base-ref-worktree-hit.json b/mobile/rpc-foundation/goldens/sc-base-ref-worktree-hit.json
index edebf722c35..907eb6e804b 100644
--- a/mobile/rpc-foundation/goldens/sc-base-ref-worktree-hit.json
+++ b/mobile/rpc-foundation/goldens/sc-base-ref-worktree-hit.json
@@ -3,7 +3,7 @@
"family": "git.base-ref-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-branch-diff-previewed.json b/mobile/rpc-foundation/goldens/sc-branch-diff-previewed.json
index de497221ca0..dcdbd7dba6e 100644
--- a/mobile/rpc-foundation/goldens/sc-branch-diff-previewed.json
+++ b/mobile/rpc-foundation/goldens/sc-branch-diff-previewed.json
@@ -3,7 +3,7 @@
"family": "git.branch-diff-preview",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "48ccada93f208a24160483e98ee94a771ab6d63222f29ac4bbd6979157f98333",
diff --git a/mobile/rpc-foundation/goldens/sc-changes-loaded.json b/mobile/rpc-foundation/goldens/sc-changes-loaded.json
index 533dc7323d3..66c03a1ce52 100644
--- a/mobile/rpc-foundation/goldens/sc-changes-loaded.json
+++ b/mobile/rpc-foundation/goldens/sc-changes-loaded.json
@@ -3,7 +3,7 @@
"family": "git.changes-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "48ccada93f208a24160483e98ee94a771ab6d63222f29ac4bbd6979157f98333",
diff --git a/mobile/rpc-foundation/goldens/sc-commit-message-cancel-rejected.json b/mobile/rpc-foundation/goldens/sc-commit-message-cancel-rejected.json
index 577c683ba99..c94829d8039 100644
--- a/mobile/rpc-foundation/goldens/sc-commit-message-cancel-rejected.json
+++ b/mobile/rpc-foundation/goldens/sc-commit-message-cancel-rejected.json
@@ -3,7 +3,7 @@
"family": "git.commit-message-ai",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-commit-message-canceled.json b/mobile/rpc-foundation/goldens/sc-commit-message-canceled.json
index 81b3651bfdd..5c26f36f6b9 100644
--- a/mobile/rpc-foundation/goldens/sc-commit-message-canceled.json
+++ b/mobile/rpc-foundation/goldens/sc-commit-message-canceled.json
@@ -3,7 +3,7 @@
"family": "git.commit-message-ai",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-commit-message-generated.json b/mobile/rpc-foundation/goldens/sc-commit-message-generated.json
index 56b69464f9e..2a472aec29a 100644
--- a/mobile/rpc-foundation/goldens/sc-commit-message-generated.json
+++ b/mobile/rpc-foundation/goldens/sc-commit-message-generated.json
@@ -3,7 +3,7 @@
"family": "git.commit-message-ai",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-create-existing-review.json b/mobile/rpc-foundation/goldens/sc-create-existing-review.json
index 3f27c0436ec..01d6ffae0c3 100644
--- a/mobile/rpc-foundation/goldens/sc-create-existing-review.json
+++ b/mobile/rpc-foundation/goldens/sc-create-existing-review.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-create-intent-stage-commit-push-create.json b/mobile/rpc-foundation/goldens/sc-create-intent-stage-commit-push-create.json
index e945cab4af0..e9f44f57bfd 100644
--- a/mobile/rpc-foundation/goldens/sc-create-intent-stage-commit-push-create.json
+++ b/mobile/rpc-foundation/goldens/sc-create-intent-stage-commit-push-create.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-create-intent-unlisted-provider.json b/mobile/rpc-foundation/goldens/sc-create-intent-unlisted-provider.json
index 704ac01a133..200c0c900fa 100644
--- a/mobile/rpc-foundation/goldens/sc-create-intent-unlisted-provider.json
+++ b/mobile/rpc-foundation/goldens/sc-create-intent-unlisted-provider.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-intent",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-create-link-failure-is-non-fatal.json b/mobile/rpc-foundation/goldens/sc-create-link-failure-is-non-fatal.json
index f7d0300a1f7..64205c7cf8a 100644
--- a/mobile/rpc-foundation/goldens/sc-create-link-failure-is-non-fatal.json
+++ b/mobile/rpc-foundation/goldens/sc-create-link-failure-is-non-fatal.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-create-pushes-then-creates.json b/mobile/rpc-foundation/goldens/sc-create-pushes-then-creates.json
index f7d8e80e8be..73ce0ca2035 100644
--- a/mobile/rpc-foundation/goldens/sc-create-pushes-then-creates.json
+++ b/mobile/rpc-foundation/goldens/sc-create-pushes-then-creates.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-create-refused-empty-message.json b/mobile/rpc-foundation/goldens/sc-create-refused-empty-message.json
index b957d3a2c1d..9f8a45e5e04 100644
--- a/mobile/rpc-foundation/goldens/sc-create-refused-empty-message.json
+++ b/mobile/rpc-foundation/goldens/sc-create-refused-empty-message.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-create-rejected-empty-message.json b/mobile/rpc-foundation/goldens/sc-create-rejected-empty-message.json
index 6a6680c58d1..c847b221df3 100644
--- a/mobile/rpc-foundation/goldens/sc-create-rejected-empty-message.json
+++ b/mobile/rpc-foundation/goldens/sc-create-rejected-empty-message.json
@@ -3,7 +3,7 @@
"family": "hostedReview.create-chain",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-eligibility-fetched.json b/mobile/rpc-foundation/goldens/sc-eligibility-fetched.json
index fad0224e499..d6a9f4bc894 100644
--- a/mobile/rpc-foundation/goldens/sc-eligibility-fetched.json
+++ b/mobile/rpc-foundation/goldens/sc-eligibility-fetched.json
@@ -3,7 +3,7 @@
"family": "hostedReview.eligibility",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-history-commit-files.json b/mobile/rpc-foundation/goldens/sc-history-commit-files.json
index 3383685d6d9..397c405c07e 100644
--- a/mobile/rpc-foundation/goldens/sc-history-commit-files.json
+++ b/mobile/rpc-foundation/goldens/sc-history-commit-files.json
@@ -3,7 +3,7 @@
"family": "git.history-commit-files",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "48ccada93f208a24160483e98ee94a771ab6d63222f29ac4bbd6979157f98333",
diff --git a/mobile/rpc-foundation/goldens/sc-history-loaded.json b/mobile/rpc-foundation/goldens/sc-history-loaded.json
index 55a6c262a32..e918b6aeadc 100644
--- a/mobile/rpc-foundation/goldens/sc-history-loaded.json
+++ b/mobile/rpc-foundation/goldens/sc-history-loaded.json
@@ -3,7 +3,7 @@
"family": "git.history-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-pr-link-hosted-review.json b/mobile/rpc-foundation/goldens/sc-pr-link-hosted-review.json
index 51102f75ca5..221039ca4ba 100644
--- a/mobile/rpc-foundation/goldens/sc-pr-link-hosted-review.json
+++ b/mobile/rpc-foundation/goldens/sc-pr-link-hosted-review.json
@@ -3,7 +3,7 @@
"family": "worktree.review-link",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-pr-link-read.json b/mobile/rpc-foundation/goldens/sc-pr-link-read.json
index 22302197454..0621f4938b9 100644
--- a/mobile/rpc-foundation/goldens/sc-pr-link-read.json
+++ b/mobile/rpc-foundation/goldens/sc-pr-link-read.json
@@ -3,7 +3,7 @@
"family": "worktree.review-link",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-pr-link-set.json b/mobile/rpc-foundation/goldens/sc-pr-link-set.json
index 68f0f34ec38..311cccfa9c2 100644
--- a/mobile/rpc-foundation/goldens/sc-pr-link-set.json
+++ b/mobile/rpc-foundation/goldens/sc-pr-link-set.json
@@ -3,7 +3,7 @@
"family": "worktree.review-link",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-refusal.json b/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-refusal.json
index 20ded6677a4..772a182ba82 100644
--- a/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-refusal.json
+++ b/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-refusal.json
@@ -3,7 +3,7 @@
"family": "hostedReview.eligibility",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-rejection.json b/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-rejection.json
index 2ab275eb433..48b992d2d19 100644
--- a/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-rejection.json
+++ b/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-rejection.json
@@ -3,7 +3,7 @@
"family": "hostedReview.eligibility",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-prerequisite-force-with-lease.json b/mobile/rpc-foundation/goldens/sc-prerequisite-force-with-lease.json
index 5954f75ebf2..8a04952f9bf 100644
--- a/mobile/rpc-foundation/goldens/sc-prerequisite-force-with-lease.json
+++ b/mobile/rpc-foundation/goldens/sc-prerequisite-force-with-lease.json
@@ -3,7 +3,7 @@
"family": "git.remote-prerequisite",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-prerequisite-publish.json b/mobile/rpc-foundation/goldens/sc-prerequisite-publish.json
index fffe393ba23..8907e3e81c2 100644
--- a/mobile/rpc-foundation/goldens/sc-prerequisite-publish.json
+++ b/mobile/rpc-foundation/goldens/sc-prerequisite-publish.json
@@ -3,7 +3,7 @@
"family": "git.remote-prerequisite",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-prerequisite-push.json b/mobile/rpc-foundation/goldens/sc-prerequisite-push.json
index e014c9f38ad..ec9d9073448 100644
--- a/mobile/rpc-foundation/goldens/sc-prerequisite-push.json
+++ b/mobile/rpc-foundation/goldens/sc-prerequisite-push.json
@@ -3,7 +3,7 @@
"family": "git.remote-prerequisite",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-prerequisite-skipped.json b/mobile/rpc-foundation/goldens/sc-prerequisite-skipped.json
index adf34d160e5..6a11d6bfdf6 100644
--- a/mobile/rpc-foundation/goldens/sc-prerequisite-skipped.json
+++ b/mobile/rpc-foundation/goldens/sc-prerequisite-skipped.json
@@ -3,7 +3,7 @@
"family": "git.remote-prerequisite",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-reveal-first-poll.json b/mobile/rpc-foundation/goldens/sc-reveal-first-poll.json
index 23c77605704..1a5b3349f6f 100644
--- a/mobile/rpc-foundation/goldens/sc-reveal-first-poll.json
+++ b/mobile/rpc-foundation/goldens/sc-reveal-first-poll.json
@@ -3,7 +3,7 @@
"family": "session.tab-reveal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-reveal-timeout.json b/mobile/rpc-foundation/goldens/sc-reveal-timeout.json
index cda536a1320..47816ddc2a5 100644
--- a/mobile/rpc-foundation/goldens/sc-reveal-timeout.json
+++ b/mobile/rpc-foundation/goldens/sc-reveal-timeout.json
@@ -3,7 +3,7 @@
"family": "session.tab-reveal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b",
diff --git a/mobile/rpc-foundation/goldens/sc-review-commit-inner-failure.json b/mobile/rpc-foundation/goldens/sc-review-commit-inner-failure.json
index 0a4707a76ac..dcb8cd11b55 100644
--- a/mobile/rpc-foundation/goldens/sc-review-commit-inner-failure.json
+++ b/mobile/rpc-foundation/goldens/sc-review-commit-inner-failure.json
@@ -3,7 +3,7 @@
"family": "git.review-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-review-commit-refused-empty-message.json b/mobile/rpc-foundation/goldens/sc-review-commit-refused-empty-message.json
index 12b86567975..7d14be2af8e 100644
--- a/mobile/rpc-foundation/goldens/sc-review-commit-refused-empty-message.json
+++ b/mobile/rpc-foundation/goldens/sc-review-commit-refused-empty-message.json
@@ -3,7 +3,7 @@
"family": "git.review-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-review-commit-rejected.json b/mobile/rpc-foundation/goldens/sc-review-commit-rejected.json
index 9d83f1c8e9f..036416078dc 100644
--- a/mobile/rpc-foundation/goldens/sc-review-commit-rejected.json
+++ b/mobile/rpc-foundation/goldens/sc-review-commit-rejected.json
@@ -3,7 +3,7 @@
"family": "git.review-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-review-commit.json b/mobile/rpc-foundation/goldens/sc-review-commit.json
index 9629b49e617..9e0a3d40baf 100644
--- a/mobile/rpc-foundation/goldens/sc-review-commit.json
+++ b/mobile/rpc-foundation/goldens/sc-review-commit.json
@@ -3,7 +3,7 @@
"family": "git.review-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-review-status-entries-not-array.json b/mobile/rpc-foundation/goldens/sc-review-status-entries-not-array.json
index 047d9cf7293..c465d93beff 100644
--- a/mobile/rpc-foundation/goldens/sc-review-status-entries-not-array.json
+++ b/mobile/rpc-foundation/goldens/sc-review-status-entries-not-array.json
@@ -3,7 +3,7 @@
"family": "git.review-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/sc-review-status-normalized.json b/mobile/rpc-foundation/goldens/sc-review-status-normalized.json
index 23da3a48935..b2a2f9bac19 100644
--- a/mobile/rpc-foundation/goldens/sc-review-status-normalized.json
+++ b/mobile/rpc-foundation/goldens/sc-review-status-normalized.json
@@ -3,7 +3,7 @@
"family": "git.review-preparation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f",
diff --git a/mobile/rpc-foundation/goldens/schedules-b3.json b/mobile/rpc-foundation/goldens/schedules-b3.json
index 8568e3286db..c89136c1efc 100644
--- a/mobile/rpc-foundation/goldens/schedules-b3.json
+++ b/mobile/rpc-foundation/goldens/schedules-b3.json
@@ -3,7 +3,7 @@
"family": "linear-detail-barrier",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab",
diff --git a/mobile/rpc-foundation/goldens/schedules-settings-home-providers-fulfilled.json b/mobile/rpc-foundation/goldens/schedules-settings-home-providers-fulfilled.json
index 6257be6ebce..b43ec58c4be 100644
--- a/mobile/rpc-foundation/goldens/schedules-settings-home-providers-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/schedules-settings-home-providers-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/schedules-settings-new-tab-ssh.json b/mobile/rpc-foundation/goldens/schedules-settings-new-tab-ssh.json
index fe478fb7b68..eaa46f1e337 100644
--- a/mobile/rpc-foundation/goldens/schedules-settings-new-tab-ssh.json
+++ b/mobile/rpc-foundation/goldens/schedules-settings-new-tab-ssh.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/schedules-settings-repo-metadata-fulfilled.json b/mobile/rpc-foundation/goldens/schedules-settings-repo-metadata-fulfilled.json
index 8a9385d95c5..f92b11bdccc 100644
--- a/mobile/rpc-foundation/goldens/schedules-settings-repo-metadata-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/schedules-settings-repo-metadata-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/schedules-settings-resume-metadata-fulfilled.json b/mobile/rpc-foundation/goldens/schedules-settings-resume-metadata-fulfilled.json
index 902a4feaeee..1d70e1b046c 100644
--- a/mobile/rpc-foundation/goldens/schedules-settings-resume-metadata-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/schedules-settings-resume-metadata-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/schedules-settings-task-hydration-fulfilled.json b/mobile/rpc-foundation/goldens/schedules-settings-task-hydration-fulfilled.json
index 738e12719a2..d84fc521691 100644
--- a/mobile/rpc-foundation/goldens/schedules-settings-task-hydration-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/schedules-settings-task-hydration-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/schedules-settings-workspace-context-fulfilled.json b/mobile/rpc-foundation/goldens/schedules-settings-workspace-context-fulfilled.json
index eb89f74449f..50df5a1664f 100644
--- a/mobile/rpc-foundation/goldens/schedules-settings-workspace-context-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/schedules-settings-workspace-context-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-context",
"namedDeltas": ["new-workspace-runtime-context-null-results-degrade-to-absent"],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/session-browser-tab-created.json b/mobile/rpc-foundation/goldens/session-browser-tab-created.json
index 9baae2fb90d..a98478db1f1 100644
--- a/mobile/rpc-foundation/goldens/session-browser-tab-created.json
+++ b/mobile/rpc-foundation/goldens/session-browser-tab-created.json
@@ -3,7 +3,7 @@
"family": "session.browser-tab-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-create-browser-refused.json b/mobile/rpc-foundation/goldens/session-create-browser-refused.json
index c96e109c214..a3a448cd82c 100644
--- a/mobile/rpc-foundation/goldens/session-create-browser-refused.json
+++ b/mobile/rpc-foundation/goldens/session-create-browser-refused.json
@@ -3,7 +3,7 @@
"family": "session.content-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-create-browser-tab.json b/mobile/rpc-foundation/goldens/session-create-browser-tab.json
index bc5e45cb68c..04ecd4dc1b4 100644
--- a/mobile/rpc-foundation/goldens/session-create-browser-tab.json
+++ b/mobile/rpc-foundation/goldens/session-create-browser-tab.json
@@ -3,7 +3,7 @@
"family": "session.content-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-create-markdown-name-collision.json b/mobile/rpc-foundation/goldens/session-create-markdown-name-collision.json
index e9110433925..db01505f56f 100644
--- a/mobile/rpc-foundation/goldens/session-create-markdown-name-collision.json
+++ b/mobile/rpc-foundation/goldens/session-create-markdown-name-collision.json
@@ -3,7 +3,7 @@
"family": "session.content-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-create-markdown-note.json b/mobile/rpc-foundation/goldens/session-create-markdown-note.json
index 539dacb7b29..897c5db1e00 100644
--- a/mobile/rpc-foundation/goldens/session-create-markdown-note.json
+++ b/mobile/rpc-foundation/goldens/session-create-markdown-note.json
@@ -3,7 +3,7 @@
"family": "session.content-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-create-terminal-ignores-a-second-create-in-flight.json b/mobile/rpc-foundation/goldens/session-create-terminal-ignores-a-second-create-in-flight.json
index 4b5a58b5396..19b65dfcb13 100644
--- a/mobile/rpc-foundation/goldens/session-create-terminal-ignores-a-second-create-in-flight.json
+++ b/mobile/rpc-foundation/goldens/session-create-terminal-ignores-a-second-create-in-flight.json
@@ -3,7 +3,7 @@
"family": "session.create-terminal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fa7d9fd6428e89282f08e04fefba4289000eb3aed1462489a2f11efed374382c",
diff --git a/mobile/rpc-foundation/goldens/session-create-terminal-launches-an-agent-quick-command.json b/mobile/rpc-foundation/goldens/session-create-terminal-launches-an-agent-quick-command.json
index a18ed3ff9cc..859c60a4576 100644
--- a/mobile/rpc-foundation/goldens/session-create-terminal-launches-an-agent-quick-command.json
+++ b/mobile/rpc-foundation/goldens/session-create-terminal-launches-an-agent-quick-command.json
@@ -3,7 +3,7 @@
"family": "session.create-terminal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fa7d9fd6428e89282f08e04fefba4289000eb3aed1462489a2f11efed374382c",
diff --git a/mobile/rpc-foundation/goldens/session-create-terminal-refused.json b/mobile/rpc-foundation/goldens/session-create-terminal-refused.json
index 8fdd4525efc..c8c87e93e2e 100644
--- a/mobile/rpc-foundation/goldens/session-create-terminal-refused.json
+++ b/mobile/rpc-foundation/goldens/session-create-terminal-refused.json
@@ -3,7 +3,7 @@
"family": "session.create-terminal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fa7d9fd6428e89282f08e04fefba4289000eb3aed1462489a2f11efed374382c",
diff --git a/mobile/rpc-foundation/goldens/session-create-terminal-replaces-active.json b/mobile/rpc-foundation/goldens/session-create-terminal-replaces-active.json
index 2e102650757..abc4f0ab3c0 100644
--- a/mobile/rpc-foundation/goldens/session-create-terminal-replaces-active.json
+++ b/mobile/rpc-foundation/goldens/session-create-terminal-replaces-active.json
@@ -3,7 +3,7 @@
"family": "session.create-terminal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fa7d9fd6428e89282f08e04fefba4289000eb3aed1462489a2f11efed374382c",
diff --git a/mobile/rpc-foundation/goldens/session-create-terminal-runs-a-quick-command.json b/mobile/rpc-foundation/goldens/session-create-terminal-runs-a-quick-command.json
index 32b34ec7df7..43bda3f3618 100644
--- a/mobile/rpc-foundation/goldens/session-create-terminal-runs-a-quick-command.json
+++ b/mobile/rpc-foundation/goldens/session-create-terminal-runs-a-quick-command.json
@@ -3,7 +3,7 @@
"family": "session.create-terminal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fa7d9fd6428e89282f08e04fefba4289000eb3aed1462489a2f11efed374382c",
diff --git a/mobile/rpc-foundation/goldens/session-create-terminal-with-prompt.json b/mobile/rpc-foundation/goldens/session-create-terminal-with-prompt.json
index 5d3749fce4a..78febc06d30 100644
--- a/mobile/rpc-foundation/goldens/session-create-terminal-with-prompt.json
+++ b/mobile/rpc-foundation/goldens/session-create-terminal-with-prompt.json
@@ -3,7 +3,7 @@
"family": "session.create-terminal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fa7d9fd6428e89282f08e04fefba4289000eb3aed1462489a2f11efed374382c",
diff --git a/mobile/rpc-foundation/goldens/session-create-terminal-without-active-tab.json b/mobile/rpc-foundation/goldens/session-create-terminal-without-active-tab.json
index d2044ee3466..8b94f47d641 100644
--- a/mobile/rpc-foundation/goldens/session-create-terminal-without-active-tab.json
+++ b/mobile/rpc-foundation/goldens/session-create-terminal-without-active-tab.json
@@ -3,7 +3,7 @@
"family": "session.create-terminal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fa7d9fd6428e89282f08e04fefba4289000eb3aed1462489a2f11efed374382c",
diff --git a/mobile/rpc-foundation/goldens/session-create-terminal-without-handle.json b/mobile/rpc-foundation/goldens/session-create-terminal-without-handle.json
index a63804fb41f..b02219910d5 100644
--- a/mobile/rpc-foundation/goldens/session-create-terminal-without-handle.json
+++ b/mobile/rpc-foundation/goldens/session-create-terminal-without-handle.json
@@ -3,7 +3,7 @@
"family": "session.create-terminal",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fa7d9fd6428e89282f08e04fefba4289000eb3aed1462489a2f11efed374382c",
diff --git a/mobile/rpc-foundation/goldens/session-diff-notes-load-refused.json b/mobile/rpc-foundation/goldens/session-diff-notes-load-refused.json
index ba5f5442d25..fdb74097444 100644
--- a/mobile/rpc-foundation/goldens/session-diff-notes-load-refused.json
+++ b/mobile/rpc-foundation/goldens/session-diff-notes-load-refused.json
@@ -3,7 +3,7 @@
"family": "session.diff-notes",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/session-diff-notes-loaded.json b/mobile/rpc-foundation/goldens/session-diff-notes-loaded.json
index 6571b445354..7887cdac1a8 100644
--- a/mobile/rpc-foundation/goldens/session-diff-notes-loaded.json
+++ b/mobile/rpc-foundation/goldens/session-diff-notes-loaded.json
@@ -3,7 +3,7 @@
"family": "session.diff-notes",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/session-file-tab-read.json b/mobile/rpc-foundation/goldens/session-file-tab-read.json
index 397ab8947f0..379452e0d6d 100644
--- a/mobile/rpc-foundation/goldens/session-file-tab-read.json
+++ b/mobile/rpc-foundation/goldens/session-file-tab-read.json
@@ -3,7 +3,7 @@
"family": "session.tab-documents",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/session-markdown-disk-read.json b/mobile/rpc-foundation/goldens/session-markdown-disk-read.json
index 640b9369cbb..de82fdf8fa2 100644
--- a/mobile/rpc-foundation/goldens/session-markdown-disk-read.json
+++ b/mobile/rpc-foundation/goldens/session-markdown-disk-read.json
@@ -3,7 +3,7 @@
"family": "session.markdown-disk-fallback",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/session-markdown-disk-served.json b/mobile/rpc-foundation/goldens/session-markdown-disk-served.json
index 3256e5ee30c..b52f4e9a2c3 100644
--- a/mobile/rpc-foundation/goldens/session-markdown-disk-served.json
+++ b/mobile/rpc-foundation/goldens/session-markdown-disk-served.json
@@ -3,7 +3,7 @@
"family": "session.markdown-disk-fallback",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/session-markdown-save-conflict.json b/mobile/rpc-foundation/goldens/session-markdown-save-conflict.json
index c3bd07ef707..520513b7533 100644
--- a/mobile/rpc-foundation/goldens/session-markdown-save-conflict.json
+++ b/mobile/rpc-foundation/goldens/session-markdown-save-conflict.json
@@ -3,7 +3,7 @@
"family": "session.markdown-save",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/session-markdown-saved.json b/mobile/rpc-foundation/goldens/session-markdown-saved.json
index 1eb556ffcee..c8a05d25441 100644
--- a/mobile/rpc-foundation/goldens/session-markdown-saved.json
+++ b/mobile/rpc-foundation/goldens/session-markdown-saved.json
@@ -3,7 +3,7 @@
"family": "session.markdown-save",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2",
diff --git a/mobile/rpc-foundation/goldens/session-markdown-tab-disk-fallback.json b/mobile/rpc-foundation/goldens/session-markdown-tab-disk-fallback.json
index 9b7c04268f7..91707c3827d 100644
--- a/mobile/rpc-foundation/goldens/session-markdown-tab-disk-fallback.json
+++ b/mobile/rpc-foundation/goldens/session-markdown-tab-disk-fallback.json
@@ -3,7 +3,7 @@
"family": "session.tab-documents",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/session-markdown-tab-read.json b/mobile/rpc-foundation/goldens/session-markdown-tab-read.json
index dbbe6e42d48..ab9580fb2be 100644
--- a/mobile/rpc-foundation/goldens/session-markdown-tab-read.json
+++ b/mobile/rpc-foundation/goldens/session-markdown-tab-read.json
@@ -3,7 +3,7 @@
"family": "session.tab-documents",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/session-markdown-tab-refused.json b/mobile/rpc-foundation/goldens/session-markdown-tab-refused.json
index 5813d0bbabf..0881ac812f3 100644
--- a/mobile/rpc-foundation/goldens/session-markdown-tab-refused.json
+++ b/mobile/rpc-foundation/goldens/session-markdown-tab-refused.json
@@ -3,7 +3,7 @@
"family": "session.tab-documents",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/session-startup-both-activation-sites.json b/mobile/rpc-foundation/goldens/session-startup-both-activation-sites.json
index 892d872144e..56ac593798e 100644
--- a/mobile/rpc-foundation/goldens/session-startup-both-activation-sites.json
+++ b/mobile/rpc-foundation/goldens/session-startup-both-activation-sites.json
@@ -3,7 +3,7 @@
"family": "session.startup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "6b08c394e37fd572cf63a4c11934247d379008f11117aa5af33b2926fbd32d1e",
diff --git a/mobile/rpc-foundation/goldens/session-startup-floating-route-skips-activation.json b/mobile/rpc-foundation/goldens/session-startup-floating-route-skips-activation.json
index 11d41679307..87c42acaedc 100644
--- a/mobile/rpc-foundation/goldens/session-startup-floating-route-skips-activation.json
+++ b/mobile/rpc-foundation/goldens/session-startup-floating-route-skips-activation.json
@@ -3,7 +3,7 @@
"family": "session.startup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "6b08c394e37fd572cf63a4c11934247d379008f11117aa5af33b2926fbd32d1e",
diff --git a/mobile/rpc-foundation/goldens/session-startup-keeps-terminals-visible-on-reconnect.json b/mobile/rpc-foundation/goldens/session-startup-keeps-terminals-visible-on-reconnect.json
index e11e0595888..4647e085c44 100644
--- a/mobile/rpc-foundation/goldens/session-startup-keeps-terminals-visible-on-reconnect.json
+++ b/mobile/rpc-foundation/goldens/session-startup-keeps-terminals-visible-on-reconnect.json
@@ -3,7 +3,7 @@
"family": "session.startup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "6b08c394e37fd572cf63a4c11934247d379008f11117aa5af33b2926fbd32d1e",
diff --git a/mobile/rpc-foundation/goldens/session-startup-refused-tab-load-still-loads-terminals.json b/mobile/rpc-foundation/goldens/session-startup-refused-tab-load-still-loads-terminals.json
index bd939e6fb1e..7cf9af5e559 100644
--- a/mobile/rpc-foundation/goldens/session-startup-refused-tab-load-still-loads-terminals.json
+++ b/mobile/rpc-foundation/goldens/session-startup-refused-tab-load-still-loads-terminals.json
@@ -3,7 +3,7 @@
"family": "session.startup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "6b08c394e37fd572cf63a4c11934247d379008f11117aa5af33b2926fbd32d1e",
diff --git a/mobile/rpc-foundation/goldens/session-tab-activation-focus-and-activate.json b/mobile/rpc-foundation/goldens/session-tab-activation-focus-and-activate.json
index bb06bebaa20..e6d67fb3c7c 100644
--- a/mobile/rpc-foundation/goldens/session-tab-activation-focus-and-activate.json
+++ b/mobile/rpc-foundation/goldens/session-tab-activation-focus-and-activate.json
@@ -3,7 +3,7 @@
"family": "session.tab-activation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0",
diff --git a/mobile/rpc-foundation/goldens/session-tab-activation-refused.json b/mobile/rpc-foundation/goldens/session-tab-activation-refused.json
index ade387c3881..83cdc6521ca 100644
--- a/mobile/rpc-foundation/goldens/session-tab-activation-refused.json
+++ b/mobile/rpc-foundation/goldens/session-tab-activation-refused.json
@@ -3,7 +3,7 @@
"family": "session.tab-activation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0",
diff --git a/mobile/rpc-foundation/goldens/session-tab-activation-transport-error.json b/mobile/rpc-foundation/goldens/session-tab-activation-transport-error.json
index a9ff3c07061..155d32f08e9 100644
--- a/mobile/rpc-foundation/goldens/session-tab-activation-transport-error.json
+++ b/mobile/rpc-foundation/goldens/session-tab-activation-transport-error.json
@@ -3,7 +3,7 @@
"family": "session.tab-activation",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0",
diff --git a/mobile/rpc-foundation/goldens/session-tab-close-refused-keeps-tab.json b/mobile/rpc-foundation/goldens/session-tab-close-refused-keeps-tab.json
index a0a9b341926..6b017291d2a 100644
--- a/mobile/rpc-foundation/goldens/session-tab-close-refused-keeps-tab.json
+++ b/mobile/rpc-foundation/goldens/session-tab-close-refused-keeps-tab.json
@@ -3,7 +3,7 @@
"family": "session.tab-close",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-tab-close-session-tab.json b/mobile/rpc-foundation/goldens/session-tab-close-session-tab.json
index a8430e54a7e..6b60979b207 100644
--- a/mobile/rpc-foundation/goldens/session-tab-close-session-tab.json
+++ b/mobile/rpc-foundation/goldens/session-tab-close-session-tab.json
@@ -3,7 +3,7 @@
"family": "session.tab-close",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-tab-close-terminal.json b/mobile/rpc-foundation/goldens/session-tab-close-terminal.json
index 924ce4e9bc1..27cb3712c02 100644
--- a/mobile/rpc-foundation/goldens/session-tab-close-terminal.json
+++ b/mobile/rpc-foundation/goldens/session-tab-close-terminal.json
@@ -3,7 +3,7 @@
"family": "session.tab-close",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-tab-closed.json b/mobile/rpc-foundation/goldens/session-tab-closed.json
index 6305b14ed17..b8c85ed3945 100644
--- a/mobile/rpc-foundation/goldens/session-tab-closed.json
+++ b/mobile/rpc-foundation/goldens/session-tab-closed.json
@@ -3,7 +3,7 @@
"family": "session.tab-close-session",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-tab-rename.json b/mobile/rpc-foundation/goldens/session-tab-rename.json
index b1c45b3bd8b..28c6d985885 100644
--- a/mobile/rpc-foundation/goldens/session-tab-rename.json
+++ b/mobile/rpc-foundation/goldens/session-tab-rename.json
@@ -3,7 +3,7 @@
"family": "session.tab-close",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-tab-renamed.json b/mobile/rpc-foundation/goldens/session-tab-renamed.json
index 58b625c326b..aef86e0995d 100644
--- a/mobile/rpc-foundation/goldens/session-tab-renamed.json
+++ b/mobile/rpc-foundation/goldens/session-tab-renamed.json
@@ -3,7 +3,7 @@
"family": "session.tab-rename",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815",
diff --git a/mobile/rpc-foundation/goldens/session-tabs-health-errored.json b/mobile/rpc-foundation/goldens/session-tabs-health-errored.json
index 0b11ce76cd1..cfa8953d600 100644
--- a/mobile/rpc-foundation/goldens/session-tabs-health-errored.json
+++ b/mobile/rpc-foundation/goldens/session-tabs-health-errored.json
@@ -3,7 +3,7 @@
"family": "session.tabs-stream-health",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0",
diff --git a/mobile/rpc-foundation/goldens/session-tabs-health-reconciled.json b/mobile/rpc-foundation/goldens/session-tabs-health-reconciled.json
index 9f34d55b1cd..ec52eac1992 100644
--- a/mobile/rpc-foundation/goldens/session-tabs-health-reconciled.json
+++ b/mobile/rpc-foundation/goldens/session-tabs-health-reconciled.json
@@ -3,7 +3,7 @@
"family": "session.tabs-stream-health",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0",
diff --git a/mobile/rpc-foundation/goldens/session-tabs-health-refused.json b/mobile/rpc-foundation/goldens/session-tabs-health-refused.json
index 714aa934548..330c8becc32 100644
--- a/mobile/rpc-foundation/goldens/session-tabs-health-refused.json
+++ b/mobile/rpc-foundation/goldens/session-tabs-health-refused.json
@@ -3,7 +3,7 @@
"family": "session.tabs-stream-health",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0",
diff --git a/mobile/rpc-foundation/goldens/session-tabs-health-stale-application-revision.json b/mobile/rpc-foundation/goldens/session-tabs-health-stale-application-revision.json
index 17d06716ff9..a544d94becf 100644
--- a/mobile/rpc-foundation/goldens/session-tabs-health-stale-application-revision.json
+++ b/mobile/rpc-foundation/goldens/session-tabs-health-stale-application-revision.json
@@ -3,7 +3,7 @@
"family": "session.tabs-stream-health",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0",
diff --git a/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-take-floor.json b/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-take-floor.json
index 37497a5dc28..65429ed3703 100644
--- a/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-take-floor.json
+++ b/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-take-floor.json
@@ -3,7 +3,7 @@
"family": "session.terminal-display-mode",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "9e90ad39a8d4257adf30166757a6364c4710dc3ae9f06365f80a3dd8f1c94d89",
diff --git a/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-without-device-token.json b/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-without-device-token.json
index 6d9edfa1bec..e0390068e7d 100644
--- a/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-without-device-token.json
+++ b/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-without-device-token.json
@@ -3,7 +3,7 @@
"family": "session.terminal-display-mode",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "9e90ad39a8d4257adf30166757a6364c4710dc3ae9f06365f80a3dd8f1c94d89",
diff --git a/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-without-viewport.json b/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-without-viewport.json
index dfa8f9f824b..929156e84e7 100644
--- a/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-without-viewport.json
+++ b/mobile/rpc-foundation/goldens/session-terminal-display-mode-auto-without-viewport.json
@@ -3,7 +3,7 @@
"family": "session.terminal-display-mode",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "9e90ad39a8d4257adf30166757a6364c4710dc3ae9f06365f80a3dd8f1c94d89",
diff --git a/mobile/rpc-foundation/goldens/session-terminal-display-mode-drops-second-toggle.json b/mobile/rpc-foundation/goldens/session-terminal-display-mode-drops-second-toggle.json
index fdfd778559e..6697f43c705 100644
--- a/mobile/rpc-foundation/goldens/session-terminal-display-mode-drops-second-toggle.json
+++ b/mobile/rpc-foundation/goldens/session-terminal-display-mode-drops-second-toggle.json
@@ -3,7 +3,7 @@
"family": "session.terminal-display-mode",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "9e90ad39a8d4257adf30166757a6364c4710dc3ae9f06365f80a3dd8f1c94d89",
diff --git a/mobile/rpc-foundation/goldens/session-terminal-display-mode-to-desktop.json b/mobile/rpc-foundation/goldens/session-terminal-display-mode-to-desktop.json
index 76621d9b57b..2449bb28d63 100644
--- a/mobile/rpc-foundation/goldens/session-terminal-display-mode-to-desktop.json
+++ b/mobile/rpc-foundation/goldens/session-terminal-display-mode-to-desktop.json
@@ -3,7 +3,7 @@
"family": "session.terminal-display-mode",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "9e90ad39a8d4257adf30166757a6364c4710dc3ae9f06365f80a3dd8f1c94d89",
diff --git a/mobile/rpc-foundation/goldens/session-terminal-list-dedupes-handles.json b/mobile/rpc-foundation/goldens/session-terminal-list-dedupes-handles.json
index 3e579906856..2bad4800947 100644
--- a/mobile/rpc-foundation/goldens/session-terminal-list-dedupes-handles.json
+++ b/mobile/rpc-foundation/goldens/session-terminal-list-dedupes-handles.json
@@ -3,7 +3,7 @@
"family": "session.terminal-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/session-terminal-list-empty-guarded.json b/mobile/rpc-foundation/goldens/session-terminal-list-empty-guarded.json
index 8411ce561af..e2b209182a6 100644
--- a/mobile/rpc-foundation/goldens/session-terminal-list-empty-guarded.json
+++ b/mobile/rpc-foundation/goldens/session-terminal-list-empty-guarded.json
@@ -3,7 +3,7 @@
"family": "session.terminal-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/session-terminal-list-merged.json b/mobile/rpc-foundation/goldens/session-terminal-list-merged.json
index af1bbc81802..a562b814680 100644
--- a/mobile/rpc-foundation/goldens/session-terminal-list-merged.json
+++ b/mobile/rpc-foundation/goldens/session-terminal-list-merged.json
@@ -3,7 +3,7 @@
"family": "session.terminal-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/session-terminal-list-refused.json b/mobile/rpc-foundation/goldens/session-terminal-list-refused.json
index d4d5a7ba927..3719f1e6e0f 100644
--- a/mobile/rpc-foundation/goldens/session-terminal-list-refused.json
+++ b/mobile/rpc-foundation/goldens/session-terminal-list-refused.json
@@ -3,7 +3,7 @@
"family": "session.terminal-inventory",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95",
diff --git a/mobile/rpc-foundation/goldens/settings-bot-overrides-fulfilled.json b/mobile/rpc-foundation/goldens/settings-bot-overrides-fulfilled.json
index 4f29c57f237..67600385781 100644
--- a/mobile/rpc-foundation/goldens/settings-bot-overrides-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/settings-bot-overrides-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.bot-overrides",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-bot-overrides-refresh-refused.json b/mobile/rpc-foundation/goldens/settings-bot-overrides-refresh-refused.json
index 60ab89a9660..a692328dc6b 100644
--- a/mobile/rpc-foundation/goldens/settings-bot-overrides-refresh-refused.json
+++ b/mobile/rpc-foundation/goldens/settings-bot-overrides-refresh-refused.json
@@ -3,7 +3,7 @@
"family": "settings.bot-overrides",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-bot-overrides-refused.json b/mobile/rpc-foundation/goldens/settings-bot-overrides-refused.json
index cd1fe52a77c..28d5aa7b492 100644
--- a/mobile/rpc-foundation/goldens/settings-bot-overrides-refused.json
+++ b/mobile/rpc-foundation/goldens/settings-bot-overrides-refused.json
@@ -3,7 +3,7 @@
"family": "settings.bot-overrides",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-bot-overrides-transport-error.json b/mobile/rpc-foundation/goldens/settings-bot-overrides-transport-error.json
index a9583652cc0..5acc7dc254f 100644
--- a/mobile/rpc-foundation/goldens/settings-bot-overrides-transport-error.json
+++ b/mobile/rpc-foundation/goldens/settings-bot-overrides-transport-error.json
@@ -3,7 +3,7 @@
"family": "settings.bot-overrides",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-home-coalesced.json b/mobile/rpc-foundation/goldens/settings-home-coalesced.json
index 19407ee70dd..607ceb8f96e 100644
--- a/mobile/rpc-foundation/goldens/settings-home-coalesced.json
+++ b/mobile/rpc-foundation/goldens/settings-home-coalesced.json
@@ -3,7 +3,7 @@
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-home-providers-fulfilled.json b/mobile/rpc-foundation/goldens/settings-home-providers-fulfilled.json
index d35a57ab17a..965b2a51383 100644
--- a/mobile/rpc-foundation/goldens/settings-home-providers-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/settings-home-providers-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-home-providers-refuse-after-data.json b/mobile/rpc-foundation/goldens/settings-home-providers-refuse-after-data.json
index dbeed96cca4..5e678441b0a 100644
--- a/mobile/rpc-foundation/goldens/settings-home-providers-refuse-after-data.json
+++ b/mobile/rpc-foundation/goldens/settings-home-providers-refuse-after-data.json
@@ -3,7 +3,7 @@
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-home-providers-refused.json b/mobile/rpc-foundation/goldens/settings-home-providers-refused.json
index f1b19ad17bf..fa6d25c24f9 100644
--- a/mobile/rpc-foundation/goldens/settings-home-providers-refused.json
+++ b/mobile/rpc-foundation/goldens/settings-home-providers-refused.json
@@ -3,7 +3,7 @@
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-home-providers-transport-error.json b/mobile/rpc-foundation/goldens/settings-home-providers-transport-error.json
index 25d2207a07c..318203dc3b8 100644
--- a/mobile/rpc-foundation/goldens/settings-home-providers-transport-error.json
+++ b/mobile/rpc-foundation/goldens/settings-home-providers-transport-error.json
@@ -3,7 +3,7 @@
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-new-tab-refused.json b/mobile/rpc-foundation/goldens/settings-new-tab-refused.json
index d6385cce795..899f5a41bb2 100644
--- a/mobile/rpc-foundation/goldens/settings-new-tab-refused.json
+++ b/mobile/rpc-foundation/goldens/settings-new-tab-refused.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/settings-new-tab-ssh.json b/mobile/rpc-foundation/goldens/settings-new-tab-ssh.json
index 2ba29ec2f2c..98f1ad0abb2 100644
--- a/mobile/rpc-foundation/goldens/settings-new-tab-ssh.json
+++ b/mobile/rpc-foundation/goldens/settings-new-tab-ssh.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/settings-new-tab-transport-error.json b/mobile/rpc-foundation/goldens/settings-new-tab-transport-error.json
index 1c3c263ae7e..760fb48bd37 100644
--- a/mobile/rpc-foundation/goldens/settings-new-tab-transport-error.json
+++ b/mobile/rpc-foundation/goldens/settings-new-tab-transport-error.json
@@ -3,7 +3,7 @@
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f",
diff --git a/mobile/rpc-foundation/goldens/settings-repo-cache-expiry.json b/mobile/rpc-foundation/goldens/settings-repo-cache-expiry.json
index f5a5b48b1b3..a81fa8fc825 100644
--- a/mobile/rpc-foundation/goldens/settings-repo-cache-expiry.json
+++ b/mobile/rpc-foundation/goldens/settings-repo-cache-expiry.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-repo-metadata-fulfilled.json b/mobile/rpc-foundation/goldens/settings-repo-metadata-fulfilled.json
index 6b1a6348154..84a4f4d8498 100644
--- a/mobile/rpc-foundation/goldens/settings-repo-metadata-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/settings-repo-metadata-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-repo-metadata-icons.json b/mobile/rpc-foundation/goldens/settings-repo-metadata-icons.json
index ae1783278a5..6b078c2a563 100644
--- a/mobile/rpc-foundation/goldens/settings-repo-metadata-icons.json
+++ b/mobile/rpc-foundation/goldens/settings-repo-metadata-icons.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-repo-metadata-refuse-after-data.json b/mobile/rpc-foundation/goldens/settings-repo-metadata-refuse-after-data.json
index f9ed435f43d..c1e24d6d268 100644
--- a/mobile/rpc-foundation/goldens/settings-repo-metadata-refuse-after-data.json
+++ b/mobile/rpc-foundation/goldens/settings-repo-metadata-refuse-after-data.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-repo-metadata-refused.json b/mobile/rpc-foundation/goldens/settings-repo-metadata-refused.json
index 6b339e7bf4e..a47257b0c59 100644
--- a/mobile/rpc-foundation/goldens/settings-repo-metadata-refused.json
+++ b/mobile/rpc-foundation/goldens/settings-repo-metadata-refused.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-repo-metadata-single-host.json b/mobile/rpc-foundation/goldens/settings-repo-metadata-single-host.json
index 62ef1dd5710..f3a7f6c397c 100644
--- a/mobile/rpc-foundation/goldens/settings-repo-metadata-single-host.json
+++ b/mobile/rpc-foundation/goldens/settings-repo-metadata-single-host.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-repo-metadata-transport-error.json b/mobile/rpc-foundation/goldens/settings-repo-metadata-transport-error.json
index 9eef882d2c3..a385b5cb36d 100644
--- a/mobile/rpc-foundation/goldens/settings-repo-metadata-transport-error.json
+++ b/mobile/rpc-foundation/goldens/settings-repo-metadata-transport-error.json
@@ -3,7 +3,7 @@
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-resume-metadata-fulfilled.json b/mobile/rpc-foundation/goldens/settings-resume-metadata-fulfilled.json
index e09dcfe7d7c..7f171eb0637 100644
--- a/mobile/rpc-foundation/goldens/settings-resume-metadata-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/settings-resume-metadata-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-resume-metadata-refuse-after-data.json b/mobile/rpc-foundation/goldens/settings-resume-metadata-refuse-after-data.json
index 0ee5dcf3b65..b610203208b 100644
--- a/mobile/rpc-foundation/goldens/settings-resume-metadata-refuse-after-data.json
+++ b/mobile/rpc-foundation/goldens/settings-resume-metadata-refuse-after-data.json
@@ -3,7 +3,7 @@
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-resume-metadata-refused.json b/mobile/rpc-foundation/goldens/settings-resume-metadata-refused.json
index d433d72035d..058901c2d7c 100644
--- a/mobile/rpc-foundation/goldens/settings-resume-metadata-refused.json
+++ b/mobile/rpc-foundation/goldens/settings-resume-metadata-refused.json
@@ -3,7 +3,7 @@
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-resume-metadata-transport-error.json b/mobile/rpc-foundation/goldens/settings-resume-metadata-transport-error.json
index 3578ea196cc..0b42ea1231e 100644
--- a/mobile/rpc-foundation/goldens/settings-resume-metadata-transport-error.json
+++ b/mobile/rpc-foundation/goldens/settings-resume-metadata-transport-error.json
@@ -3,7 +3,7 @@
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-task-hydration-fulfilled.json b/mobile/rpc-foundation/goldens/settings-task-hydration-fulfilled.json
index 4b271b141f0..90949ed775a 100644
--- a/mobile/rpc-foundation/goldens/settings-task-hydration-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/settings-task-hydration-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-task-hydration-refuse-after-data.json b/mobile/rpc-foundation/goldens/settings-task-hydration-refuse-after-data.json
index e66deccd577..c18e3069c45 100644
--- a/mobile/rpc-foundation/goldens/settings-task-hydration-refuse-after-data.json
+++ b/mobile/rpc-foundation/goldens/settings-task-hydration-refuse-after-data.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-task-hydration-refused.json b/mobile/rpc-foundation/goldens/settings-task-hydration-refused.json
index 69df8315f97..5c4f2b0a2f2 100644
--- a/mobile/rpc-foundation/goldens/settings-task-hydration-refused.json
+++ b/mobile/rpc-foundation/goldens/settings-task-hydration-refused.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-task-hydration-transport-error.json b/mobile/rpc-foundation/goldens/settings-task-hydration-transport-error.json
index 863438ba762..53c8b4b28a3 100644
--- a/mobile/rpc-foundation/goldens/settings-task-hydration-transport-error.json
+++ b/mobile/rpc-foundation/goldens/settings-task-hydration-transport-error.json
@@ -3,7 +3,7 @@
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-task-workspace-create-linear.json b/mobile/rpc-foundation/goldens/settings-task-workspace-create-linear.json
index 210aa3d107f..21abaa2256f 100644
--- a/mobile/rpc-foundation/goldens/settings-task-workspace-create-linear.json
+++ b/mobile/rpc-foundation/goldens/settings-task-workspace-create-linear.json
@@ -3,7 +3,7 @@
"family": "settings.task-workspace-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/settings-task-workspace-create-pr-start-point.json b/mobile/rpc-foundation/goldens/settings-task-workspace-create-pr-start-point.json
index 66ed6d4865e..7cddc3196a6 100644
--- a/mobile/rpc-foundation/goldens/settings-task-workspace-create-pr-start-point.json
+++ b/mobile/rpc-foundation/goldens/settings-task-workspace-create-pr-start-point.json
@@ -3,7 +3,7 @@
"family": "settings.task-workspace-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/settings-task-workspace-fulfilled.json b/mobile/rpc-foundation/goldens/settings-task-workspace-fulfilled.json
index 3fb03be495a..04481fdd1e0 100644
--- a/mobile/rpc-foundation/goldens/settings-task-workspace-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/settings-task-workspace-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.task-workspace",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/settings-task-workspace-refused.json b/mobile/rpc-foundation/goldens/settings-task-workspace-refused.json
index 2e4818627e6..7a9e5b06aed 100644
--- a/mobile/rpc-foundation/goldens/settings-task-workspace-refused.json
+++ b/mobile/rpc-foundation/goldens/settings-task-workspace-refused.json
@@ -3,7 +3,7 @@
"family": "settings.task-workspace",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/settings-task-workspace-transport-error.json b/mobile/rpc-foundation/goldens/settings-task-workspace-transport-error.json
index f9f05142440..25f63e2876d 100644
--- a/mobile/rpc-foundation/goldens/settings-task-workspace-transport-error.json
+++ b/mobile/rpc-foundation/goldens/settings-task-workspace-transport-error.json
@@ -3,7 +3,7 @@
"family": "settings.task-workspace",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/settings-task-write.json b/mobile/rpc-foundation/goldens/settings-task-write.json
index 44657753f03..a4e31adf30e 100644
--- a/mobile/rpc-foundation/goldens/settings-task-write.json
+++ b/mobile/rpc-foundation/goldens/settings-task-write.json
@@ -3,7 +3,7 @@
"family": "settings-best-effort",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab",
diff --git a/mobile/rpc-foundation/goldens/settings-workspace-context-fulfilled.json b/mobile/rpc-foundation/goldens/settings-workspace-context-fulfilled.json
index d57da179268..20d79753238 100644
--- a/mobile/rpc-foundation/goldens/settings-workspace-context-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/settings-workspace-context-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-context",
"namedDeltas": ["new-workspace-runtime-context-null-results-degrade-to-absent"],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-workspace-context-refuse-after-data.json b/mobile/rpc-foundation/goldens/settings-workspace-context-refuse-after-data.json
index 030bd73b2e0..a2b4543745f 100644
--- a/mobile/rpc-foundation/goldens/settings-workspace-context-refuse-after-data.json
+++ b/mobile/rpc-foundation/goldens/settings-workspace-context-refuse-after-data.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-context",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-workspace-context-refused.json b/mobile/rpc-foundation/goldens/settings-workspace-context-refused.json
index f2efcefee29..8c40c37ea97 100644
--- a/mobile/rpc-foundation/goldens/settings-workspace-context-refused.json
+++ b/mobile/rpc-foundation/goldens/settings-workspace-context-refused.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-context",
"namedDeltas": ["new-workspace-runtime-context-null-results-degrade-to-absent"],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-workspace-context-transport-error.json b/mobile/rpc-foundation/goldens/settings-workspace-context-transport-error.json
index cd3f9d80d9b..2808fb6c0f3 100644
--- a/mobile/rpc-foundation/goldens/settings-workspace-context-transport-error.json
+++ b/mobile/rpc-foundation/goldens/settings-workspace-context-transport-error.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-context",
"namedDeltas": ["new-workspace-runtime-context-null-results-degrade-to-absent"],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0",
diff --git a/mobile/rpc-foundation/goldens/settings-workspace-submit-fulfilled.json b/mobile/rpc-foundation/goldens/settings-workspace-submit-fulfilled.json
index 84747858014..72f0520ce70 100644
--- a/mobile/rpc-foundation/goldens/settings-workspace-submit-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/settings-workspace-submit-fulfilled.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-submit",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/settings-workspace-submit-refused.json b/mobile/rpc-foundation/goldens/settings-workspace-submit-refused.json
index 201f7a6c7f4..82684ec2ec7 100644
--- a/mobile/rpc-foundation/goldens/settings-workspace-submit-refused.json
+++ b/mobile/rpc-foundation/goldens/settings-workspace-submit-refused.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-submit",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/settings-workspace-submit-transport-error.json b/mobile/rpc-foundation/goldens/settings-workspace-submit-transport-error.json
index 481b25bab50..33e1ca27c8a 100644
--- a/mobile/rpc-foundation/goldens/settings-workspace-submit-transport-error.json
+++ b/mobile/rpc-foundation/goldens/settings-workspace-submit-transport-error.json
@@ -3,7 +3,7 @@
"family": "settings.workspace-submit",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c2eed306311a844cd6f2f84b6513c0a1182f86a5e3cace434385b8287c80d7c5",
diff --git a/mobile/rpc-foundation/goldens/speech-audio-chunk-acknowledged.json b/mobile/rpc-foundation/goldens/speech-audio-chunk-acknowledged.json
index 0713771ad5d..f85a254717c 100644
--- a/mobile/rpc-foundation/goldens/speech-audio-chunk-acknowledged.json
+++ b/mobile/rpc-foundation/goldens/speech-audio-chunk-acknowledged.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-chunk",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/speech-desktop-start-fulfilled.json b/mobile/rpc-foundation/goldens/speech-desktop-start-fulfilled.json
index 9153cc6ecf4..59a78b492fe 100644
--- a/mobile/rpc-foundation/goldens/speech-desktop-start-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/speech-desktop-start-fulfilled.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-start",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/speech-desktop-start-recording-failed.json b/mobile/rpc-foundation/goldens/speech-desktop-start-recording-failed.json
index b6414ad3be4..953ac766d09 100644
--- a/mobile/rpc-foundation/goldens/speech-desktop-start-recording-failed.json
+++ b/mobile/rpc-foundation/goldens/speech-desktop-start-recording-failed.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-start",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/speech-desktop-start-superseded.json b/mobile/rpc-foundation/goldens/speech-desktop-start-superseded.json
index 0ecb2748b23..9f329ccd7cb 100644
--- a/mobile/rpc-foundation/goldens/speech-desktop-start-superseded.json
+++ b/mobile/rpc-foundation/goldens/speech-desktop-start-superseded.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-start",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/speech-dictation-session-cancelled.json b/mobile/rpc-foundation/goldens/speech-dictation-session-cancelled.json
index 125eb6bc371..f8492c20525 100644
--- a/mobile/rpc-foundation/goldens/speech-dictation-session-cancelled.json
+++ b/mobile/rpc-foundation/goldens/speech-dictation-session-cancelled.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-session",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/speech-dictation-session-transcript.json b/mobile/rpc-foundation/goldens/speech-dictation-session-transcript.json
index 431cdd64901..dc5a9db18db 100644
--- a/mobile/rpc-foundation/goldens/speech-dictation-session-transcript.json
+++ b/mobile/rpc-foundation/goldens/speech-dictation-session-transcript.json
@@ -3,7 +3,7 @@
"family": "speech.dictation-session",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/speech-setup-sheet-denied-to-mobile.json b/mobile/rpc-foundation/goldens/speech-setup-sheet-denied-to-mobile.json
index 9da4f838ded..39188439a58 100644
--- a/mobile/rpc-foundation/goldens/speech-setup-sheet-denied-to-mobile.json
+++ b/mobile/rpc-foundation/goldens/speech-setup-sheet-denied-to-mobile.json
@@ -3,7 +3,7 @@
"family": "speech.setup-sheet",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/speech-setup-sheet-fulfilled.json b/mobile/rpc-foundation/goldens/speech-setup-sheet-fulfilled.json
index 0787dde585f..eda46d8d76d 100644
--- a/mobile/rpc-foundation/goldens/speech-setup-sheet-fulfilled.json
+++ b/mobile/rpc-foundation/goldens/speech-setup-sheet-fulfilled.json
@@ -3,7 +3,7 @@
"family": "speech.setup-sheet",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/speech-setup-sheet-legacy-desktop.json b/mobile/rpc-foundation/goldens/speech-setup-sheet-legacy-desktop.json
index b5ce7d1ec5d..8c843be7ef4 100644
--- a/mobile/rpc-foundation/goldens/speech-setup-sheet-legacy-desktop.json
+++ b/mobile/rpc-foundation/goldens/speech-setup-sheet-legacy-desktop.json
@@ -3,7 +3,7 @@
"family": "speech.setup-sheet",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/speech-setup-sheet-model-vocabulary.json b/mobile/rpc-foundation/goldens/speech-setup-sheet-model-vocabulary.json
index fe546b7898c..89ad5b48ce2 100644
--- a/mobile/rpc-foundation/goldens/speech-setup-sheet-model-vocabulary.json
+++ b/mobile/rpc-foundation/goldens/speech-setup-sheet-model-vocabulary.json
@@ -3,7 +3,7 @@
"family": "speech.setup-sheet",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b",
diff --git a/mobile/rpc-foundation/goldens/structured-agent-session-created.json b/mobile/rpc-foundation/goldens/structured-agent-session-created.json
index c2ed99d4499..ae657fd7af0 100644
--- a/mobile/rpc-foundation/goldens/structured-agent-session-created.json
+++ b/mobile/rpc-foundation/goldens/structured-agent-session-created.json
@@ -3,7 +3,7 @@
"family": "agentSession.structured-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6",
diff --git a/mobile/rpc-foundation/goldens/structured-launch-created.json b/mobile/rpc-foundation/goldens/structured-launch-created.json
index f13e802cbb6..b5ff53f74bc 100644
--- a/mobile/rpc-foundation/goldens/structured-launch-created.json
+++ b/mobile/rpc-foundation/goldens/structured-launch-created.json
@@ -3,7 +3,7 @@
"family": "agentSession.structured-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6",
diff --git a/mobile/rpc-foundation/goldens/structured-launch-definitive-refusal.json b/mobile/rpc-foundation/goldens/structured-launch-definitive-refusal.json
index 3e2024f42a9..d51c62db122 100644
--- a/mobile/rpc-foundation/goldens/structured-launch-definitive-refusal.json
+++ b/mobile/rpc-foundation/goldens/structured-launch-definitive-refusal.json
@@ -3,7 +3,7 @@
"family": "agentSession.structured-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6",
diff --git a/mobile/rpc-foundation/goldens/structured-launch-replays-dropped-create.json b/mobile/rpc-foundation/goldens/structured-launch-replays-dropped-create.json
index 7e155fde891..9f9a9c51d46 100644
--- a/mobile/rpc-foundation/goldens/structured-launch-replays-dropped-create.json
+++ b/mobile/rpc-foundation/goldens/structured-launch-replays-dropped-create.json
@@ -3,7 +3,7 @@
"family": "agentSession.structured-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6",
diff --git a/mobile/rpc-foundation/goldens/structured-launch-support-refused.json b/mobile/rpc-foundation/goldens/structured-launch-support-refused.json
index e821c7cea4f..a277bf59c43 100644
--- a/mobile/rpc-foundation/goldens/structured-launch-support-refused.json
+++ b/mobile/rpc-foundation/goldens/structured-launch-support-refused.json
@@ -3,7 +3,7 @@
"family": "agentSession.structured-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6",
diff --git a/mobile/rpc-foundation/goldens/structured-launch-unsupported.json b/mobile/rpc-foundation/goldens/structured-launch-unsupported.json
index fca717c6f28..851a6426370 100644
--- a/mobile/rpc-foundation/goldens/structured-launch-unsupported.json
+++ b/mobile/rpc-foundation/goldens/structured-launch-unsupported.json
@@ -3,7 +3,7 @@
"family": "agentSession.structured-launch",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6",
diff --git a/mobile/rpc-foundation/goldens/tasks-route-repo-list.json b/mobile/rpc-foundation/goldens/tasks-route-repo-list.json
index 6881876182c..61e02631a16 100644
--- a/mobile/rpc-foundation/goldens/tasks-route-repo-list.json
+++ b/mobile/rpc-foundation/goldens/tasks-route-repo-list.json
@@ -3,7 +3,7 @@
"family": "tasks.route-repo-list",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "feb6cee1ab7ecff1ba98bfba22d4924c748d3bb6b749db460cb617ee50b92f2c",
diff --git a/mobile/rpc-foundation/goldens/terminal-gesture-flush-and-clear.json b/mobile/rpc-foundation/goldens/terminal-gesture-flush-and-clear.json
index 60a9844b2ff..4d4fae94526 100644
--- a/mobile/rpc-foundation/goldens/terminal-gesture-flush-and-clear.json
+++ b/mobile/rpc-foundation/goldens/terminal-gesture-flush-and-clear.json
@@ -3,7 +3,7 @@
"family": "session.terminal-gesture-input",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "9d119d5ec320e2538105d6ff673b9f4b8e3decbe46527947489dffbcf2ac0472",
diff --git a/mobile/rpc-foundation/goldens/terminal-input-send-accepted.json b/mobile/rpc-foundation/goldens/terminal-input-send-accepted.json
index d045b82ec56..20b10bf9f51 100644
--- a/mobile/rpc-foundation/goldens/terminal-input-send-accepted.json
+++ b/mobile/rpc-foundation/goldens/terminal-input-send-accepted.json
@@ -3,7 +3,7 @@
"family": "session.terminal-input-send",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/terminal-input-send-refused.json b/mobile/rpc-foundation/goldens/terminal-input-send-refused.json
index aeb64e780ef..6c79115b042 100644
--- a/mobile/rpc-foundation/goldens/terminal-input-send-refused.json
+++ b/mobile/rpc-foundation/goldens/terminal-input-send-refused.json
@@ -3,7 +3,7 @@
"family": "session.terminal-input-send",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/terminal-live-input-accepted.json b/mobile/rpc-foundation/goldens/terminal-live-input-accepted.json
index 0a6205e6809..a5d891ad2da 100644
--- a/mobile/rpc-foundation/goldens/terminal-live-input-accepted.json
+++ b/mobile/rpc-foundation/goldens/terminal-live-input-accepted.json
@@ -3,7 +3,7 @@
"family": "session.terminal-input-send",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/terminal-paste-accepted.json b/mobile/rpc-foundation/goldens/terminal-paste-accepted.json
index 5a4c3c39d3e..91c67bbc905 100644
--- a/mobile/rpc-foundation/goldens/terminal-paste-accepted.json
+++ b/mobile/rpc-foundation/goldens/terminal-paste-accepted.json
@@ -3,7 +3,7 @@
"family": "session.terminal-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/terminal-paste-refused.json b/mobile/rpc-foundation/goldens/terminal-paste-refused.json
index bfa4c1243a7..03437e393f1 100644
--- a/mobile/rpc-foundation/goldens/terminal-paste-refused.json
+++ b/mobile/rpc-foundation/goldens/terminal-paste-refused.json
@@ -3,7 +3,7 @@
"family": "session.terminal-paste",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/terminal-query-reply-accepted.json b/mobile/rpc-foundation/goldens/terminal-query-reply-accepted.json
index ed59187ec69..bbfe2e5f97a 100644
--- a/mobile/rpc-foundation/goldens/terminal-query-reply-accepted.json
+++ b/mobile/rpc-foundation/goldens/terminal-query-reply-accepted.json
@@ -3,7 +3,7 @@
"family": "terminal.query-reply",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/terminal-query-reply-unsubscribed.json b/mobile/rpc-foundation/goldens/terminal-query-reply-unsubscribed.json
index c1cb734d890..778fe54ab12 100644
--- a/mobile/rpc-foundation/goldens/terminal-query-reply-unsubscribed.json
+++ b/mobile/rpc-foundation/goldens/terminal-query-reply-unsubscribed.json
@@ -3,7 +3,7 @@
"family": "terminal.query-reply",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/terminal-raw-input-refused.json b/mobile/rpc-foundation/goldens/terminal-raw-input-refused.json
index dbf28103ca6..cffb8e0cebb 100644
--- a/mobile/rpc-foundation/goldens/terminal-raw-input-refused.json
+++ b/mobile/rpc-foundation/goldens/terminal-raw-input-refused.json
@@ -3,7 +3,7 @@
"family": "terminal.raw-input",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/terminal-raw-input-reported.json b/mobile/rpc-foundation/goldens/terminal-raw-input-reported.json
index 6f559f0d86b..982e02e225d 100644
--- a/mobile/rpc-foundation/goldens/terminal-raw-input-reported.json
+++ b/mobile/rpc-foundation/goldens/terminal-raw-input-reported.json
@@ -3,7 +3,7 @@
"family": "terminal.raw-input",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/terminal-takeover-report-accepted.json b/mobile/rpc-foundation/goldens/terminal-takeover-report-accepted.json
index 84cd3f18a6c..0016f896946 100644
--- a/mobile/rpc-foundation/goldens/terminal-takeover-report-accepted.json
+++ b/mobile/rpc-foundation/goldens/terminal-takeover-report-accepted.json
@@ -3,7 +3,7 @@
"family": "terminal.takeover-report",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/terminal-takeover-report-retried.json b/mobile/rpc-foundation/goldens/terminal-takeover-report-retried.json
index 618b01659b4..d9b8b3a635f 100644
--- a/mobile/rpc-foundation/goldens/terminal-takeover-report-retried.json
+++ b/mobile/rpc-foundation/goldens/terminal-takeover-report-retried.json
@@ -3,7 +3,7 @@
"family": "terminal.takeover-report",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/terminal-viewport-refit-applied.json b/mobile/rpc-foundation/goldens/terminal-viewport-refit-applied.json
index 8e5a75b6eda..291fc99b141 100644
--- a/mobile/rpc-foundation/goldens/terminal-viewport-refit-applied.json
+++ b/mobile/rpc-foundation/goldens/terminal-viewport-refit-applied.json
@@ -3,7 +3,7 @@
"family": "terminal.viewport-refit",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/terminal-viewport-refit-legacy-desktop.json b/mobile/rpc-foundation/goldens/terminal-viewport-refit-legacy-desktop.json
index e8e22d001f1..36f6d239604 100644
--- a/mobile/rpc-foundation/goldens/terminal-viewport-refit-legacy-desktop.json
+++ b/mobile/rpc-foundation/goldens/terminal-viewport-refit-legacy-desktop.json
@@ -3,7 +3,7 @@
"family": "terminal.viewport-refit",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f",
diff --git a/mobile/rpc-foundation/goldens/terminal-worktree-connection-resolved.json b/mobile/rpc-foundation/goldens/terminal-worktree-connection-resolved.json
index dd2bcf06bc1..a13462a4c1b 100644
--- a/mobile/rpc-foundation/goldens/terminal-worktree-connection-resolved.json
+++ b/mobile/rpc-foundation/goldens/terminal-worktree-connection-resolved.json
@@ -3,7 +3,7 @@
"family": "session.worktree-connection",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86",
diff --git a/mobile/rpc-foundation/goldens/tk-create-github.json b/mobile/rpc-foundation/goldens/tk-create-github.json
index 2a0814e1c1e..056be111f1f 100644
--- a/mobile/rpc-foundation/goldens/tk-create-github.json
+++ b/mobile/rpc-foundation/goldens/tk-create-github.json
@@ -3,7 +3,7 @@
"family": "tasks.task-create-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/tk-create-gitlab.json b/mobile/rpc-foundation/goldens/tk-create-gitlab.json
index 84728f80ac4..f9c781b59cc 100644
--- a/mobile/rpc-foundation/goldens/tk-create-gitlab.json
+++ b/mobile/rpc-foundation/goldens/tk-create-gitlab.json
@@ -3,7 +3,7 @@
"family": "tasks.task-create-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/tk-create-linear.json b/mobile/rpc-foundation/goldens/tk-create-linear.json
index f862b2069a4..3c715ca7b0c 100644
--- a/mobile/rpc-foundation/goldens/tk-create-linear.json
+++ b/mobile/rpc-foundation/goldens/tk-create-linear.json
@@ -3,7 +3,7 @@
"family": "tasks.task-create-linear",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/tk-item-checks-files.json b/mobile/rpc-foundation/goldens/tk-item-checks-files.json
index 37142986100..e4f5ba3a006 100644
--- a/mobile/rpc-foundation/goldens/tk-item-checks-files.json
+++ b/mobile/rpc-foundation/goldens/tk-item-checks-files.json
@@ -3,7 +3,7 @@
"family": "tasks.item-checks-files",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/tk-item-comment-github.json b/mobile/rpc-foundation/goldens/tk-item-comment-github.json
index 63e879d4776..1a3196812ee 100644
--- a/mobile/rpc-foundation/goldens/tk-item-comment-github.json
+++ b/mobile/rpc-foundation/goldens/tk-item-comment-github.json
@@ -3,7 +3,7 @@
"family": "tasks.item-comment-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/tk-item-comment-gitlab-mr.json b/mobile/rpc-foundation/goldens/tk-item-comment-gitlab-mr.json
index 237b9074831..e71ceb122ad 100644
--- a/mobile/rpc-foundation/goldens/tk-item-comment-gitlab-mr.json
+++ b/mobile/rpc-foundation/goldens/tk-item-comment-gitlab-mr.json
@@ -3,7 +3,7 @@
"family": "tasks.item-comment-gitlab-mr",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/tk-item-comment-gitlab.json b/mobile/rpc-foundation/goldens/tk-item-comment-gitlab.json
index 7a4eeef225c..04b99bf80ab 100644
--- a/mobile/rpc-foundation/goldens/tk-item-comment-gitlab.json
+++ b/mobile/rpc-foundation/goldens/tk-item-comment-gitlab.json
@@ -3,7 +3,7 @@
"family": "tasks.item-comment-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/tk-item-detail-github-reactions.json b/mobile/rpc-foundation/goldens/tk-item-detail-github-reactions.json
index f3f6789103e..0edc6709092 100644
--- a/mobile/rpc-foundation/goldens/tk-item-detail-github-reactions.json
+++ b/mobile/rpc-foundation/goldens/tk-item-detail-github-reactions.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783",
diff --git a/mobile/rpc-foundation/goldens/tk-item-detail-github.json b/mobile/rpc-foundation/goldens/tk-item-detail-github.json
index b4a8dab1025..5923ba4bf1f 100644
--- a/mobile/rpc-foundation/goldens/tk-item-detail-github.json
+++ b/mobile/rpc-foundation/goldens/tk-item-detail-github.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783",
diff --git a/mobile/rpc-foundation/goldens/tk-item-detail-gitlab-reactions.json b/mobile/rpc-foundation/goldens/tk-item-detail-gitlab-reactions.json
index ba2eafc1141..2979d93acfb 100644
--- a/mobile/rpc-foundation/goldens/tk-item-detail-gitlab-reactions.json
+++ b/mobile/rpc-foundation/goldens/tk-item-detail-gitlab-reactions.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783",
diff --git a/mobile/rpc-foundation/goldens/tk-item-detail-gitlab.json b/mobile/rpc-foundation/goldens/tk-item-detail-gitlab.json
index 63343def5a0..cc3ff056765 100644
--- a/mobile/rpc-foundation/goldens/tk-item-detail-gitlab.json
+++ b/mobile/rpc-foundation/goldens/tk-item-detail-gitlab.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783",
diff --git a/mobile/rpc-foundation/goldens/tk-item-detail-linear.json b/mobile/rpc-foundation/goldens/tk-item-detail-linear.json
index 95ab430abc1..15e6aba81bd 100644
--- a/mobile/rpc-foundation/goldens/tk-item-detail-linear.json
+++ b/mobile/rpc-foundation/goldens/tk-item-detail-linear.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-linear",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783",
diff --git a/mobile/rpc-foundation/goldens/tk-item-detail-metadata.json b/mobile/rpc-foundation/goldens/tk-item-detail-metadata.json
index 6107483b462..2a499e70032 100644
--- a/mobile/rpc-foundation/goldens/tk-item-detail-metadata.json
+++ b/mobile/rpc-foundation/goldens/tk-item-detail-metadata.json
@@ -3,7 +3,7 @@
"family": "tasks.item-detail-metadata",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06",
diff --git a/mobile/rpc-foundation/goldens/tk-item-merge-gitlab.json b/mobile/rpc-foundation/goldens/tk-item-merge-gitlab.json
index 3cf732738b8..6fd0875b846 100644
--- a/mobile/rpc-foundation/goldens/tk-item-merge-gitlab.json
+++ b/mobile/rpc-foundation/goldens/tk-item-merge-gitlab.json
@@ -3,7 +3,7 @@
"family": "tasks.item-merge-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/tk-item-metadata-github.json b/mobile/rpc-foundation/goldens/tk-item-metadata-github.json
index 3436eaf8dd2..e8d38bbb06e 100644
--- a/mobile/rpc-foundation/goldens/tk-item-metadata-github.json
+++ b/mobile/rpc-foundation/goldens/tk-item-metadata-github.json
@@ -3,7 +3,7 @@
"family": "tasks.item-metadata-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739",
diff --git a/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab-mr.json b/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab-mr.json
index 432b2a45d93..8dff1ae8d34 100644
--- a/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab-mr.json
+++ b/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab-mr.json
@@ -3,7 +3,7 @@
"family": "tasks.item-metadata-gitlab-mr",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739",
diff --git a/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab.json b/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab.json
index 4612780b14b..db660a9866d 100644
--- a/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab.json
+++ b/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab.json
@@ -3,7 +3,7 @@
"family": "tasks.item-metadata-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739",
diff --git a/mobile/rpc-foundation/goldens/tk-item-reply-merge.json b/mobile/rpc-foundation/goldens/tk-item-reply-merge.json
index 45da471c532..fae209129b1 100644
--- a/mobile/rpc-foundation/goldens/tk-item-reply-merge.json
+++ b/mobile/rpc-foundation/goldens/tk-item-reply-merge.json
@@ -3,7 +3,7 @@
"family": "tasks.item-reply-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/tk-item-review-github.json b/mobile/rpc-foundation/goldens/tk-item-review-github.json
index 86a57193aa6..57fd9af7473 100644
--- a/mobile/rpc-foundation/goldens/tk-item-review-github.json
+++ b/mobile/rpc-foundation/goldens/tk-item-review-github.json
@@ -3,7 +3,7 @@
"family": "tasks.item-review-github",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe",
diff --git a/mobile/rpc-foundation/goldens/tk-item-status-gitlab-mr.json b/mobile/rpc-foundation/goldens/tk-item-status-gitlab-mr.json
index 8c17643e3ac..b7cde92e644 100644
--- a/mobile/rpc-foundation/goldens/tk-item-status-gitlab-mr.json
+++ b/mobile/rpc-foundation/goldens/tk-item-status-gitlab-mr.json
@@ -3,7 +3,7 @@
"family": "tasks.item-status-gitlab-mr",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/tk-item-status-gitlab.json b/mobile/rpc-foundation/goldens/tk-item-status-gitlab.json
index 6cc6c89d157..d922a9114b2 100644
--- a/mobile/rpc-foundation/goldens/tk-item-status-gitlab.json
+++ b/mobile/rpc-foundation/goldens/tk-item-status-gitlab.json
@@ -3,7 +3,7 @@
"family": "tasks.item-status-gitlab",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa",
diff --git a/mobile/rpc-foundation/goldens/tk-linear-connect.json b/mobile/rpc-foundation/goldens/tk-linear-connect.json
index c4672b6ec87..6d2936bd9f1 100644
--- a/mobile/rpc-foundation/goldens/tk-linear-connect.json
+++ b/mobile/rpc-foundation/goldens/tk-linear-connect.json
@@ -3,7 +3,7 @@
"family": "tasks.linear-connect",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/tk-linear-item.json b/mobile/rpc-foundation/goldens/tk-linear-item.json
index 69996b58d71..5e9ec14fed4 100644
--- a/mobile/rpc-foundation/goldens/tk-linear-item.json
+++ b/mobile/rpc-foundation/goldens/tk-linear-item.json
@@ -3,7 +3,7 @@
"family": "tasks.linear-item",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739",
diff --git a/mobile/rpc-foundation/goldens/tk-linear-team-context.json b/mobile/rpc-foundation/goldens/tk-linear-team-context.json
index 6d70a279884..e81f0c4226a 100644
--- a/mobile/rpc-foundation/goldens/tk-linear-team-context.json
+++ b/mobile/rpc-foundation/goldens/tk-linear-team-context.json
@@ -3,7 +3,7 @@
"family": "tasks.linear-team-context",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06",
diff --git a/mobile/rpc-foundation/goldens/tk-list-gitlab-items.json b/mobile/rpc-foundation/goldens/tk-list-gitlab-items.json
index 50f6c4f8a9e..b9c4d68ec4e 100644
--- a/mobile/rpc-foundation/goldens/tk-list-gitlab-items.json
+++ b/mobile/rpc-foundation/goldens/tk-list-gitlab-items.json
@@ -3,7 +3,7 @@
"family": "tasks.task-list-gitlab-items",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/tk-list-gitlab-todos.json b/mobile/rpc-foundation/goldens/tk-list-gitlab-todos.json
index 911f89be5c4..16a274f76c7 100644
--- a/mobile/rpc-foundation/goldens/tk-list-gitlab-todos.json
+++ b/mobile/rpc-foundation/goldens/tk-list-gitlab-todos.json
@@ -3,7 +3,7 @@
"family": "tasks.task-list-gitlab-todos",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/tk-list-linear.json b/mobile/rpc-foundation/goldens/tk-list-linear.json
index 2b2082832fc..5d0ff05f9e3 100644
--- a/mobile/rpc-foundation/goldens/tk-list-linear.json
+++ b/mobile/rpc-foundation/goldens/tk-list-linear.json
@@ -3,7 +3,7 @@
"family": "tasks.task-list-linear",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/tk-project-board-load.json b/mobile/rpc-foundation/goldens/tk-project-board-load.json
index d71136bc311..ed74988dcdd 100644
--- a/mobile/rpc-foundation/goldens/tk-project-board-load.json
+++ b/mobile/rpc-foundation/goldens/tk-project-board-load.json
@@ -3,7 +3,7 @@
"family": "tasks.project-board-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371",
diff --git a/mobile/rpc-foundation/goldens/tk-project-repo-slugs.json b/mobile/rpc-foundation/goldens/tk-project-repo-slugs.json
index b0f0caaa60a..45fae56b77c 100644
--- a/mobile/rpc-foundation/goldens/tk-project-repo-slugs.json
+++ b/mobile/rpc-foundation/goldens/tk-project-repo-slugs.json
@@ -3,7 +3,7 @@
"family": "tasks.project-repo-slugs",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371",
diff --git a/mobile/rpc-foundation/goldens/tk-project-row-comments-issue.json b/mobile/rpc-foundation/goldens/tk-project-row-comments-issue.json
index 6dae58f6c42..f7e9f7c3ee0 100644
--- a/mobile/rpc-foundation/goldens/tk-project-row-comments-issue.json
+++ b/mobile/rpc-foundation/goldens/tk-project-row-comments-issue.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-comments-issue",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/tk-project-row-comments-pr.json b/mobile/rpc-foundation/goldens/tk-project-row-comments-pr.json
index 8c57208f6c2..690f9b33360 100644
--- a/mobile/rpc-foundation/goldens/tk-project-row-comments-pr.json
+++ b/mobile/rpc-foundation/goldens/tk-project-row-comments-pr.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-comments-pr",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/tk-project-row-detail.json b/mobile/rpc-foundation/goldens/tk-project-row-detail.json
index 91caf6cbbaf..49e5913b0f9 100644
--- a/mobile/rpc-foundation/goldens/tk-project-row-detail.json
+++ b/mobile/rpc-foundation/goldens/tk-project-row-detail.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-detail",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6",
diff --git a/mobile/rpc-foundation/goldens/tk-project-row-fields.json b/mobile/rpc-foundation/goldens/tk-project-row-fields.json
index 00ee513d05e..a3bb0476de5 100644
--- a/mobile/rpc-foundation/goldens/tk-project-row-fields.json
+++ b/mobile/rpc-foundation/goldens/tk-project-row-fields.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-fields",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889",
diff --git a/mobile/rpc-foundation/goldens/tk-project-row-files-merge.json b/mobile/rpc-foundation/goldens/tk-project-row-files-merge.json
index 3fdf6e0d389..018c5975f31 100644
--- a/mobile/rpc-foundation/goldens/tk-project-row-files-merge.json
+++ b/mobile/rpc-foundation/goldens/tk-project-row-files-merge.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-files-merge",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9",
diff --git a/mobile/rpc-foundation/goldens/tk-project-row-metadata-load.json b/mobile/rpc-foundation/goldens/tk-project-row-metadata-load.json
index b816e75c56f..94b92d97f50 100644
--- a/mobile/rpc-foundation/goldens/tk-project-row-metadata-load.json
+++ b/mobile/rpc-foundation/goldens/tk-project-row-metadata-load.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-metadata-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6",
diff --git a/mobile/rpc-foundation/goldens/tk-project-row-review-checks.json b/mobile/rpc-foundation/goldens/tk-project-row-review-checks.json
index 7600a0022bc..7c2627b8619 100644
--- a/mobile/rpc-foundation/goldens/tk-project-row-review-checks.json
+++ b/mobile/rpc-foundation/goldens/tk-project-row-review-checks.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-review-checks",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889",
diff --git a/mobile/rpc-foundation/goldens/tk-project-row-threads.json b/mobile/rpc-foundation/goldens/tk-project-row-threads.json
index cd4304bd421..a6a234eea3b 100644
--- a/mobile/rpc-foundation/goldens/tk-project-row-threads.json
+++ b/mobile/rpc-foundation/goldens/tk-project-row-threads.json
@@ -3,7 +3,7 @@
"family": "tasks.project-row-threads",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1",
diff --git a/mobile/rpc-foundation/goldens/tk-provider-load.json b/mobile/rpc-foundation/goldens/tk-provider-load.json
index d8f207d1e63..c60c07a063c 100644
--- a/mobile/rpc-foundation/goldens/tk-provider-load.json
+++ b/mobile/rpc-foundation/goldens/tk-provider-load.json
@@ -3,7 +3,7 @@
"family": "tasks.provider-load",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8",
diff --git a/mobile/rpc-foundation/goldens/transport-capability-probe-cutover-reasks-fast.json b/mobile/rpc-foundation/goldens/transport-capability-probe-cutover-reasks-fast.json
index 41b96600cee..d18e4f70910 100644
--- a/mobile/rpc-foundation/goldens/transport-capability-probe-cutover-reasks-fast.json
+++ b/mobile/rpc-foundation/goldens/transport-capability-probe-cutover-reasks-fast.json
@@ -3,7 +3,7 @@
"family": "transport.capability-probe",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/transport-capability-probe-non-string-capabilities-drop.json b/mobile/rpc-foundation/goldens/transport-capability-probe-non-string-capabilities-drop.json
index e17b7da25d7..ab1afc2965d 100644
--- a/mobile/rpc-foundation/goldens/transport-capability-probe-non-string-capabilities-drop.json
+++ b/mobile/rpc-foundation/goldens/transport-capability-probe-non-string-capabilities-drop.json
@@ -3,7 +3,7 @@
"family": "transport.capability-probe",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/transport-capability-probe-publishes.json b/mobile/rpc-foundation/goldens/transport-capability-probe-publishes.json
index ccb11d7defa..6d31cb48ba9 100644
--- a/mobile/rpc-foundation/goldens/transport-capability-probe-publishes.json
+++ b/mobile/rpc-foundation/goldens/transport-capability-probe-publishes.json
@@ -3,7 +3,7 @@
"family": "transport.capability-probe",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/transport-capability-probe-refused-backs-off.json b/mobile/rpc-foundation/goldens/transport-capability-probe-refused-backs-off.json
index 9973098d83b..bf4ebf9a20b 100644
--- a/mobile/rpc-foundation/goldens/transport-capability-probe-refused-backs-off.json
+++ b/mobile/rpc-foundation/goldens/transport-capability-probe-refused-backs-off.json
@@ -3,7 +3,7 @@
"family": "transport.capability-probe",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/transport-host-status-gates-drop-keeps-capabilities.json b/mobile/rpc-foundation/goldens/transport-host-status-gates-drop-keeps-capabilities.json
index f6228aa6d39..3787c1d6c15 100644
--- a/mobile/rpc-foundation/goldens/transport-host-status-gates-drop-keeps-capabilities.json
+++ b/mobile/rpc-foundation/goldens/transport-host-status-gates-drop-keeps-capabilities.json
@@ -3,7 +3,7 @@
"family": "transport.host-status-gates",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/transport-host-status-gates-ready.json b/mobile/rpc-foundation/goldens/transport-host-status-gates-ready.json
index 1098546f302..f6b7263c5b4 100644
--- a/mobile/rpc-foundation/goldens/transport-host-status-gates-ready.json
+++ b/mobile/rpc-foundation/goldens/transport-host-status-gates-ready.json
@@ -3,7 +3,7 @@
"family": "transport.host-status-gates",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/transport-host-status-gates-refused-degrades.json b/mobile/rpc-foundation/goldens/transport-host-status-gates-refused-degrades.json
index 930dc2b649e..dac18e8dfee 100644
--- a/mobile/rpc-foundation/goldens/transport-host-status-gates-refused-degrades.json
+++ b/mobile/rpc-foundation/goldens/transport-host-status-gates-refused-degrades.json
@@ -3,7 +3,7 @@
"family": "transport.host-status-gates",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/transport-pairing-race-both-refused.json b/mobile/rpc-foundation/goldens/transport-pairing-race-both-refused.json
index f82d2e20f3e..7cd051f2b0b 100644
--- a/mobile/rpc-foundation/goldens/transport-pairing-race-both-refused.json
+++ b/mobile/rpc-foundation/goldens/transport-pairing-race-both-refused.json
@@ -3,7 +3,7 @@
"family": "transport.pairing-race",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/transport-pairing-race-direct-completes-first.json b/mobile/rpc-foundation/goldens/transport-pairing-race-direct-completes-first.json
index 418a0c0fc3a..d46784c8394 100644
--- a/mobile/rpc-foundation/goldens/transport-pairing-race-direct-completes-first.json
+++ b/mobile/rpc-foundation/goldens/transport-pairing-race-direct-completes-first.json
@@ -3,7 +3,7 @@
"family": "transport.pairing-race",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/transport-pairing-race-relay-completes-first.json b/mobile/rpc-foundation/goldens/transport-pairing-race-relay-completes-first.json
index 569ff29db55..fe52b9266b1 100644
--- a/mobile/rpc-foundation/goldens/transport-pairing-race-relay-completes-first.json
+++ b/mobile/rpc-foundation/goldens/transport-pairing-race-relay-completes-first.json
@@ -3,7 +3,7 @@
"family": "transport.pairing-race",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/transport-pairing-race-relay-wins-when-direct-refused.json b/mobile/rpc-foundation/goldens/transport-pairing-race-relay-wins-when-direct-refused.json
index 9690faa2958..8198d6343ae 100644
--- a/mobile/rpc-foundation/goldens/transport-pairing-race-relay-wins-when-direct-refused.json
+++ b/mobile/rpc-foundation/goldens/transport-pairing-race-relay-wins-when-direct-refused.json
@@ -3,7 +3,7 @@
"family": "transport.pairing-race",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1",
diff --git a/mobile/rpc-foundation/goldens/tw-capabilities-advertised.json b/mobile/rpc-foundation/goldens/tw-capabilities-advertised.json
index 83567614693..980e2d18517 100644
--- a/mobile/rpc-foundation/goldens/tw-capabilities-advertised.json
+++ b/mobile/rpc-foundation/goldens/tw-capabilities-advertised.json
@@ -3,7 +3,7 @@
"family": "worktree.runtime-capabilities",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-capabilities-cutover-retried.json b/mobile/rpc-foundation/goldens/tw-capabilities-cutover-retried.json
index b722a090a3e..0bb5e8c6291 100644
--- a/mobile/rpc-foundation/goldens/tw-capabilities-cutover-retried.json
+++ b/mobile/rpc-foundation/goldens/tw-capabilities-cutover-retried.json
@@ -3,7 +3,7 @@
"family": "worktree.runtime-capabilities",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-capabilities-legacy-idempotency.json b/mobile/rpc-foundation/goldens/tw-capabilities-legacy-idempotency.json
index 478282271e1..cd2e6851aa8 100644
--- a/mobile/rpc-foundation/goldens/tw-capabilities-legacy-idempotency.json
+++ b/mobile/rpc-foundation/goldens/tw-capabilities-legacy-idempotency.json
@@ -3,7 +3,7 @@
"family": "worktree.runtime-capabilities",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-create-retry-agent-launched.json b/mobile/rpc-foundation/goldens/tw-create-retry-agent-launched.json
index 87bbe7231d7..ec9f4ca6a09 100644
--- a/mobile/rpc-foundation/goldens/tw-create-retry-agent-launched.json
+++ b/mobile/rpc-foundation/goldens/tw-create-retry-agent-launched.json
@@ -3,7 +3,7 @@
"family": "worktree.agent-launch-create",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-after-drop.json b/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-after-drop.json
index b86c462a1d6..64329f03ba6 100644
--- a/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-after-drop.json
+++ b/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-after-drop.json
@@ -3,7 +3,7 @@
"family": "worktree.create-retry",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-while-connected.json b/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-while-connected.json
index 7d55c225237..f94b3aa50b7 100644
--- a/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-while-connected.json
+++ b/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-while-connected.json
@@ -3,7 +3,7 @@
"family": "worktree.create-retry",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-without-idempotency.json b/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-without-idempotency.json
index aed969a315d..cea4816faab 100644
--- a/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-without-idempotency.json
+++ b/mobile/rpc-foundation/goldens/tw-create-retry-ambiguous-without-idempotency.json
@@ -3,7 +3,7 @@
"family": "worktree.create-retry",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-create-retry-created.json b/mobile/rpc-foundation/goldens/tw-create-retry-created.json
index 4c34a3bb8b5..2ad976ac03d 100644
--- a/mobile/rpc-foundation/goldens/tw-create-retry-created.json
+++ b/mobile/rpc-foundation/goldens/tw-create-retry-created.json
@@ -3,7 +3,7 @@
"family": "worktree.create-retry",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-create-retry-name-collision.json b/mobile/rpc-foundation/goldens/tw-create-retry-name-collision.json
index 449100e75af..d56fb59f848 100644
--- a/mobile/rpc-foundation/goldens/tw-create-retry-name-collision.json
+++ b/mobile/rpc-foundation/goldens/tw-create-retry-name-collision.json
@@ -3,7 +3,7 @@
"family": "worktree.create-retry",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-create-retry-unretryable-refusal.json b/mobile/rpc-foundation/goldens/tw-create-retry-unretryable-refusal.json
index 34ba2993608..bdf3a62334d 100644
--- a/mobile/rpc-foundation/goldens/tw-create-retry-unretryable-refusal.json
+++ b/mobile/rpc-foundation/goldens/tw-create-retry-unretryable-refusal.json
@@ -3,7 +3,7 @@
"family": "worktree.create-retry",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-create-retry-warning-kept.json b/mobile/rpc-foundation/goldens/tw-create-retry-warning-kept.json
index f1421d9e34d..47d93d1fffa 100644
--- a/mobile/rpc-foundation/goldens/tw-create-retry-warning-kept.json
+++ b/mobile/rpc-foundation/goldens/tw-create-retry-warning-kept.json
@@ -3,7 +3,7 @@
"family": "worktree.create-retry",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-hosted-base-resolved.json b/mobile/rpc-foundation/goldens/tw-hosted-base-resolved.json
index a947b6f2c01..c67998503f3 100644
--- a/mobile/rpc-foundation/goldens/tw-hosted-base-resolved.json
+++ b/mobile/rpc-foundation/goldens/tw-hosted-base-resolved.json
@@ -3,7 +3,7 @@
"family": "worktree.hosted-base",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-hosted-base-soft-error.json b/mobile/rpc-foundation/goldens/tw-hosted-base-soft-error.json
index f7f83c67e4e..28f32fd2b42 100644
--- a/mobile/rpc-foundation/goldens/tw-hosted-base-soft-error.json
+++ b/mobile/rpc-foundation/goldens/tw-hosted-base-soft-error.json
@@ -3,7 +3,7 @@
"family": "worktree.hosted-base",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-paste-lookup-resolved.json b/mobile/rpc-foundation/goldens/tw-paste-lookup-resolved.json
index ae83198ee1d..3cd6698ae60 100644
--- a/mobile/rpc-foundation/goldens/tw-paste-lookup-resolved.json
+++ b/mobile/rpc-foundation/goldens/tw-paste-lookup-resolved.json
@@ -3,7 +3,7 @@
"family": "tasks.paste-lookup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-refused.json b/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-refused.json
index 0af00ef5423..a1ae250a957 100644
--- a/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-refused.json
+++ b/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-refused.json
@@ -3,7 +3,7 @@
"family": "tasks.paste-lookup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-unsupported.json b/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-unsupported.json
index a3590aaea5f..bdbb6ef710f 100644
--- a/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-unsupported.json
+++ b/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-unsupported.json
@@ -3,7 +3,7 @@
"family": "tasks.paste-lookup",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-setup-hook-trust-always.json b/mobile/rpc-foundation/goldens/tw-setup-hook-trust-always.json
index d2d74e6fcdd..2b52b990d95 100644
--- a/mobile/rpc-foundation/goldens/tw-setup-hook-trust-always.json
+++ b/mobile/rpc-foundation/goldens/tw-setup-hook-trust-always.json
@@ -3,7 +3,7 @@
"family": "worktree.setup-hook-trust",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-setup-hook-trust-approved.json b/mobile/rpc-foundation/goldens/tw-setup-hook-trust-approved.json
index 24e83143bc4..acb19a7c0cf 100644
--- a/mobile/rpc-foundation/goldens/tw-setup-hook-trust-approved.json
+++ b/mobile/rpc-foundation/goldens/tw-setup-hook-trust-approved.json
@@ -3,7 +3,7 @@
"family": "worktree.setup-hook-trust",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-smart-search-all-providers.json b/mobile/rpc-foundation/goldens/tw-smart-search-all-providers.json
index 04b03ae97f8..9e35e07e804 100644
--- a/mobile/rpc-foundation/goldens/tw-smart-search-all-providers.json
+++ b/mobile/rpc-foundation/goldens/tw-smart-search-all-providers.json
@@ -3,7 +3,7 @@
"family": "tasks.smart-source-search",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-smart-search-gitlab-provider-error.json b/mobile/rpc-foundation/goldens/tw-smart-search-gitlab-provider-error.json
index 99094e1049d..7bdd56a1f96 100644
--- a/mobile/rpc-foundation/goldens/tw-smart-search-gitlab-provider-error.json
+++ b/mobile/rpc-foundation/goldens/tw-smart-search-gitlab-provider-error.json
@@ -3,7 +3,7 @@
"family": "tasks.smart-source-search",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-smart-search-linear-listed.json b/mobile/rpc-foundation/goldens/tw-smart-search-linear-listed.json
index d2e7c7b2e6a..6d94a4e7b96 100644
--- a/mobile/rpc-foundation/goldens/tw-smart-search-linear-listed.json
+++ b/mobile/rpc-foundation/goldens/tw-smart-search-linear-listed.json
@@ -3,7 +3,7 @@
"family": "tasks.smart-source-search",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "52a76b7a830b32287bce14abbe1b9d9ac70e71eafe5b4c6801c2eb14a4150125",
diff --git a/mobile/rpc-foundation/goldens/tw-task-preferences-resume-write.json b/mobile/rpc-foundation/goldens/tw-task-preferences-resume-write.json
index 4141740d89b..779c8c60a1a 100644
--- a/mobile/rpc-foundation/goldens/tw-task-preferences-resume-write.json
+++ b/mobile/rpc-foundation/goldens/tw-task-preferences-resume-write.json
@@ -3,7 +3,7 @@
"family": "settings-best-effort",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab",
diff --git a/mobile/rpc-foundation/goldens/tw-workspace-source-presets-refused.json b/mobile/rpc-foundation/goldens/tw-workspace-source-presets-refused.json
index f166b24b29f..d2cb946fd8d 100644
--- a/mobile/rpc-foundation/goldens/tw-workspace-source-presets-refused.json
+++ b/mobile/rpc-foundation/goldens/tw-workspace-source-presets-refused.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-source",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/tw-workspace-source-presets.json b/mobile/rpc-foundation/goldens/tw-workspace-source-presets.json
index 916d9173fe7..6cbe4aaa513 100644
--- a/mobile/rpc-foundation/goldens/tw-workspace-source-presets.json
+++ b/mobile/rpc-foundation/goldens/tw-workspace-source-presets.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-source",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/tw-workspace-sparse-missing-preset.json b/mobile/rpc-foundation/goldens/tw-workspace-sparse-missing-preset.json
index fc0946adf48..4d90a6fac9c 100644
--- a/mobile/rpc-foundation/goldens/tw-workspace-sparse-missing-preset.json
+++ b/mobile/rpc-foundation/goldens/tw-workspace-sparse-missing-preset.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-sparse",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/tw-workspace-sparse-saved.json b/mobile/rpc-foundation/goldens/tw-workspace-sparse-saved.json
index cd0132408a7..1fcaf981e87 100644
--- a/mobile/rpc-foundation/goldens/tw-workspace-sparse-saved.json
+++ b/mobile/rpc-foundation/goldens/tw-workspace-sparse-saved.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-sparse",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/tw-workspace-ssh-connect-refused.json b/mobile/rpc-foundation/goldens/tw-workspace-ssh-connect-refused.json
index 5ec47581ea0..10d5cf3612c 100644
--- a/mobile/rpc-foundation/goldens/tw-workspace-ssh-connect-refused.json
+++ b/mobile/rpc-foundation/goldens/tw-workspace-ssh-connect-refused.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-ssh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/tw-workspace-ssh-connected.json b/mobile/rpc-foundation/goldens/tw-workspace-ssh-connected.json
index d06a8840782..2013e441497 100644
--- a/mobile/rpc-foundation/goldens/tw-workspace-ssh-connected.json
+++ b/mobile/rpc-foundation/goldens/tw-workspace-ssh-connected.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-ssh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/tw-workspace-ssh-local-agents.json b/mobile/rpc-foundation/goldens/tw-workspace-ssh-local-agents.json
index b6549b4de43..41f0d873dd2 100644
--- a/mobile/rpc-foundation/goldens/tw-workspace-ssh-local-agents.json
+++ b/mobile/rpc-foundation/goldens/tw-workspace-ssh-local-agents.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-ssh-local",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/tw-workspace-ssh-not-ready.json b/mobile/rpc-foundation/goldens/tw-workspace-ssh-not-ready.json
index 8fef89f1f38..5e33d63d533 100644
--- a/mobile/rpc-foundation/goldens/tw-workspace-ssh-not-ready.json
+++ b/mobile/rpc-foundation/goldens/tw-workspace-ssh-not-ready.json
@@ -3,7 +3,7 @@
"family": "tasks.workspace-ssh",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979",
diff --git a/mobile/rpc-foundation/goldens/worktree-catalog-snapshot-unreadable.json b/mobile/rpc-foundation/goldens/worktree-catalog-snapshot-unreadable.json
index e802de2174a..01a477cc887 100644
--- a/mobile/rpc-foundation/goldens/worktree-catalog-snapshot-unreadable.json
+++ b/mobile/rpc-foundation/goldens/worktree-catalog-snapshot-unreadable.json
@@ -3,7 +3,7 @@
"family": "worktree.catalog-snapshot",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e",
diff --git a/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json b/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json
index e6308ed49ce..295ddfad359 100644
--- a/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json
+++ b/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json
@@ -3,7 +3,7 @@
"family": "worktree.catalog-snapshot",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e",
diff --git a/mobile/rpc-foundation/goldens/worktree-home-catalog.json b/mobile/rpc-foundation/goldens/worktree-home-catalog.json
index b76556bb76f..efeba0e1e19 100644
--- a/mobile/rpc-foundation/goldens/worktree-home-catalog.json
+++ b/mobile/rpc-foundation/goldens/worktree-home-catalog.json
@@ -3,7 +3,7 @@
"family": "worktree.home-catalog",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e",
diff --git a/mobile/rpc-foundation/goldens/worktree-retired-names.json b/mobile/rpc-foundation/goldens/worktree-retired-names.json
index 24730723968..562e03f3840 100644
--- a/mobile/rpc-foundation/goldens/worktree-retired-names.json
+++ b/mobile/rpc-foundation/goldens/worktree-retired-names.json
@@ -3,7 +3,7 @@
"family": "worktree.retired-names",
"namedDeltas": [],
"runnerVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"lockfileSha256": "4568633356187895ccda8e2ff83245c37d5621832c69e268733733b6947971e3",
"recorderSha256": "1d8cf6624653d15b5b32bd2871d4d93739d4092a06f10dab24a795702422bb31",
"adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e",
diff --git a/mobile/rpc-foundation/pilot-scenarios.json b/mobile/rpc-foundation/pilot-scenarios.json
index c0fa900c8d7..db5a78e7eab 100644
--- a/mobile/rpc-foundation/pilot-scenarios.json
+++ b/mobile/rpc-foundation/pilot-scenarios.json
@@ -1,6 +1,6 @@
{
"schemaVersion": 1,
- "baseline": "4a86b2dc565dea05491573afdbff17d6217806d5",
+ "baseline": "5741d48e592dad21660d995a3758319413a4baf0",
"scenarios": [
{
"id": "b1",
@@ -23280,6 +23280,333 @@
"checkpoint": "served"
}
]
+ },
+ {
+ "id": "mobile-web-bundle-manifest-read",
+ "operation": "mobileWeb.bundle-manifest",
+ "version": 1,
+ "family": "mobileWeb.bundle-manifest",
+ "sites": ["mobile/src/transport/mobile-web-bundle-operations.ts"],
+ "schedules": [],
+ "steps": [
+ {
+ "action": "read",
+ "id": "read"
+ },
+ {
+ "complete": "mobileWeb.bundle.manifest#1",
+ "params": null,
+ "reply": {
+ "ok": true,
+ "result": {
+ "manifest": {
+ "schemaVersion": 1,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "entrypoint": "index.html",
+ "totalBytes": 37,
+ "assets": [
+ {
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d",
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8"
+ },
+ {
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e",
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8"
+ }
+ ]
+ },
+ "chunkBytes": 16
+ }
+ }
+ },
+ {
+ "checkpoint": "manifest-read"
+ }
+ ]
+ },
+ {
+ "id": "mobile-web-bundle-fetch-paged",
+ "operation": "mobileWeb.bundle-fetch",
+ "version": 1,
+ "family": "mobileWeb.bundle-fetch",
+ "sites": [
+ "mobile/src/transport/mobile-web-bundle-fetch.ts",
+ "mobile/src/diagnostics/use-mobile-web-bundle-probe.ts"
+ ],
+ "schedules": [],
+ "steps": [
+ {
+ "action": "fetch",
+ "id": "fetch"
+ },
+ {
+ "complete": "mobileWeb.bundle.manifest#1",
+ "params": null,
+ "reply": {
+ "ok": true,
+ "result": {
+ "manifest": {
+ "schemaVersion": 1,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "entrypoint": "index.html",
+ "totalBytes": 37,
+ "assets": [
+ {
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d",
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8"
+ },
+ {
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e",
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8"
+ }
+ ]
+ },
+ "chunkBytes": 16
+ }
+ }
+ },
+ {
+ "bind": "app-js",
+ "request": "mobileWeb.bundle.chunk#1",
+ "params": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "assets/app.js",
+ "offset": 0
+ }
+ },
+ {
+ "bind": "index-head",
+ "request": "mobileWeb.bundle.chunk#2",
+ "params": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "index.html",
+ "offset": 0
+ }
+ },
+ {
+ "complete": "app-js",
+ "params": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "assets/app.js",
+ "offset": 0
+ },
+ "reply": {
+ "ok": true,
+ "result": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "assets/app.js",
+ "offset": 0,
+ "assetByteLength": 11,
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d",
+ "dataBase64": "b3JjYS5ib290KCk=",
+ "eof": true
+ }
+ }
+ },
+ {
+ "complete": "index-head",
+ "params": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "index.html",
+ "offset": 0
+ },
+ "reply": {
+ "ok": true,
+ "result": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "index.html",
+ "offset": 0,
+ "assetByteLength": 26,
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e",
+ "dataBase64": "PCFkb2N0eXBlIGh0bWw+PA==",
+ "eof": false
+ }
+ }
+ },
+ {
+ "bind": "index-tail",
+ "request": "mobileWeb.bundle.chunk#3",
+ "params": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "index.html",
+ "offset": 16
+ }
+ },
+ {
+ "complete": "index-tail",
+ "params": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "index.html",
+ "offset": 16
+ },
+ "reply": {
+ "ok": true,
+ "result": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "index.html",
+ "offset": 16,
+ "assetByteLength": 26,
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e",
+ "dataBase64": "cD5vcmNhPC9wPg==",
+ "eof": true
+ }
+ }
+ },
+ {
+ "checkpoint": "bundle-fetched"
+ }
+ ]
+ },
+ {
+ "id": "mobile-web-bundle-unavailable",
+ "operation": "mobileWeb.bundle-fetch",
+ "version": 1,
+ "family": "mobileWeb.bundle-fetch",
+ "sites": [
+ "mobile/src/transport/mobile-web-bundle-fetch.ts",
+ "mobile/src/diagnostics/use-mobile-web-bundle-probe.ts"
+ ],
+ "schedules": [],
+ "steps": [
+ {
+ "action": "fetch",
+ "id": "fetch"
+ },
+ {
+ "complete": "mobileWeb.bundle.manifest#1",
+ "params": null,
+ "reply": {
+ "ok": false,
+ "error": {
+ "code": "invalid_argument",
+ "message": "mobile_web_bundle_unavailable"
+ }
+ }
+ },
+ {
+ "checkpoint": "bundle-unavailable"
+ }
+ ]
+ },
+ {
+ "id": "mobile-web-bundle-build-changed",
+ "operation": "mobileWeb.bundle-fetch",
+ "version": 1,
+ "family": "mobileWeb.bundle-fetch",
+ "sites": [
+ "mobile/src/transport/mobile-web-bundle-fetch.ts",
+ "mobile/src/diagnostics/use-mobile-web-bundle-probe.ts"
+ ],
+ "schedules": [],
+ "steps": [
+ {
+ "action": "fetch",
+ "id": "fetch"
+ },
+ {
+ "complete": "mobileWeb.bundle.manifest#1",
+ "params": null,
+ "reply": {
+ "ok": true,
+ "result": {
+ "manifest": {
+ "schemaVersion": 1,
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "desktopVersion": "1.4.201",
+ "minCompatibleRuntimeProtocolVersion": 2,
+ "runtimeProtocolVersion": 2,
+ "entrypoint": "index.html",
+ "totalBytes": 37,
+ "assets": [
+ {
+ "path": "assets/app.js",
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d",
+ "byteLength": 11,
+ "contentType": "text/javascript; charset=utf-8"
+ },
+ {
+ "path": "index.html",
+ "sha256": "483f915496f213c851665840f49b69e05b7a6bf70ec9d6939a831b15d298f31e",
+ "byteLength": 26,
+ "contentType": "text/html; charset=utf-8"
+ }
+ ]
+ },
+ "chunkBytes": 16
+ }
+ }
+ },
+ {
+ "bind": "app-js",
+ "request": "mobileWeb.bundle.chunk#1",
+ "params": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "assets/app.js",
+ "offset": 0
+ }
+ },
+ {
+ "bind": "index-head",
+ "request": "mobileWeb.bundle.chunk#2",
+ "params": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "index.html",
+ "offset": 0
+ }
+ },
+ {
+ "complete": "app-js",
+ "params": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "assets/app.js",
+ "offset": 0
+ },
+ "reply": {
+ "ok": true,
+ "result": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "assets/app.js",
+ "offset": 0,
+ "assetByteLength": 11,
+ "sha256": "e99170780c392398db81fbb3dcaebc1a2c8264d4d8a9cd5932887e9c7206dc3d",
+ "dataBase64": "b3JjYS5ib290KCk=",
+ "eof": true
+ }
+ }
+ },
+ {
+ "complete": "index-head",
+ "params": {
+ "buildId": "973c008f6baf56072d8d3d41f451e005257b59026401473543ce96e81c5aa177",
+ "path": "index.html",
+ "offset": 0
+ },
+ "reply": {
+ "ok": false,
+ "error": {
+ "code": "invalid_argument",
+ "message": "mobile_web_bundle_build_changed"
+ }
+ }
+ },
+ {
+ "checkpoint": "bundle-build-changed"
+ }
+ ]
}
]
}
diff --git a/mobile/src/diagnostics/mobile-web-bundle-probe-row.tsx b/mobile/src/diagnostics/mobile-web-bundle-probe-row.tsx
new file mode 100644
index 00000000000..06a1db2efcb
--- /dev/null
+++ b/mobile/src/diagnostics/mobile-web-bundle-probe-row.tsx
@@ -0,0 +1,106 @@
+import { useEffect, useState } from 'react'
+import { View, Text, Pressable, ActivityIndicator } from 'react-native'
+import { Package } from 'lucide-react-native'
+import { loadHosts } from '../transport/host-store'
+import { colors } from '../theme/mobile-theme'
+import { troubleshootScreenStyles as styles } from './troubleshoot-screen-styles'
+import {
+ useMobileWebBundleProbe,
+ type MobileWebBundleProbeState
+} from './use-mobile-web-bundle-probe'
+import type { HostProfile } from '../transport/types'
+
+/** Dialling the host is part of the tap, so the label says which half is still running. */
+function buttonLabel(state: MobileWebBundleProbeState, awaitingHost: boolean): string {
+ if (state.status !== 'running') {
+ return 'Fetch mobile web bundle'
+ }
+ return awaitingHost ? 'Connecting…' : 'Fetching bundle…'
+}
+
+/** One `label — detail` line in the same row shape the diagnostic checks use. */
+function ProbeLine({ label, detail, failed }: { label: string; detail: string; failed?: boolean }) {
+ return (
+
+ {label}
+ {detail}
+
+ )
+}
+
+function ProbeResult({ state, hostName }: { state: MobileWebBundleProbeState; hostName: string }) {
+ if (state.status === 'idle' || state.status === 'running') {
+ return null
+ }
+ if (state.status === 'failed') {
+ return (
+
+
+
+ )
+ }
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+/**
+ * Development-only: fetches the whole mobile web bundle from a paired desktop and reports what came
+ * back. Phase A ships no production path that renders a bundle, and this row is the only thing that
+ * exercises the operations end to end on a device.
+ *
+ * `app/troubleshoot.tsx` mounts it behind `__DEV__`, so a shipped build never runs the host lookup.
+ *
+ * The screen carries no host parameter and troubleshoots every paired host, one reachability check
+ * each, so there is no host it is "on". The probe takes the first paired host and names it in the
+ * result rather than implying it speaks for all of them.
+ */
+export function MobileWebBundleProbeRow() {
+ const [hosts, setHosts] = useState([])
+ useEffect(() => {
+ let stale = false
+ void loadHosts().then((loaded) => {
+ if (!stale) {
+ setHosts(loaded)
+ }
+ })
+ return () => {
+ stale = true
+ }
+ }, [])
+ const host = hosts[0] ?? null
+ const { state, run, awaitingHost } = useMobileWebBundleProbe(host?.id ?? null)
+
+ return (
+
+ [
+ styles.diagnosticButton,
+ pressed && styles.diagnosticButtonPressed,
+ state.status === 'running' && styles.diagnosticButtonDisabled
+ ]}
+ testID="mobile-web-bundle-probe"
+ onPress={run}
+ disabled={state.status === 'running'}
+ >
+ {state.status === 'running' ? (
+
+ ) : (
+
+ )}
+ {buttonLabel(state, awaitingHost)}
+
+
+
+ )
+}
diff --git a/mobile/src/diagnostics/troubleshoot-view.tsx b/mobile/src/diagnostics/troubleshoot-view.tsx
index 0fd86605f13..8655ddbce4c 100644
--- a/mobile/src/diagnostics/troubleshoot-view.tsx
+++ b/mobile/src/diagnostics/troubleshoot-view.tsx
@@ -1,4 +1,4 @@
-import { useCallback, useState } from 'react'
+import { useCallback, useState, type ReactNode } from 'react'
import { View, Text, Pressable, ScrollView, ActivityIndicator } from 'react-native'
import { useSafeAreaInsets } from 'react-native-safe-area-context'
import {
@@ -39,7 +39,8 @@ export function TroubleshootView({
checks,
runDiagnostics,
onBack,
- onConnectionLog
+ onConnectionLog,
+ developerRow
}: {
rootRef?: (node: View | null) => void
diagnosticStatus: DiagnosticStatus
@@ -47,6 +48,8 @@ export function TroubleshootView({
runDiagnostics: () => void
onBack: () => void
onConnectionLog: () => void
+ /** Slot the route fills only under `__DEV__`; null in every shipped build. */
+ developerRow?: ReactNode
}) {
const insets = useSafeAreaInsets()
const [expandedId, setExpandedId] = useState(null)
@@ -108,6 +111,8 @@ export function TroubleshootView({
View network diagnostics
+ {developerRow}
+
{checks.length > 0 && (
{checks.map((check, i) => (
diff --git a/mobile/src/diagnostics/use-mobile-web-bundle-probe.test.tsx b/mobile/src/diagnostics/use-mobile-web-bundle-probe.test.tsx
new file mode 100644
index 00000000000..e339d6125de
--- /dev/null
+++ b/mobile/src/diagnostics/use-mobile-web-bundle-probe.test.tsx
@@ -0,0 +1,305 @@
+import { createElement } from 'react'
+import { act, create, type ReactTestRenderer } from 'react-test-renderer'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import type { RpcClient } from '../transport/rpc-client'
+import type { MobileWebBundleFetchResult } from '../transport/mobile-web-bundle-fetch'
+
+const push = vi.hoisted(() => ({ attach: vi.fn(), detach: vi.fn() }))
+vi.mock('../notifications/push-registration', () => ({ attachPushRegistration: push.attach }))
+
+const connectMock = vi.hoisted(() => vi.fn())
+const loadHostsMock = vi.hoisted(() => vi.fn())
+const fetchMock = vi.hoisted(() => vi.fn())
+
+vi.mock('../transport/rpc-client', () => ({
+ connect: (...args: unknown[]) => connectMock(...args)
+}))
+vi.mock('../transport/host-logical-client', () => ({
+ openHostLogicalClient: (...args: unknown[]) => connectMock(...args)
+}))
+vi.mock('../transport/host-store', () => ({ loadHosts: () => loadHostsMock() }))
+vi.mock('../transport/connection-revival-triggers', () => ({
+ subscribeConnectionRevivalTriggers: () => () => {}
+}))
+vi.mock('../transport/mobile-web-bundle-fetch', () => ({
+ fetchMobileWebBundle: (...args: unknown[]) => fetchMock(...args)
+}))
+
+import { RpcClientProvider } from '../transport/client-context'
+import {
+ useMobileWebBundleProbe,
+ type MobileWebBundleProbeState
+} from './use-mobile-web-bundle-probe'
+
+const HOST = {
+ id: 'host-1',
+ name: 'Host 1',
+ endpoint: 'ws://127.0.0.1:1',
+ deviceToken: 'token',
+ publicKeyB64: 'key',
+ lastConnected: 0
+}
+
+function fakeClient(): RpcClient {
+ return {
+ sendRequest: vi.fn(),
+ subscribe: vi.fn(() => () => {}),
+ updateTerminalSubscriptionViewport: vi.fn(),
+ getState: () => 'connected',
+ getReconnectAttempt: () => 0,
+ getLastConnectedAt: () => null,
+ onStateChange: () => () => {},
+ notifyForeground: vi.fn(),
+ close: vi.fn()
+ }
+}
+
+type ProbeHarness = {
+ readonly state: MobileWebBundleProbeState
+ readonly awaitingHost: boolean
+ run: () => Promise
+ unmount: () => Promise
+}
+
+async function renderProbe(hostId: string | null): Promise {
+ let latest: ReturnType | null = null
+ // A box, not a `let`: assigning inside the callback leaves a `let` narrowed to `null`.
+ const rendered: { tree: ReactTestRenderer | null } = { tree: null }
+
+ function Probe(): null {
+ latest = useMobileWebBundleProbe(hostId)
+ return null
+ }
+
+ await act(async () => {
+ rendered.tree = create(createElement(RpcClientProvider, null, createElement(Probe)))
+ })
+ const read = () => {
+ if (!latest) {
+ throw new Error('probe did not render')
+ }
+ return latest
+ }
+ return {
+ get state() {
+ return read().state
+ },
+ get awaitingHost() {
+ return read().awaitingHost
+ },
+ run: async () => {
+ await act(async () => {
+ read().run()
+ })
+ },
+ unmount: async () => {
+ await act(async () => {
+ rendered.tree?.unmount()
+ })
+ }
+ }
+}
+
+function fetchedBundle(): MobileWebBundleFetchResult {
+ return {
+ manifest: {
+ schemaVersion: 1,
+ buildId: 'a'.repeat(64),
+ entrypoint: 'index.html',
+ totalBytes: 3,
+ assets: [
+ { path: 'index.html', sha256: 'b'.repeat(64), byteLength: 3, contentType: 'text/html' }
+ ]
+ },
+ assets: new Map([['index.html', new Uint8Array([1, 2, 3])]]),
+ totalBytes: 3,
+ elapsedMs: 12
+ }
+}
+
+type Deferred = {
+ readonly promise: Promise
+ resolve: (value: T) => void
+ reject: (error: unknown) => void
+}
+
+function deferred(): Deferred {
+ const box: { resolve: (value: T) => void; reject: (error: unknown) => void } = {
+ resolve: () => {},
+ reject: () => {}
+ }
+ const promise = new Promise((resolve, reject) => {
+ box.resolve = resolve
+ box.reject = reject
+ })
+ return { promise, resolve: box.resolve, reject: box.reject }
+}
+
+async function settle(): Promise {
+ await act(async () => {
+ await Promise.resolve()
+ })
+}
+
+beforeEach(() => {
+ push.attach.mockReset().mockReturnValue(push.detach)
+ push.detach.mockReset()
+ connectMock.mockReset().mockReturnValue(fakeClient())
+ loadHostsMock.mockReset().mockResolvedValue([HOST])
+ fetchMock.mockReset()
+})
+
+afterEach(() => {
+ vi.useRealTimers()
+})
+
+describe('useMobileWebBundleProbe', () => {
+ it('dials no host until the row is tapped', async () => {
+ const probe = await renderProbe(HOST.id)
+
+ expect(connectMock).not.toHaveBeenCalled()
+ expect(fetchMock).not.toHaveBeenCalled()
+ expect(probe.state).toEqual({ status: 'idle' })
+
+ fetchMock.mockResolvedValue(fetchedBundle())
+ await probe.run()
+
+ expect(connectMock).toHaveBeenCalledTimes(1)
+ expect(fetchMock).toHaveBeenCalledTimes(1)
+ expect(probe.state).toEqual({
+ status: 'done',
+ buildId: 'a'.repeat(64),
+ assetCount: 1,
+ totalBytes: 3,
+ elapsedMs: 12
+ })
+ expect(probe.awaitingHost).toBe(false)
+ })
+
+ it('reports the host code when the desktop refused', async () => {
+ fetchMock.mockRejectedValue(new Error('invalid_argument: mobile_web_bundle_unavailable'))
+ const probe = await renderProbe(HOST.id)
+
+ await probe.run()
+
+ expect(probe.state).toEqual({ status: 'failed', detail: 'mobile_web_bundle_unavailable' })
+ })
+
+ it('reports a schema refusal, which carries no code, as its message', async () => {
+ fetchMock.mockRejectedValue(
+ new Error('invalid_argument: Invalid input: expected string, received number')
+ )
+ const probe = await renderProbe(HOST.id)
+
+ await probe.run()
+
+ expect(probe.state).toEqual({
+ status: 'failed',
+ detail: 'invalid_argument: Invalid input: expected string, received number'
+ })
+ })
+
+ it('fails without dialling when no host is paired', async () => {
+ const probe = await renderProbe(null)
+
+ await probe.run()
+
+ expect(connectMock).not.toHaveBeenCalled()
+ expect(fetchMock).not.toHaveBeenCalled()
+ expect(probe.state).toEqual({ status: 'failed', detail: 'no paired host to fetch from' })
+ })
+
+ it('gives up on a host whose client never arrives instead of waiting forever', async () => {
+ vi.useFakeTimers()
+ // The host is not in the store, so no client is ever acquired for it and `awaitingHost` would
+ // otherwise stay true with the row's button disabled for the life of the screen.
+ loadHostsMock.mockResolvedValue([])
+ const probe = await renderProbe(HOST.id)
+
+ await probe.run()
+ expect(probe.state).toEqual({ status: 'running' })
+ expect(probe.awaitingHost).toBe(true)
+
+ await act(async () => {
+ await vi.advanceTimersByTimeAsync(9_999)
+ })
+ expect(probe.state).toEqual({ status: 'running' })
+
+ await act(async () => {
+ await vi.advanceTimersByTimeAsync(1)
+ })
+ expect(probe.state).toEqual({ status: 'failed', detail: 'no client for the host within 10s' })
+ // The row re-enables its button off `running`, and nothing is left dialling the host.
+ expect(probe.awaitingHost).toBe(false)
+ expect(fetchMock).not.toHaveBeenCalled()
+ })
+
+ it('does not clear the deadline for a host that did arrive', async () => {
+ vi.useFakeTimers()
+ fetchMock.mockReturnValue(new Promise(() => {}))
+ const probe = await renderProbe(HOST.id)
+
+ await probe.run()
+ expect(fetchMock).toHaveBeenCalledTimes(1)
+
+ await act(async () => {
+ await vi.advanceTimersByTimeAsync(60_000)
+ })
+
+ // A slow fetch is not a host that never opened: the deadline covers acquiring the client only.
+ expect(probe.state).toEqual({ status: 'running' })
+ })
+
+ it('ignores a result from a run the screen already moved on from', async () => {
+ const first = deferred()
+ const second = deferred()
+ fetchMock.mockReturnValueOnce(first.promise).mockReturnValueOnce(second.promise)
+ const probe = await renderProbe(HOST.id)
+
+ await probe.run()
+ await probe.run()
+ first.resolve({ ...fetchedBundle(), elapsedMs: 999 })
+ await settle()
+
+ expect(probe.state).toEqual({ status: 'running' })
+
+ second.resolve(fetchedBundle())
+ await settle()
+
+ expect(probe.state).toMatchObject({ status: 'done', elapsedMs: 12 })
+ })
+
+ it('ignores a failure from a run the screen already moved on from', async () => {
+ const first = deferred()
+ const second = deferred()
+ fetchMock.mockReturnValueOnce(first.promise).mockReturnValueOnce(second.promise)
+ const probe = await renderProbe(HOST.id)
+
+ await probe.run()
+ await probe.run()
+ first.reject(new Error('invalid_argument: mobile_web_bundle_unavailable'))
+ await settle()
+
+ expect(probe.state).toEqual({ status: 'running' })
+
+ second.resolve(fetchedBundle())
+ await settle()
+
+ expect(probe.state).toMatchObject({ status: 'done', elapsedMs: 12 })
+ })
+
+ it('aborts the run it started when the screen goes away', async () => {
+ const captured: { signal: AbortSignal | null } = { signal: null }
+ fetchMock.mockImplementation((args: { signal?: AbortSignal }) => {
+ captured.signal = args.signal ?? null
+ return new Promise(() => {})
+ })
+ const probe = await renderProbe(HOST.id)
+ await probe.run()
+
+ expect(captured.signal?.aborted).toBe(false)
+ await probe.unmount()
+
+ expect(captured.signal?.aborted).toBe(true)
+ })
+})
diff --git a/mobile/src/diagnostics/use-mobile-web-bundle-probe.ts b/mobile/src/diagnostics/use-mobile-web-bundle-probe.ts
new file mode 100644
index 00000000000..aeebb4573a5
--- /dev/null
+++ b/mobile/src/diagnostics/use-mobile-web-bundle-probe.ts
@@ -0,0 +1,121 @@
+import { useCallback, useEffect, useState } from 'react'
+import { useHostClient } from '../transport/client-context'
+import { fetchMobileWebBundle } from '../transport/mobile-web-bundle-fetch'
+import { readMobileWebBundleErrorCode } from '../transport/mobile-web-bundle-operations'
+import { startDiagnosticFetchTimeout } from './diagnostic-fetch-timeout'
+
+/**
+ * How long a tap waits for the host's client object before it gives up.
+ *
+ * Generous, because acquiring one can queue behind another screen's, but bounded, because none of
+ * that is a network round trip: the connect and request timeouts live below this, inside the fetch,
+ * and only apply once a client exists. Without a bound here a host that never opens leaves the row
+ * reading `Connecting…` with its button disabled for the life of the screen.
+ */
+const HOST_CLIENT_DIAL_DEADLINE_MS = 10_000
+
+export type MobileWebBundleProbeState =
+ | { status: 'idle' }
+ | { status: 'running' }
+ | {
+ status: 'done'
+ buildId: string
+ assetCount: number
+ totalBytes: number
+ elapsedMs: number
+ }
+ | { status: 'failed'; detail: string }
+
+/** The host's own code when it refused, its message otherwise. A client-side integrity failure has
+ * no code, and so does a schema refusal the dispatcher raised before the handler ran. */
+function describeFailure(error: unknown): string {
+ const code = readMobileWebBundleErrorCode(error)
+ if (code !== null) {
+ return code
+ }
+ return error instanceof Error ? error.message : String(error)
+}
+
+/**
+ * Drives one bundle fetch from the troubleshooting screen. Dev-only: nothing in a shipped build
+ * mounts this, and nothing here caches or renders what it downloads.
+ *
+ * The host is dialled on the first tap, not on mount: acquiring a client is what opens a connection,
+ * and opening Troubleshoot opened none before this row existed. Each request owns its
+ * `AbortController` so a re-run, an unmount, or StrictMode's second mount abandons the previous
+ * fetch instead of racing it — and, since the fetch checks that signal before every chunk, stops its
+ * reads rather than letting them hold the host's read slots.
+ */
+export function useMobileWebBundleProbe(hostId: string | null): {
+ state: MobileWebBundleProbeState
+ run: () => void
+ awaitingHost: boolean
+} {
+ const [state, setState] = useState({ status: 'idle' })
+ const [request, setRequest] = useState<{ id: number } | null>(null)
+ const { client } = useHostClient(request !== null && hostId !== null ? hostId : undefined)
+
+ useEffect(() => {
+ if (request === null || client === null) {
+ return
+ }
+ let abandoned = false
+ const controller = new AbortController()
+ fetchMobileWebBundle({ client, signal: controller.signal }).then(
+ (fetched) => {
+ if (abandoned) {
+ return
+ }
+ setState({
+ status: 'done',
+ buildId: fetched.manifest.buildId,
+ assetCount: fetched.assets.size,
+ totalBytes: fetched.totalBytes,
+ elapsedMs: fetched.elapsedMs
+ })
+ },
+ (error: unknown) => {
+ if (abandoned) {
+ return
+ }
+ setState({ status: 'failed', detail: describeFailure(error) })
+ }
+ )
+ return () => {
+ abandoned = true
+ controller.abort()
+ }
+ }, [client, request])
+
+ useEffect(() => {
+ if (request === null || client !== null) {
+ return
+ }
+ const deadline = startDiagnosticFetchTimeout(HOST_CLIENT_DIAL_DEADLINE_MS)
+ const giveUp = () => {
+ setState({
+ status: 'failed',
+ detail: `no client for the host within ${HOST_CLIENT_DIAL_DEADLINE_MS / 1000}s`
+ })
+ // Drops the acquisition too, so a host that never opens stops being dialled.
+ setRequest(null)
+ }
+ deadline.signal.addEventListener('abort', giveUp)
+ return () => {
+ // Removed first: `dispose` aborts a signal it has not already aborted.
+ deadline.signal.removeEventListener('abort', giveUp)
+ deadline.dispose()
+ }
+ }, [client, request])
+
+ const run = useCallback(() => {
+ if (hostId === null) {
+ setState({ status: 'failed', detail: 'no paired host to fetch from' })
+ return
+ }
+ setState({ status: 'running' })
+ setRequest((previous) => ({ id: (previous?.id ?? 0) + 1 }))
+ }, [hostId])
+
+ return { state, run, awaitingHost: request !== null && client === null }
+}
diff --git a/mobile/src/test-support/rpc-recording/README.md b/mobile/src/test-support/rpc-recording/README.md
index f20ce18fb54..8f8bbc89fc6 100644
--- a/mobile/src/test-support/rpc-recording/README.md
+++ b/mobile/src/test-support/rpc-recording/README.md
@@ -183,7 +183,7 @@ off the context `client-context.tsx` keeps module-private, and each used to carr
`exports.recorderHostClientContext = Ctx;`. That string names a local no type checker follows, so
five spellings were five independent ways to reach a `ReferenceError` seconds into a recording.
`hostClientContextExposure` is the one copy; the trade is that it sits inside `recorderSha256`, so
-editing it re-records all 778 goldens rather than the five families. A rename of the local is still
+editing it re-records all 787 goldens rather than the five families. A rename of the local is still
invisible to `tsc` — nothing short of editing the product module makes a private local checkable —
so `adapter-seam.test.ts` asserts the declaration it names exists exactly once, and refuses a sixth
inline copy.
@@ -378,8 +378,8 @@ families because no reference states are defined for them.
## What this oracle does and does not see
-It replays 393 manifest scenarios against frozen goldens and fails on any divergence: 778 goldens
-over 781 tests, all inside `pnpm --dir mobile test`. Counted with
+It replays 397 manifest scenarios against frozen goldens and fails on any divergence: 787 goldens
+over 790 tests, all inside `pnpm --dir mobile test`. Counted with
`python3 -c "import json;print(len(json.load(open('mobile/rpc-foundation/pilot-scenarios.json'))['scenarios']))"`,
`find mobile/rpc-foundation/goldens -type f | wc -l`, and the reported total of
`vitest run src/test-support/rpc-recording/{pilot,family}-recordings.test.ts src/test-support/rpc-recording/derived-goldens.test.ts`. Counts quoted further down are measurements of
@@ -613,7 +613,7 @@ the drop happened under, and records a non-empty report as a `reply-salvage` eff
operation, the method, the decoded variant, the dropped paths and the count. Nothing in the product
tree changes: the report was already being built and thrown away.
-44 of the 778 goldens carry one, and every other checked read in the corpus decodes its reply
+44 of the 787 goldens carry one, and every other checked read in the corpus decodes its reply
whole (`grep -l reply-salvage mobile/rpc-foundation/goldens/*.json | wc -l`). The matrix varies the
envelope a host sends rather than the shape of a row inside a result, so on most families this
observation pins an absence rather than a recorded drop. What it buys is the next tightening: an element or member schema narrowed so a recorded row stops parsing moves the
diff --git a/mobile/src/test-support/rpc-recording/adapters/mobile-web-bundle-mount-adapters.ts b/mobile/src/test-support/rpc-recording/adapters/mobile-web-bundle-mount-adapters.ts
new file mode 100644
index 00000000000..af2f00b5e3e
--- /dev/null
+++ b/mobile/src/test-support/rpc-recording/adapters/mobile-web-bundle-mount-adapters.ts
@@ -0,0 +1,101 @@
+import type { MountAdapter, MountContext } from '../recording-scenario'
+import type { operationModuleLoader } from '../operation-module-loader'
+
+const OPERATIONS_MODULE = 'mobile/src/transport/mobile-web-bundle-operations.ts'
+const FETCH_MODULE = 'mobile/src/transport/mobile-web-bundle-fetch.ts'
+const RPC_OPERATION_MODULE = 'mobile/src/transport/rpc-operation.ts'
+
+type OperationsModule = typeof import('../../../transport/mobile-web-bundle-operations')
+type FetchModule = typeof import('../../../transport/mobile-web-bundle-fetch')
+type RpcOperationModule = typeof import('../../../transport/rpc-operation')
+
+/** The host's own code where it has one, so the projection observes the code reader too. */
+function describeFailure(operations: OperationsModule, error: unknown): string {
+ const code = operations.readMobileWebBundleErrorCode(error)
+ if (code !== null) {
+ return `refused: ${code}`
+ }
+ return `failed: ${error instanceof Error ? error.message : String(error)}`
+}
+
+/**
+ * The two client reads that fetch the desktop-served mobile web bundle.
+ *
+ * `bundle-manifest` drives the manifest descriptor alone, so the loose reader's verdict on one reply
+ * is the whole observation. `bundle-fetch` drives the paging flow, and its state carries the decoded
+ * bytes of every asset rather than a count: a reassembly that misplaces a chunk still has the right
+ * length, and only the bytes say so.
+ */
+export function mobileWebBundleMountAdapters(
+ modules: ReturnType
+): Record {
+ return {
+ 'mobileWeb.bundle-manifest': ({ client }: MountContext) => {
+ const operations = modules.load(OPERATIONS_MODULE)
+ const runRpcOperation = modules.load(RPC_OPERATION_MODULE).runRpcOperation
+ let outcome: unknown = 'unread'
+ return {
+ action() {
+ const started = runRpcOperation(client, operations.mobileWebBundleManifestRead, null)
+ started.then(
+ (reply) => {
+ outcome = {
+ chunkBytes: reply.chunkBytes,
+ buildId: reply.manifest.buildId,
+ entrypoint: reply.manifest.entrypoint,
+ paths: reply.manifest.assets.map((asset) => asset.path)
+ }
+ },
+ (error: unknown) => {
+ outcome = describeFailure(operations, error)
+ }
+ )
+ return started
+ },
+ state: () => ({ outcome }),
+ dispose: () => {}
+ }
+ },
+ 'mobileWeb.bundle-fetch': ({ client, effect }: MountContext) => {
+ const operations = modules.load(OPERATIONS_MODULE)
+ const fetchMobileWebBundle = modules.load(FETCH_MODULE).fetchMobileWebBundle
+ let outcome: unknown = 'unfetched'
+ let assets: unknown = null
+ return {
+ action() {
+ // Projected rather than returned whole: the result carries a Map of Uint8Arrays, and the
+ // observation refuses a non-plain object, which loses the settlement and files an
+ // unhandled rejection in its place.
+ return fetchMobileWebBundle({
+ client,
+ onProgress: (progress) => {
+ effect('bundle-progress', {
+ completedAssets: progress.completedAssets,
+ totalAssets: progress.totalAssets,
+ receivedBytes: progress.receivedBytes
+ })
+ }
+ }).then(
+ (fetched) => {
+ outcome = {
+ buildId: fetched.manifest.buildId,
+ assetCount: fetched.assets.size,
+ totalBytes: fetched.totalBytes
+ }
+ assets = Object.fromEntries(
+ [...fetched.assets].map(([path, bytes]) => [path, new TextDecoder().decode(bytes)])
+ )
+ return outcome
+ },
+ (error: unknown) => {
+ outcome = describeFailure(operations, error)
+ throw error
+ }
+ )
+ },
+ state: () => ({ outcome, assets }),
+ dispose: () => {}
+ }
+ }
+ }
+}
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 615036e40c3..b706040a280 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
@@ -27,6 +27,7 @@ import { homeAccountsMountAdapters } from './home-accounts-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 { mobileWebBundleMountAdapters } from './mobile-web-bundle-mount-adapters'
import { nativeChatPagingMountAdapters } from './native-chat-paging-mount-adapters'
import { nativeChatWriteMountAdapters } from './native-chat-write-mount-adapters'
import { newTabAgentMountAdapters } from './new-tab-agent-mount-adapters'
@@ -129,6 +130,7 @@ export const MOUNTED_OPERATION_MODULES: readonly MountedOperationModule[] = [
mounts: hostWorktreeActionMountAdapters
},
{ source: 'hosted-review-mount-adapters.ts', mounts: hostedReviewMountAdapters },
+ { source: 'mobile-web-bundle-mount-adapters.ts', mounts: mobileWebBundleMountAdapters },
{ source: 'native-chat-paging-mount-adapters.ts', mounts: nativeChatPagingMountAdapters },
{ source: 'native-chat-write-mount-adapters.ts', mounts: nativeChatWriteMountAdapters },
{ source: 'new-tab-agent-mount-adapters.ts', mounts: newTabAgentMountAdapters },
diff --git a/mobile/src/test-support/rpc-recording/mutants/operation-mutations.ts b/mobile/src/test-support/rpc-recording/mutants/operation-mutations.ts
index 38867e23bb3..58b12257cdf 100644
--- a/mobile/src/test-support/rpc-recording/mutants/operation-mutations.ts
+++ b/mobile/src/test-support/rpc-recording/mutants/operation-mutations.ts
@@ -73,6 +73,14 @@ export const OPERATION_MUTATIONS = {
before: 'const snapshot = decodeAccountsSnapshot(accounts.value)',
after: 'const snapshot = decodeAccountsSnapshot(reply)'
},
+ // Writes every chunk of an asset at offset 0, so a multi-chunk asset reassembles as its last
+ // chunk over a zero-filled buffer. The length still matches the manifest; only the sha256 check
+ // and the decoded bytes in the projection say the bundle is wrong.
+ 'mobile-web-bundle-chunk-placement': {
+ file: 'mobile-web-bundle-fetch.ts',
+ before: 'whole.set(bytes, offset)',
+ after: 'whole.set(bytes, 0)'
+ },
// Puts the workspace catalog's reply back behind an unchecked reader, so a reply carrying neither
// rows nor an `unchanged` token reaches `admitWorktreeCatalogResponse` as an invalid admission
// instead of being named at the boundary — main's answer, and the one the host screen showed as
diff --git a/mobile/src/test-support/rpc-recording/mutants/pilot-mutants.test.ts b/mobile/src/test-support/rpc-recording/mutants/pilot-mutants.test.ts
index 8af7f8af5ce..bcdcbf46a9f 100644
--- a/mobile/src/test-support/rpc-recording/mutants/pilot-mutants.test.ts
+++ b/mobile/src/test-support/rpc-recording/mutants/pilot-mutants.test.ts
@@ -45,7 +45,8 @@ const mutants: Record = {
'terminal-worktree-connection-resolved': 'worktree-connection-first-repo',
'pr-sidebar-checks-refused': 'pr-sidebar-checks-failure-state',
'tk-item-detail-metadata': 'assignable-user-avatar-null-collapse',
- 'worktree-catalog-snapshot-unreadable': 'worktree-catalog-unchecked-reader'
+ 'worktree-catalog-snapshot-unreadable': 'worktree-catalog-unchecked-reader',
+ 'mobile-web-bundle-fetch-paged': 'mobile-web-bundle-chunk-placement'
}
/**
* The archived tree's visible state, pinned per seed: b1 serves the poisoned empty inventory, b2
diff --git a/mobile/src/transport/mobile-web-bundle-fetch.test.ts b/mobile/src/transport/mobile-web-bundle-fetch.test.ts
new file mode 100644
index 00000000000..70856553407
--- /dev/null
+++ b/mobile/src/transport/mobile-web-bundle-fetch.test.ts
@@ -0,0 +1,530 @@
+import { sha256 } from '@noble/hashes/sha256'
+import { describe, expect, it, vi } from 'vitest'
+import { fetchMobileWebBundle } from './mobile-web-bundle-fetch'
+import { readMobileWebBundleErrorCode } from './mobile-web-bundle-operations'
+import type { RpcClient } from './rpc-client'
+import type { RpcResponse } from './types'
+
+const BUILD_ID = 'a'.repeat(64)
+
+function toHex(bytes: Uint8Array): string {
+ return Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('')
+}
+
+function encodeBase64(bytes: Uint8Array): string {
+ return btoa(String.fromCharCode(...bytes))
+}
+
+function bytesOf(text: string): Uint8Array {
+ return new TextEncoder().encode(text)
+}
+
+type HostCall = { method: string; params: unknown }
+
+type HostOptions = {
+ chunkBytes?: number
+ buildId?: string
+ /** Replaces the reply the host would have sent for this request. */
+ intercept?: (call: HostCall) => unknown
+ onInFlight?: (inFlight: number) => void
+}
+
+/** Box first, so params that are not an object read as absent instead of throwing. */
+function paramField(params: unknown, key: string): unknown {
+ const boxed: Record = Object(params)
+ return boxed[key]
+}
+
+/** A host that serves a fixed asset table by the same rules the real one does. */
+function bundleHost(files: Record, options: HostOptions = {}) {
+ const chunkBytes = options.chunkBytes ?? 4
+ const buildId = options.buildId ?? BUILD_ID
+ const bytes = new Map(Object.entries(files).map(([path, text]) => [path, bytesOf(text)]))
+ const assets = [...bytes.entries()]
+ .map(([path, content]) => ({
+ path,
+ sha256: toHex(sha256(content)),
+ byteLength: content.byteLength,
+ contentType: 'text/plain'
+ }))
+ .sort((left, right) => (left.path < right.path ? -1 : 1))
+ const manifest = {
+ schemaVersion: 1,
+ buildId,
+ desktopVersion: '1.4.200',
+ minCompatibleRuntimeProtocolVersion: 2,
+ runtimeProtocolVersion: 2,
+ entrypoint: assets[0]!.path,
+ totalBytes: assets.reduce((total, entry) => total + entry.byteLength, 0),
+ assets
+ }
+ const calls: HostCall[] = []
+ let inFlight = 0
+
+ const answer = (method: string, params: unknown): unknown => {
+ if (method === 'mobileWeb.bundle.manifest') {
+ return { manifest, chunkBytes }
+ }
+ const path = String(paramField(params, 'path'))
+ const offset = Number(paramField(params, 'offset'))
+ const content = bytes.get(path)!
+ const slice = content.subarray(offset, offset + chunkBytes)
+ return {
+ buildId,
+ path,
+ offset,
+ assetByteLength: content.byteLength,
+ sha256: toHex(sha256(content)),
+ dataBase64: encodeBase64(slice),
+ eof: offset + slice.byteLength >= content.byteLength
+ }
+ }
+
+ const client: RpcClient = {
+ sendRequest: vi.fn(async (method: string, params?: unknown): Promise => {
+ const call: HostCall = { method, params: params ?? {} }
+ calls.push(call)
+ inFlight += 1
+ options.onInFlight?.(inFlight)
+ try {
+ await new Promise((resolve) => setTimeout(resolve, 0))
+ const replaced = options.intercept?.(call)
+ const result = replaced === undefined ? answer(method, call.params) : replaced
+ if (result instanceof Error) {
+ return {
+ id: 'rpc-1',
+ ok: false,
+ error: { code: 'invalid_argument', message: result.message },
+ _meta: { runtimeId: 'runtime-1' }
+ }
+ }
+ return { id: 'rpc-1', ok: true, result, _meta: { runtimeId: 'runtime-1' } }
+ } finally {
+ inFlight -= 1
+ }
+ }),
+ subscribe: vi.fn(() => () => {}),
+ updateTerminalSubscriptionViewport: vi.fn(),
+ getState: () => 'connected',
+ getReconnectAttempt: () => 0,
+ getLastConnectedAt: () => 1,
+ onStateChange: () => () => {},
+ notifyForeground: vi.fn(),
+ close: vi.fn()
+ }
+ return { client, calls, manifest }
+}
+
+function chunkCallCount(calls: readonly HostCall[]): number {
+ return calls.filter((call) => call.method === 'mobileWeb.bundle.chunk').length
+}
+
+/** Long enough for an unstopped worker pool to page three 40-byte assets one byte at a time. */
+async function drainPendingHostWork(): Promise {
+ for (let tick = 0; tick < 300; tick += 1) {
+ await new Promise((resolve) => setTimeout(resolve, 0))
+ }
+}
+
+describe('fetchMobileWebBundle', () => {
+ it('pages every asset to eof and returns the verified bytes', async () => {
+ const host = bundleHost({ 'index.html': 'orca
', 'assets/app.js': 'x=1' })
+ const progress: number[] = []
+
+ const fetched = await fetchMobileWebBundle({
+ client: host.client,
+ onProgress: (update) => progress.push(update.receivedBytes)
+ })
+
+ expect([...fetched.assets.keys()].sort()).toEqual(['assets/app.js', 'index.html'])
+ expect(new TextDecoder().decode(fetched.assets.get('index.html'))).toBe('orca
')
+ expect(new TextDecoder().decode(fetched.assets.get('assets/app.js'))).toBe('x=1')
+ expect(fetched.totalBytes).toBe(16)
+ expect(fetched.manifest.buildId).toBe(BUILD_ID)
+ expect(fetched.elapsedMs).toBeGreaterThanOrEqual(0)
+ expect(progress).toHaveLength(2)
+ expect(progress.at(-1)).toBe(16)
+ // 13 bytes at 4 per chunk is four requests, 3 bytes is one, plus the manifest.
+ expect(host.calls.filter((call) => call.method === 'mobileWeb.bundle.chunk')).toHaveLength(5)
+ expect(host.calls[0]!.method).toBe('mobileWeb.bundle.manifest')
+ expect(host.calls[0]!.params).toEqual({})
+ })
+
+ it('asks for each chunk at the offset the previous reply ended on', async () => {
+ const host = bundleHost({ 'index.html': 'abcdefghij' }, { chunkBytes: 3 })
+
+ await fetchMobileWebBundle({ client: host.client })
+
+ expect(
+ host.calls
+ .filter((call) => call.method === 'mobileWeb.bundle.chunk')
+ .map((call) => call.params)
+ ).toEqual([
+ { buildId: BUILD_ID, path: 'index.html', offset: 0 },
+ { buildId: BUILD_ID, path: 'index.html', offset: 3 },
+ { buildId: BUILD_ID, path: 'index.html', offset: 6 },
+ { buildId: BUILD_ID, path: 'index.html', offset: 9 }
+ ])
+ })
+
+ it('fails when a reassembled asset does not hash to the manifest entry', async () => {
+ const host = bundleHost(
+ { 'index.html': 'abcdef' },
+ {
+ chunkBytes: 3,
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk' && paramField(call.params, 'offset') === 3
+ ? {
+ buildId: BUILD_ID,
+ path: 'index.html',
+ offset: 3,
+ assetByteLength: 6,
+ sha256: toHex(sha256(bytesOf('abcdef'))),
+ dataBase64: encodeBase64(bytesOf('XYZ')),
+ eof: true
+ }
+ : undefined
+ }
+ )
+
+ await expect(fetchMobileWebBundle({ client: host.client })).rejects.toThrow(
+ /index\.html hashed [0-9a-f]{64}, not/
+ )
+ })
+
+ it('fails when the host serves a later chunk from a different build', async () => {
+ const host = bundleHost(
+ { 'index.html': 'abcdef' },
+ {
+ chunkBytes: 3,
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk' && paramField(call.params, 'offset') === 3
+ ? {
+ buildId: 'c'.repeat(64),
+ path: 'index.html',
+ offset: 3,
+ assetByteLength: 6,
+ sha256: toHex(sha256(bytesOf('abcdef'))),
+ dataBase64: encodeBase64(bytesOf('def')),
+ eof: true
+ }
+ : undefined
+ }
+ )
+
+ await expect(fetchMobileWebBundle({ client: host.client })).rejects.toThrow(
+ 'bundle build changed mid-fetch'
+ )
+ })
+
+ it('refuses a chunk that answers a different path or offset', async () => {
+ const host = bundleHost(
+ { 'index.html': 'abc' },
+ {
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk'
+ ? {
+ buildId: BUILD_ID,
+ path: 'other.html',
+ offset: 0,
+ assetByteLength: 3,
+ sha256: toHex(sha256(bytesOf('abc'))),
+ dataBase64: encodeBase64(bytesOf('abc')),
+ eof: true
+ }
+ : undefined
+ }
+ )
+
+ await expect(fetchMobileWebBundle({ client: host.client })).rejects.toThrow(
+ 'bundle chunk answered other.html at 0, not index.html at 0'
+ )
+ })
+
+ it('refuses a chunk that answers the right path at the wrong offset', async () => {
+ // The path half of the echo check is already covered; this is the offset half on its own, so
+ // a host that re-serves chunk zero cannot have its bytes written at the offset we asked for.
+ const host = bundleHost(
+ { 'index.html': 'abcdef' },
+ {
+ chunkBytes: 3,
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk' && paramField(call.params, 'offset') === 3
+ ? {
+ buildId: BUILD_ID,
+ path: 'index.html',
+ offset: 0,
+ assetByteLength: 6,
+ sha256: toHex(sha256(bytesOf('abcdef'))),
+ dataBase64: encodeBase64(bytesOf('abc')),
+ eof: false
+ }
+ : undefined
+ }
+ )
+
+ await expect(fetchMobileWebBundle({ client: host.client })).rejects.toThrow(
+ 'bundle chunk answered index.html at 0, not index.html at 3'
+ )
+ })
+
+ it('reads a zero-byte asset in one chunk and returns it empty', async () => {
+ // A real bundle carries these. The asset is whole the moment the host says eof, and nothing
+ // else in the loop can end it: a zero-length reply is otherwise how a host makes no progress.
+ const host = bundleHost({ 'assets/empty.css': '', 'index.html': 'abc' })
+
+ const fetched = await fetchMobileWebBundle({ client: host.client })
+
+ expect(fetched.assets.get('assets/empty.css')).toEqual(new Uint8Array(0))
+ expect(fetched.totalBytes).toBe(3)
+ expect(
+ host.calls.filter(
+ (call) =>
+ call.method === 'mobileWeb.bundle.chunk' &&
+ paramField(call.params, 'path') === 'assets/empty.css'
+ )
+ ).toHaveLength(1)
+ })
+
+ it('never puts a fifth chunk request on one connection', async () => {
+ const peaks: number[] = []
+ const host = bundleHost(
+ Object.fromEntries(
+ Array.from({ length: 9 }, (_, index) => [`assets/${index}.js`, `body-${index}`])
+ ),
+ { chunkBytes: 2, onInFlight: (inFlight) => peaks.push(inFlight) }
+ )
+
+ const fetched = await fetchMobileWebBundle({ client: host.client })
+
+ expect(fetched.assets.size).toBe(9)
+ expect(Math.max(...peaks)).toBe(4)
+ })
+
+ it('stops as soon as the caller aborts', async () => {
+ const controller = new AbortController()
+ const host = bundleHost({ 'index.html': 'abcdefgh' }, { chunkBytes: 2 })
+
+ const started = fetchMobileWebBundle({ client: host.client, signal: controller.signal })
+ controller.abort()
+
+ await expect(started).rejects.toThrow('mobile web bundle fetch aborted')
+ expect(host.calls.filter((call) => call.method === 'mobileWeb.bundle.chunk')).toHaveLength(0)
+ })
+
+ it('refuses a chunk larger than the size the host advertised', async () => {
+ const host = bundleHost(
+ { 'index.html': 'abcdef' },
+ {
+ chunkBytes: 3,
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk'
+ ? {
+ buildId: BUILD_ID,
+ path: 'index.html',
+ offset: 0,
+ assetByteLength: 6,
+ sha256: toHex(sha256(bytesOf('abcdef'))),
+ dataBase64: encodeBase64(bytesOf('abcdef')),
+ eof: true
+ }
+ : undefined
+ }
+ )
+
+ await expect(fetchMobileWebBundle({ client: host.client })).rejects.toThrow(
+ "bundle chunk for index.html at 0 is 6 bytes, over the host's 3"
+ )
+ })
+
+ it('refuses a chunk whose asset no longer matches the manifest entry', async () => {
+ const host = bundleHost(
+ { 'index.html': 'abc' },
+ {
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk'
+ ? {
+ buildId: BUILD_ID,
+ path: 'index.html',
+ offset: 0,
+ assetByteLength: 4,
+ sha256: toHex(sha256(bytesOf('abc'))),
+ dataBase64: encodeBase64(bytesOf('abc')),
+ eof: true
+ }
+ : undefined
+ }
+ )
+
+ await expect(fetchMobileWebBundle({ client: host.client })).rejects.toThrow(
+ 'bundle asset index.html no longer matches the manifest entry'
+ )
+ })
+
+ it('refuses an asset that ends short of the length the manifest declares', async () => {
+ const host = bundleHost(
+ { 'index.html': 'abcdef' },
+ {
+ chunkBytes: 3,
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk'
+ ? {
+ buildId: BUILD_ID,
+ path: 'index.html',
+ offset: 0,
+ assetByteLength: 6,
+ sha256: toHex(sha256(bytesOf('abcdef'))),
+ dataBase64: encodeBase64(bytesOf('abc')),
+ eof: true
+ }
+ : undefined
+ }
+ )
+
+ await expect(fetchMobileWebBundle({ client: host.client })).rejects.toThrow(
+ 'bundle asset index.html ended at 3 of 6 declared bytes'
+ )
+ })
+
+ it('stops a host that pages forever without sending a byte', async () => {
+ const host = bundleHost(
+ { 'index.html': 'abcdef' },
+ {
+ chunkBytes: 3,
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk'
+ ? {
+ buildId: BUILD_ID,
+ path: 'index.html',
+ offset: 0,
+ assetByteLength: 6,
+ sha256: toHex(sha256(bytesOf('abcdef'))),
+ dataBase64: '',
+ eof: false
+ }
+ : undefined
+ }
+ )
+
+ await expect(fetchMobileWebBundle({ client: host.client })).rejects.toThrow(
+ 'bundle asset index.html made no progress at 0'
+ )
+ })
+
+ it('stops the other workers mid-asset once one asset is refused', async () => {
+ const host = bundleHost(
+ {
+ 'a.js': 'x',
+ 'b.js': 'b'.repeat(40),
+ 'c.js': 'c'.repeat(40),
+ 'd.js': 'd'.repeat(40)
+ },
+ {
+ chunkBytes: 1,
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk' && paramField(call.params, 'path') === 'a.js'
+ ? new Error('mobile_web_bundle_asset_unknown')
+ : undefined
+ }
+ )
+
+ const error = await fetchMobileWebBundle({ client: host.client }).catch(
+ (thrown: unknown) => thrown
+ )
+ const atRejection = chunkCallCount(host.calls)
+ await drainPendingHostWork()
+
+ // The refusal is what the caller sees; the internal stop never surfaces.
+ expect(readMobileWebBundleErrorCode(error)).toBe('mobile_web_bundle_asset_unknown')
+ // 120 chunks would page the other three assets to the end. One more round of four is the most
+ // the abandoned workers can add, because each checks the stop before it asks for a chunk.
+ expect(chunkCallCount(host.calls)).toBeLessThanOrEqual(atRejection + 4)
+ expect(chunkCallCount(host.calls)).toBeLessThan(10)
+ })
+
+ it('asks for nothing at all when the caller arrives already aborted', async () => {
+ const host = bundleHost({ 'index.html': 'abc' })
+
+ await expect(
+ fetchMobileWebBundle({ client: host.client, signal: AbortSignal.abort() })
+ ).rejects.toThrow('mobile web bundle fetch aborted')
+ expect(host.calls).toHaveLength(0)
+ })
+
+ it('refuses an asset the host over-pages with real bytes', async () => {
+ const host = bundleHost(
+ { 'index.html': 'abcdef' },
+ {
+ chunkBytes: 3,
+ // Never says eof, so the third reply writes past the six bytes the manifest declares.
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk'
+ ? {
+ buildId: BUILD_ID,
+ path: 'index.html',
+ offset: paramField(call.params, 'offset'),
+ assetByteLength: 6,
+ sha256: toHex(sha256(bytesOf('abcdef'))),
+ dataBase64: encodeBase64(bytesOf('abc')),
+ eof: false
+ }
+ : undefined
+ }
+ )
+
+ await expect(fetchMobileWebBundle({ client: host.client })).rejects.toThrow(
+ 'bundle asset index.html is longer than the manifest declares'
+ )
+ })
+
+ it('counts the bytes it received rather than the total the manifest claims', async () => {
+ const host = bundleHost({ 'index.html': 'abcdef' }, { chunkBytes: 3 })
+ // The mobile reader is loose, so it does not carry the host schema's sum refinement: a manifest
+ // whose total disagrees with its assets must not decide what the fetch reports.
+ host.manifest.totalBytes = 999
+
+ const fetched = await fetchMobileWebBundle({ client: host.client })
+
+ expect(fetched.totalBytes).toBe(6)
+ })
+
+ it('reads a schema refusal whose message is prose as a generic failure', async () => {
+ // The dispatcher refuses params that fail the host schema before the bundle handler runs, so the
+ // message is zod prose rather than one of the six codes.
+ const host = bundleHost(
+ { 'index.html': 'abc' },
+ {
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.chunk'
+ ? new Error('Invalid input: expected string, received number')
+ : undefined
+ }
+ )
+
+ const error = await fetchMobileWebBundle({ client: host.client }).catch(
+ (thrown: unknown) => thrown
+ )
+
+ expect(readMobileWebBundleErrorCode(error)).toBeNull()
+ expect(error).toBeInstanceOf(Error)
+ expect(String(error)).toContain('Invalid input: expected string, received number')
+ })
+
+ it('surfaces the host code when the bundle is not there to serve', async () => {
+ const host = bundleHost(
+ { 'index.html': 'abc' },
+ {
+ intercept: (call) =>
+ call.method === 'mobileWeb.bundle.manifest'
+ ? new Error('mobile_web_bundle_unavailable')
+ : undefined
+ }
+ )
+
+ const error = await fetchMobileWebBundle({ client: host.client }).catch(
+ (thrown: unknown) => thrown
+ )
+
+ expect(readMobileWebBundleErrorCode(error)).toBe('mobile_web_bundle_unavailable')
+ })
+})
diff --git a/mobile/src/transport/mobile-web-bundle-fetch.ts b/mobile/src/transport/mobile-web-bundle-fetch.ts
new file mode 100644
index 00000000000..2823085437a
--- /dev/null
+++ b/mobile/src/transport/mobile-web-bundle-fetch.ts
@@ -0,0 +1,192 @@
+import { sha256 } from '@noble/hashes/sha256'
+import {
+ mobileWebBundleChunkRead,
+ mobileWebBundleManifestRead
+} from './mobile-web-bundle-operations'
+import type {
+ MobileWebBundleAssetRead,
+ MobileWebBundleManifestRead
+} from './mobile-web-bundle-reply-schemas'
+import type { RpcClient } from './rpc-client'
+import { runRpcOperation } from './rpc-operation'
+
+/** The host refuses the fifth concurrent read on one connection with `mobile_web_bundle_read_limited`,
+ * so the client never offers a fifth. Paging inside one asset stays sequential: the next offset is
+ * only known to be wanted once the previous reply says it is not the last. */
+const MAX_CONCURRENT_ASSET_READS = 4
+
+export type MobileWebBundleFetchProgress = {
+ readonly completedAssets: number
+ readonly totalAssets: number
+ readonly receivedBytes: number
+ readonly totalBytes: number
+}
+
+export type MobileWebBundleFetchResult = {
+ readonly manifest: MobileWebBundleManifestRead
+ readonly assets: ReadonlyMap
+ readonly totalBytes: number
+ readonly elapsedMs: number
+}
+
+/**
+ * Reads the manifest, pages every asset, and returns the verified bytes.
+ *
+ * Nothing is cached and nothing is rendered: this is the Phase A proof that the pipe carries a whole
+ * bundle intact. Every asset is checked against the manifest's own sha256 before it is returned, so
+ * a truncated or reordered reassembly fails here rather than in a webview much later.
+ */
+export async function fetchMobileWebBundle(args: {
+ client: RpcClient
+ signal?: AbortSignal
+ onProgress?: (progress: MobileWebBundleFetchProgress) => void
+}): Promise {
+ const startedAt = Date.now()
+ const stopped = new AbortController()
+ throwIfStopped(args.signal, stopped.signal)
+ const opened = await runRpcOperation(args.client, mobileWebBundleManifestRead, null)
+ const manifest = opened.manifest
+ const pending = [...manifest.assets]
+ const assets = new Map()
+ let receivedBytes = 0
+
+ const worker = async (): Promise => {
+ try {
+ for (let asset = pending.shift(); asset !== undefined; asset = pending.shift()) {
+ const bytes = await readBundleAsset({
+ client: args.client,
+ asset,
+ buildId: manifest.buildId,
+ chunkBytes: opened.chunkBytes,
+ signal: args.signal,
+ stopped: stopped.signal
+ })
+ assets.set(asset.path, bytes)
+ receivedBytes += bytes.byteLength
+ args.onProgress?.({
+ completedAssets: assets.size,
+ totalAssets: manifest.assets.length,
+ receivedBytes,
+ totalBytes: manifest.totalBytes
+ })
+ }
+ } catch (error) {
+ // One failed asset stops the other three mid-asset, not just between assets: every chunk they
+ // would still ask for holds one of the host's four read slots against the caller's retry.
+ stopped.abort()
+ throw error
+ }
+ }
+
+ const workers = Math.min(MAX_CONCURRENT_ASSET_READS, pending.length)
+ await Promise.all(Array.from({ length: workers }, () => worker()))
+ return { manifest, assets, totalBytes: receivedBytes, elapsedMs: Date.now() - startedAt }
+}
+
+async function readBundleAsset(args: {
+ client: RpcClient
+ asset: MobileWebBundleAssetRead
+ buildId: string
+ chunkBytes: number
+ signal?: AbortSignal
+ stopped: AbortSignal
+}): Promise {
+ // Before the buffer, not after: an asset can be a tenth of the total ceiling, and a worker that
+ // picked one up after a sibling failed would otherwise allocate it only to drop it.
+ throwIfStopped(args.signal, args.stopped)
+ const whole = new Uint8Array(args.asset.byteLength)
+ let offset = 0
+ for (;;) {
+ throwIfStopped(args.signal, args.stopped)
+ const chunk = await runRpcOperation(args.client, mobileWebBundleChunkRead, {
+ buildId: args.buildId,
+ path: args.asset.path,
+ offset
+ })
+ assertChunkDescribesAsset(chunk, args.asset, args.buildId, offset)
+ const bytes = decodeBase64(chunk.dataBase64)
+ if (bytes.byteLength > args.chunkBytes) {
+ throw new Error(
+ `bundle chunk for ${args.asset.path} at ${offset} is ${bytes.byteLength} bytes, over the host's ${args.chunkBytes}`
+ )
+ }
+ if (offset + bytes.byteLength > whole.byteLength) {
+ throw new Error(`bundle asset ${args.asset.path} is longer than the manifest declares`)
+ }
+ whole.set(bytes, offset)
+ offset += bytes.byteLength
+ if (chunk.eof) {
+ break
+ }
+ // Without this a host that keeps answering an unchanged offset with no bytes pages forever.
+ if (bytes.byteLength === 0) {
+ throw new Error(`bundle asset ${args.asset.path} made no progress at ${offset}`)
+ }
+ }
+ if (offset !== whole.byteLength) {
+ throw new Error(
+ `bundle asset ${args.asset.path} ended at ${offset} of ${whole.byteLength} declared bytes`
+ )
+ }
+ const digest = toHex(sha256(whole))
+ if (digest !== args.asset.sha256) {
+ throw new Error(`bundle asset ${args.asset.path} hashed ${digest}, not ${args.asset.sha256}`)
+ }
+ return whole
+}
+
+/**
+ * Every chunk reply restates the build, path and offset it answers, and the whole asset's length and
+ * hash. Checking all five is what makes a misrouted or stale reply a failure here instead of a
+ * corrupt reassembly: a desktop that auto-updates mid-download answers a later chunk from a
+ * different build, and nothing else in the reply would say so.
+ */
+function assertChunkDescribesAsset(
+ chunk: {
+ buildId: string
+ path: string
+ offset: number
+ assetByteLength: number
+ sha256: string
+ },
+ asset: MobileWebBundleAssetRead,
+ buildId: string,
+ offset: number
+): void {
+ if (chunk.buildId !== buildId) {
+ throw new Error(`bundle build changed mid-fetch: asked ${buildId}, served ${chunk.buildId}`)
+ }
+ if (chunk.path !== asset.path || chunk.offset !== offset) {
+ throw new Error(
+ `bundle chunk answered ${chunk.path} at ${chunk.offset}, not ${asset.path} at ${offset}`
+ )
+ }
+ if (chunk.sha256 !== asset.sha256 || chunk.assetByteLength !== asset.byteLength) {
+ throw new Error(`bundle asset ${asset.path} no longer matches the manifest entry`)
+ }
+}
+
+/** The caller's abort is what it asked for; the internal one never leaves this module, because the
+ * asset that failed rejects first and is what `Promise.all` reports. */
+function throwIfStopped(caller: AbortSignal | undefined, stopped: AbortSignal): void {
+ if (caller?.aborted === true) {
+ throw new Error('mobile web bundle fetch aborted')
+ }
+ if (stopped.aborted) {
+ throw new Error('mobile web bundle fetch stopped after an earlier asset failed')
+ }
+}
+
+/** Metro ships no Buffer; `atob` is the decoder the pairing and E2EE paths already run on Hermes. */
+function decodeBase64(value: string): Uint8Array {
+ const binary = atob(value)
+ const bytes = new Uint8Array(binary.length)
+ for (let index = 0; index < binary.length; index += 1) {
+ bytes[index] = binary.charCodeAt(index)
+ }
+ return bytes
+}
+
+function toHex(bytes: Uint8Array): string {
+ return Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('')
+}
diff --git a/mobile/src/transport/mobile-web-bundle-operations.ts b/mobile/src/transport/mobile-web-bundle-operations.ts
new file mode 100644
index 00000000000..accd27bdfe5
--- /dev/null
+++ b/mobile/src/transport/mobile-web-bundle-operations.ts
@@ -0,0 +1,77 @@
+import {
+ MobileWebBundleErrorCodeSchema,
+ MOBILE_WEB_BUNDLE_CHUNK_METHOD,
+ MOBILE_WEB_BUNDLE_MANIFEST_METHOD,
+ type MobileWebBundleErrorCode
+} from '../../../src/shared/mobile-web-bundle/bundle-rpc-contract'
+import {
+ MobileWebBundleChunkReplySchema,
+ MobileWebBundleManifestReplySchema
+} from './mobile-web-bundle-reply-schemas'
+import { defineRpcOperation } from './rpc-operation'
+import { rpcResultVariant } from './rpc-operation-result-reader'
+
+// The two reads that hand a paired phone the desktop's mobile web bundle. Both are
+// `require-result-or-throw`: there is no partial success here, and a salvage policy would produce a
+// half-bundle that fails a hash check much later, far from the cause. Both settle at `on-settle`,
+// because each reply is acted on before the next request is built — the manifest decides which
+// assets to page, and a chunk decides the next offset.
+
+/** The whole manifest plus the chunk size the host will serve it at. */
+export const mobileWebBundleManifestRead = defineRpcOperation({
+ name: 'mobileWeb.bundle-manifest',
+ method: MOBILE_WEB_BUNDLE_MANIFEST_METHOD,
+ acceptance: 'require-result-or-throw',
+ barrier: 'on-settle',
+ read: rpcResultVariant('mobile-web-bundle-manifest', MobileWebBundleManifestReplySchema)
+})
+
+/** One page of one asset, self-describing so a misplaced reply cannot corrupt a reassembly. */
+export const mobileWebBundleChunkRead = defineRpcOperation({
+ name: 'mobileWeb.bundle-chunk',
+ method: MOBILE_WEB_BUNDLE_CHUNK_METHOD,
+ acceptance: 'require-result-or-throw',
+ barrier: 'on-settle',
+ read: rpcResultVariant('mobile-web-bundle-chunk', MobileWebBundleChunkReplySchema)
+})
+
+/** A code is a bare snake_case token, so only the two positions one can occupy are read. */
+const LEADING_CODE_TOKEN = /^[a-z][a-z0-9_]*/
+
+/**
+ * The host's six codes, read back off a thrown refusal.
+ *
+ * The host raises these as `InvalidArgumentError`, which the dispatcher maps to envelope code
+ * `invalid_argument` with the machine code as the message
+ * (`src/main/runtime/rpc/dispatcher-error-response.ts`), and `require-result-or-throw` throws
+ * `` `${code}: ${message}` ``. So the token this branches on is either the whole message or what
+ * follows the envelope code, and nowhere else: scanning the prose for a code anywhere would let a
+ * host that merely quoted one back read as that failure.
+ *
+ * Returns null for every other error, including a transport rejection, which is not a verdict about
+ * the bundle at all. Membership is decided by the contract's own enum, so the arms cannot drift
+ * from `MOBILE_WEB_BUNDLE_ERROR_CODES`.
+ */
+export function readMobileWebBundleErrorCode(error: unknown): MobileWebBundleErrorCode | null {
+ if (!(error instanceof Error)) {
+ return null
+ }
+ const head = LEADING_CODE_TOKEN.exec(error.message)?.[0]
+ if (head === undefined) {
+ return null
+ }
+ const direct = MobileWebBundleErrorCodeSchema.safeParse(head)
+ if (direct.success) {
+ return direct.data
+ }
+ const prefix = `${head}: `
+ if (!error.message.startsWith(prefix)) {
+ return null
+ }
+ const nested = LEADING_CODE_TOKEN.exec(error.message.slice(prefix.length))?.[0]
+ if (nested === undefined) {
+ return null
+ }
+ const parsed = MobileWebBundleErrorCodeSchema.safeParse(nested)
+ return parsed.success ? parsed.data : null
+}
diff --git a/mobile/src/transport/mobile-web-bundle-reply-schemas.test.ts b/mobile/src/transport/mobile-web-bundle-reply-schemas.test.ts
new file mode 100644
index 00000000000..3b80906d836
--- /dev/null
+++ b/mobile/src/transport/mobile-web-bundle-reply-schemas.test.ts
@@ -0,0 +1,301 @@
+import { describe, expect, it } from 'vitest'
+import {
+ MOBILE_WEB_BUNDLE_CHUNK_BYTES,
+ MOBILE_WEB_BUNDLE_ERROR_CODES
+} from '../../../src/shared/mobile-web-bundle/bundle-rpc-contract'
+import {
+ MOBILE_WEB_BUNDLE_MAX_ASSETS,
+ MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES,
+ MOBILE_WEB_BUNDLE_MAX_TOTAL_BYTES
+} from '../../../src/shared/mobile-web-bundle/manifest-contract'
+import {
+ mobileWebBundleChunkRead,
+ mobileWebBundleManifestRead,
+ readMobileWebBundleErrorCode
+} from './mobile-web-bundle-operations'
+import type { RpcReadResult } from './rpc-operation-contract'
+
+const BUILD_ID = 'a'.repeat(64)
+const ASSET_SHA = 'b'.repeat(64)
+const MAX_DATA_BASE64_LENGTH = Math.ceil(MOBILE_WEB_BUNDLE_CHUNK_BYTES / 3) * 4 + 8
+
+function asset(overrides: Record = {}) {
+ return {
+ path: 'index.html',
+ sha256: ASSET_SHA,
+ byteLength: 12,
+ contentType: 'text/html; charset=utf-8',
+ ...overrides
+ }
+}
+
+function manifestReply(overrides: Record = {}) {
+ return {
+ manifest: {
+ schemaVersion: 1,
+ buildId: BUILD_ID,
+ desktopVersion: '1.4.200',
+ minCompatibleRuntimeProtocolVersion: 2,
+ runtimeProtocolVersion: 2,
+ entrypoint: 'index.html',
+ totalBytes: 12,
+ assets: [asset()],
+ ...overrides
+ },
+ chunkBytes: MOBILE_WEB_BUNDLE_CHUNK_BYTES
+ }
+}
+
+function chunkReply(overrides: Record = {}) {
+ return {
+ buildId: BUILD_ID,
+ path: 'index.html',
+ offset: 0,
+ assetByteLength: 12,
+ sha256: ASSET_SHA,
+ dataBase64: 'aGVsbG8=',
+ eof: true,
+ ...overrides
+ }
+}
+
+function readManifest(raw: unknown): RpcReadResult {
+ return mobileWebBundleManifestRead.read(raw)
+}
+
+function readChunk(raw: unknown): RpcReadResult {
+ return mobileWebBundleChunkRead.read(raw)
+}
+
+describe('mobile web bundle manifest reply reader', () => {
+ it('reads a manifest and keeps every member an unknown key carries', () => {
+ const result = readManifest({
+ ...manifestReply(),
+ manifest: { ...manifestReply().manifest, contentEncoding: 'br' },
+ servedFrom: 'asar'
+ })
+
+ expect(result.compatible).toBe(true)
+ if (!result.compatible) {
+ return
+ }
+ expect(result.variant).toBe('mobile-web-bundle-manifest')
+ expect(result.salvage).toEqual({ droppedPaths: [], droppedCount: 0 })
+ expect(result.value).toMatchObject({
+ servedFrom: 'asar',
+ chunkBytes: MOBILE_WEB_BUNDLE_CHUNK_BYTES,
+ manifest: { contentEncoding: 'br', buildId: BUILD_ID }
+ })
+ })
+
+ it('accepts a host that shrank chunkBytes and refuses one that grew it', () => {
+ expect(readManifest({ ...manifestReply(), chunkBytes: 1 }).compatible).toBe(true)
+ expect(
+ readManifest({ ...manifestReply(), chunkBytes: MOBILE_WEB_BUNDLE_CHUNK_BYTES }).compatible
+ ).toBe(true)
+ for (const chunkBytes of [0, -1, 1.5, MOBILE_WEB_BUNDLE_CHUNK_BYTES + 1]) {
+ expect(readManifest({ ...manifestReply(), chunkBytes }).compatible).toBe(false)
+ }
+ })
+
+ it('bounds what a manifest can make the fetch allocate, however it declares totalBytes', () => {
+ // The ceilings above bound each asset and the asset count, and `totalBytes` separately. None
+ // of them bounds the product, which is what the fetch allocates.
+ const oversized = Array.from({ length: MOBILE_WEB_BUNDLE_MAX_ASSETS }, (_, index) =>
+ asset({ path: `assets/${index}.js`, byteLength: MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES })
+ )
+ expect(readManifest(manifestReply({ totalBytes: 0, assets: oversized })).compatible).toBe(false)
+ expect(readManifest(manifestReply({ totalBytes: 12, assets: oversized })).compatible).toBe(
+ false
+ )
+ })
+
+ it('accepts a bundle that sums to the ceiling and refuses one byte more', () => {
+ // Four assets, because one quarter of the total ceiling is the largest share that still fits
+ // under the per-asset ceiling. `lastByteLength` moves only the final one.
+ const quarter = MOBILE_WEB_BUNDLE_MAX_TOTAL_BYTES / 4
+ const spread = (lastByteLength: number) =>
+ Array.from({ length: 4 }, (_, index) =>
+ asset({ path: `assets/${index}.js`, byteLength: index === 3 ? lastByteLength : quarter })
+ )
+ expect(
+ readManifest(
+ manifestReply({ totalBytes: MOBILE_WEB_BUNDLE_MAX_TOTAL_BYTES, assets: spread(quarter) })
+ ).compatible
+ ).toBe(true)
+ expect(
+ readManifest(
+ manifestReply({
+ totalBytes: MOBILE_WEB_BUNDLE_MAX_TOTAL_BYTES,
+ assets: spread(quarter + 1)
+ })
+ ).compatible
+ ).toBe(false)
+ })
+
+ it('refuses one asset over the per-asset ceiling and accepts one at it', () => {
+ expect(
+ readManifest(
+ manifestReply({
+ totalBytes: MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES,
+ assets: [asset({ byteLength: MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES })]
+ })
+ ).compatible
+ ).toBe(true)
+ expect(
+ readManifest(
+ manifestReply({ assets: [asset({ byteLength: MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES + 1 })] })
+ ).compatible
+ ).toBe(false)
+ })
+
+ it('refuses a schemaVersion it does not know rather than guessing at the shape', () => {
+ expect(readManifest(manifestReply({ schemaVersion: 2 })).compatible).toBe(false)
+ expect(readManifest(manifestReply({ schemaVersion: undefined })).compatible).toBe(false)
+ })
+
+ it('bounds every manifest field the fetch reads', () => {
+ expect(readManifest(manifestReply({ buildId: 'A'.repeat(64) })).compatible).toBe(false)
+ expect(readManifest(manifestReply({ buildId: 'a'.repeat(63) })).compatible).toBe(false)
+ expect(readManifest(manifestReply({ assets: [] })).compatible).toBe(false)
+ expect(
+ readManifest(
+ manifestReply({
+ assets: Array.from({ length: MOBILE_WEB_BUNDLE_MAX_ASSETS + 1 }, (_, index) =>
+ asset({ path: `assets/${index}.js` })
+ )
+ })
+ ).compatible
+ ).toBe(false)
+ expect(
+ readManifest(manifestReply({ totalBytes: MOBILE_WEB_BUNDLE_MAX_TOTAL_BYTES + 1 })).compatible
+ ).toBe(false)
+ expect(readManifest(manifestReply({ entrypoint: undefined })).compatible).toBe(false)
+ expect(readManifest(manifestReply({ entrypoint: '../escape.html' })).compatible).toBe(false)
+ })
+
+ it('bounds every asset field and rejects a path that could leave the bundle root', () => {
+ for (const path of ['../evil.js', '/abs.js', 'a\\b.js', 'nul.js', 'trailing.']) {
+ expect(readManifest(manifestReply({ assets: [asset({ path })] })).compatible).toBe(false)
+ }
+ expect(readManifest(manifestReply({ assets: [asset({ sha256: 'zz' })] })).compatible).toBe(
+ false
+ )
+ expect(
+ readManifest(
+ manifestReply({ assets: [asset({ byteLength: MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES + 1 })] })
+ ).compatible
+ ).toBe(false)
+ expect(readManifest(manifestReply({ assets: [asset({ byteLength: -1 })] })).compatible).toBe(
+ false
+ )
+ expect(readManifest(manifestReply({ assets: [asset({ contentType: '' })] })).compatible).toBe(
+ false
+ )
+ })
+})
+
+describe('mobile web bundle chunk reply reader', () => {
+ it('reads a chunk and passes an unknown member through', () => {
+ const result = readChunk({ ...chunkReply(), contentEncoding: 'br' })
+
+ expect(result.compatible).toBe(true)
+ if (!result.compatible) {
+ return
+ }
+ expect(result.variant).toBe('mobile-web-bundle-chunk')
+ expect(result.value).toMatchObject({ contentEncoding: 'br', eof: true, offset: 0 })
+ expect(result.salvage.droppedCount).toBe(0)
+ })
+
+ it('bounds dataBase64 at the chunk size the contract allows', () => {
+ expect(
+ readChunk(chunkReply({ dataBase64: 'A'.repeat(MAX_DATA_BASE64_LENGTH) })).compatible
+ ).toBe(true)
+ expect(
+ readChunk(chunkReply({ dataBase64: 'A'.repeat(MAX_DATA_BASE64_LENGTH + 1) })).compatible
+ ).toBe(false)
+ })
+
+ it('requires every member that makes a chunk self-describing', () => {
+ for (const overrides of [
+ { buildId: 'nope' },
+ { path: '../escape.js' },
+ { offset: -1 },
+ { offset: 1.5 },
+ { assetByteLength: MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES + 1 },
+ { sha256: 'b'.repeat(63) },
+ { dataBase64: undefined },
+ { eof: 'yes' },
+ { eof: undefined }
+ ]) {
+ expect(readChunk(chunkReply(overrides)).compatible).toBe(false)
+ }
+ })
+
+ it('refuses a reply that is not an object at all', () => {
+ for (const raw of [null, undefined, 'chunk', 7, []]) {
+ expect(readChunk(raw).compatible).toBe(false)
+ }
+ })
+})
+
+describe('mobile web bundle error codes', () => {
+ it('maps every code the host declares, from both positions one can occupy', () => {
+ expect(MOBILE_WEB_BUNDLE_ERROR_CODES).toHaveLength(6)
+ for (const code of MOBILE_WEB_BUNDLE_ERROR_CODES) {
+ expect(readMobileWebBundleErrorCode(new Error(`invalid_argument: ${code}`))).toBe(code)
+ expect(readMobileWebBundleErrorCode(new Error(code))).toBe(code)
+ expect(readMobileWebBundleErrorCode(new Error(`invalid_argument: ${code}: no bundle`))).toBe(
+ code
+ )
+ }
+ })
+
+ it('answers null for anything that is not one of those six', () => {
+ expect(readMobileWebBundleErrorCode(new Error('invalid_argument: some_other_code'))).toBeNull()
+ expect(readMobileWebBundleErrorCode(new Error('internal_error: boom'))).toBeNull()
+ expect(readMobileWebBundleErrorCode(new Error(' '))).toBeNull()
+ expect(readMobileWebBundleErrorCode(new Error('Network request failed'))).toBeNull()
+ expect(readMobileWebBundleErrorCode('mobile_web_bundle_unavailable')).toBeNull()
+ expect(readMobileWebBundleErrorCode(null)).toBeNull()
+ })
+
+ it('does not read a code a host merely quoted somewhere in its prose', () => {
+ expect(
+ readMobileWebBundleErrorCode(
+ new Error('invalid_argument: the bundle is mobile_web_bundle_unavailable here')
+ )
+ ).toBeNull()
+ // Unanchored, this one reads as a refusal; the code is neither the whole message nor what
+ // follows the envelope code.
+ expect(
+ readMobileWebBundleErrorCode(new Error('RPC mobile_web_bundle_unavailable failed'))
+ ).toBeNull()
+ // The second position is `: `, exactly. Slicing the leading token's length off
+ // any message would make this one read as the code that follows the bracket.
+ expect(
+ readMobileWebBundleErrorCode(new Error('rpc (mobile_web_bundle_unavailable)'))
+ ).toBeNull()
+ })
+
+ it('reads a dispatcher schema refusal, whose message is prose, as no code at all', () => {
+ for (const message of [
+ 'invalid_argument: Invalid input: expected string, received number',
+ 'invalid_argument: too_small: expected string to have >=1 characters'
+ ]) {
+ expect(readMobileWebBundleErrorCode(new Error(message))).toBeNull()
+ }
+ })
+})
+
+describe('mobile web bundle operation descriptors', () => {
+ it('accepts no reply but a result', () => {
+ // A salvage or bare-message policy would hand the fetch a half-bundle that fails a hash check
+ // much later, far from the cause.
+ for (const operation of [mobileWebBundleManifestRead, mobileWebBundleChunkRead]) {
+ expect(operation.acceptance).toBe('require-result-or-throw')
+ expect(operation.barrier).toBe('on-settle')
+ }
+ })
+})
diff --git a/mobile/src/transport/mobile-web-bundle-reply-schemas.ts b/mobile/src/transport/mobile-web-bundle-reply-schemas.ts
new file mode 100644
index 00000000000..aa1ba5ec662
--- /dev/null
+++ b/mobile/src/transport/mobile-web-bundle-reply-schemas.ts
@@ -0,0 +1,82 @@
+import { z } from 'zod'
+import { MOBILE_WEB_BUNDLE_CHUNK_BYTES } from '../../../src/shared/mobile-web-bundle/bundle-rpc-contract'
+import {
+ MobileWebBundleAssetPathSchema,
+ MOBILE_WEB_BUNDLE_MAX_ASSETS,
+ MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES,
+ MOBILE_WEB_BUNDLE_MAX_TOTAL_BYTES,
+ MOBILE_WEB_BUNDLE_SCHEMA_VERSION
+} from '../../../src/shared/mobile-web-bundle/manifest-contract'
+
+// Hoisted, never built inside a reader: a schema constructed per parse cost 2275 ns against 156 ns
+// for the same shape hoisted (#21311).
+//
+// Loose where the host contract is strict, and required only where this client reads. The host's
+// own schemas describe what it produces and stay `.strict()`; a phone that rejected an unknown
+// member would turn a later optional field into a released-client break instead of the Rule 1
+// addition `docs/reference/remote-wire-compatibility.md` allows.
+
+/** Lowercase hex digest. The shared contract keeps its copy private, so this is the one place the
+ * client states the shape it accepts. */
+const SHA256_PATTERN = /^[a-f0-9]{64}$/
+
+/** Base64 of one chunk, bounded by the same arithmetic as `skill-upload-session-contract.ts`, so a
+ * host that overshoots is refused at the boundary instead of at reassembly. */
+const MAX_DATA_BASE64_LENGTH = Math.ceil(MOBILE_WEB_BUNDLE_CHUNK_BYTES / 3) * 4 + 8
+
+const assetSchema = z.looseObject({
+ path: MobileWebBundleAssetPathSchema,
+ sha256: z.string().regex(SHA256_PATTERN),
+ byteLength: z.number().int().nonnegative().max(MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES),
+ contentType: z.string().min(1)
+})
+
+/** Everything the fetch reads: the id it caches under, the assets it pages, and the entry it will
+ * later load. `desktopVersion` and the protocol window pass through untyped — Phase B's update
+ * wall reads them, this phase does not.
+ *
+ * `schemaVersion` stays a literal because the manifest is closed in both directions: a bump is the
+ * only change path, and an unrecognised one is an unusable bundle to re-fetch, never a crash. */
+const manifestSchema = z
+ .looseObject({
+ schemaVersion: z.literal(MOBILE_WEB_BUNDLE_SCHEMA_VERSION),
+ buildId: z.string().regex(SHA256_PATTERN),
+ entrypoint: MobileWebBundleAssetPathSchema,
+ totalBytes: z.number().int().nonnegative().max(MOBILE_WEB_BUNDLE_MAX_TOTAL_BYTES),
+ assets: z.array(assetSchema).min(1).max(MOBILE_WEB_BUNDLE_MAX_ASSETS)
+ })
+ // The allocation bound, and the reason it is the sum rather than `totalBytes`: the fetch
+ // allocates one buffer per asset from `byteLength` and holds them all, so a manifest declaring
+ // `totalBytes` 0 alongside 256 assets of 10 MiB each would pass every ceiling above and still
+ // cost 2560 MiB. The host pins sum === totalBytes; this client never trusts `totalBytes` for
+ // anything, so it bounds what it will actually allocate instead.
+ .refine(
+ (manifest) =>
+ manifest.assets.reduce((sum, asset) => sum + asset.byteLength, 0) <=
+ MOBILE_WEB_BUNDLE_MAX_TOTAL_BYTES,
+ 'assets sum to more than the contract total'
+ )
+
+/** `chunkBytes` is read, never assumed: the host may shrink it without a client release. Capped at
+ * the constant because a larger value would overshoot `dataBase64` above. */
+export const MobileWebBundleManifestReplySchema = z.looseObject({
+ manifest: manifestSchema,
+ chunkBytes: z.number().int().positive().max(MOBILE_WEB_BUNDLE_CHUNK_BYTES)
+})
+
+/** Self-describing on purpose: `buildId`, `path` and `offset` are echoed so a reassembler cannot
+ * misplace a reply, and `sha256`/`assetByteLength` describe the whole asset rather than this
+ * chunk, which is what lets the fetch verify without a second index. */
+export const MobileWebBundleChunkReplySchema = z.looseObject({
+ buildId: z.string().regex(SHA256_PATTERN),
+ path: MobileWebBundleAssetPathSchema,
+ offset: z.number().int().nonnegative().max(MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES),
+ assetByteLength: z.number().int().nonnegative().max(MOBILE_WEB_BUNDLE_MAX_ASSET_BYTES),
+ sha256: z.string().regex(SHA256_PATTERN),
+ dataBase64: z.string().max(MAX_DATA_BASE64_LENGTH),
+ eof: z.boolean()
+})
+
+export type MobileWebBundleManifestReply = z.output
+export type MobileWebBundleManifestRead = MobileWebBundleManifestReply['manifest']
+export type MobileWebBundleAssetRead = MobileWebBundleManifestRead['assets'][number]
diff --git a/mobile/src/transport/rpc-operation-compile-fence.ts b/mobile/src/transport/rpc-operation-compile-fence.ts
index ac14b326fd2..c57c4950a01 100644
--- a/mobile/src/transport/rpc-operation-compile-fence.ts
+++ b/mobile/src/transport/rpc-operation-compile-fence.ts
@@ -9,6 +9,7 @@ import {
} from './rpc-operation'
import { rpcResultVariants } from './rpc-operation-result-reader'
import {
+ pushTestWithoutParams,
workspaceListAtBarrier,
workspaceListOrNull,
workspaceRowsReader,
@@ -146,6 +147,17 @@ export async function fenceBarrierAndParams(): Promise {
)
}
+// A method the catalog declares params-less keeps every shape a shipped sender may use. An
+// explicit `null` is the one that matters: `params: null` is not the frame that omits the key,
+// so narrowing this to omission would rewrite bytes main already puts on the wire.
+export async function fenceParamlessSend(): Promise {
+ await runRpcOperation(client, pushTestWithoutParams, null)
+ await runRpcOperation(client, pushTestWithoutParams, undefined)
+ await runRpcOperation(client, pushTestWithoutParams)
+ // @ts-expect-error a method that declares no params accepts none
+ await runRpcOperation(client, pushTestWithoutParams, { path: 'main.js' })
+}
+
export async function fenceVerdictTypes(): Promise {
// @ts-expect-error the probe's policy yields a boolean, not the other family's rows
const rows: WorkspaceRows = await runRpcOperation(client, worktreePsProbe, {})
diff --git a/mobile/src/transport/rpc-operation-test-families.ts b/mobile/src/transport/rpc-operation-test-families.ts
index 73554b7a4f8..a93c0ba1abf 100644
--- a/mobile/src/transport/rpc-operation-test-families.ts
+++ b/mobile/src/transport/rpc-operation-test-families.ts
@@ -54,6 +54,14 @@ export const worktreePsProbe = defineRpcOperation({
barrier: 'on-settle'
})
+/** A method the catalog declares with no params at all, so `RpcSendParams` reads `void`. */
+export const pushTestWithoutParams = defineRpcOperation({
+ name: 'test.pushTestWithoutParams',
+ method: 'notifications.testPush',
+ acceptance: 'method-not-found-refusal',
+ barrier: 'on-settle'
+})
+
export const terminalStreamOpener = defineRpcOperation({
name: 'test.terminalStreamOpener',
method: 'terminal.subscribe',
diff --git a/mobile/src/transport/rpc-operation.ts b/mobile/src/transport/rpc-operation.ts
index a836dc429fb..93424f35433 100644
--- a/mobile/src/transport/rpc-operation.ts
+++ b/mobile/src/transport/rpc-operation.ts
@@ -173,10 +173,13 @@ export async function runRpcOperation<
>(
client: UnvalidatedRpcRequestPort,
operation: RpcOperation,
- params: RpcSendParams,
- options?: SendRequestOptions
+ // Shares the deferred sender's tuple so the two cannot disagree about what a params-less
+ // method may be called with: the catalog types those `void`, and an explicit `null` is the
+ // frame three of them go out with today (`notifications.testPush`,
+ // `notifications.unregisterPush`, `speech.models.list`), all through the deferred entry point.
+ ...args: RpcSendArguments
): Promise> {
- const outcome = await request(client, operation, params, options)
+ const outcome = await request(client, operation, args[0], args[1])
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary.
return interpretRpcOutcome(operation, outcome) as RpcVerdict
}
From 69246e9b068b8282666a3b0af14cb4581a9e2562 Mon Sep 17 00:00:00 2001
From: OrcaWin
Date: Thu, 17 Sep 2026 23:52:01 -0700
Subject: [PATCH 002/224] fix(terminal): retire explicitly closed pending split
connections (#21001)
* fix(terminal): retire explicitly closed pending split connections
* test(memory): keep pending split proof compatible with formatted source
* fix(terminal): confirm pending split retirement before stopping work
* fix(terminal): restore the pending split-close gates CI checks
Three CI gates were red on this branch and all three were this branch's own.
The hook-order parity snapshot did not count the `confirmedCloseRef` this
branch adds to `use-terminal-pane-close-actions.ts`. Dumping the flattened
order against clean `main` shows exactly one added `useRef` at position 148
and no reordering, so the count moves 211 -> 212 and the digest with it.
`pending-split-close-test-fixture.ts` is Vitest support code, but it sits
outside the `*.test` / `*.spec` / `tests` globs that already switch
`anti-slop/no-module-mocking` off, so the gate failed on all twelve of its
`vi.mock` calls. It carries a file-scoped disable with the reason, matching
`work-item-search-test-harness.ts`.
`fix.patch` still described the pre-confirmation shape of the close hook, so
`reproduce.mjs` aborted with `Source changed` and the cited ablation could not
run at this head. Regenerated against the committed sources; the harness again
reports 10 pass / 14 fail before and 24 pass / 0 fail after.
Merges `main` rather than rebasing: #21005 is stacked on this branch.
---------
Co-authored-by: m4air
Co-authored-by: Neil
---
docs/audits/pending-split-close/README.md | 42 ++++
.../pending-split-close/daemon-proof.test.ts | 132 ++++++++++
docs/audits/pending-split-close/fix.patch | 237 ++++++++++++++++++
docs/audits/pending-split-close/reproduce.mjs | 152 +++++++++++
docs/audits/pending-split-close/results.json | 65 +++++
.../terminal-pane/ipc-pty-connect.ts | 4 +
.../pending-pane-close-confirmation.test.ts | 192 ++++++++++++++
.../pending-split-close-test-fixture.ts | 207 +++++++++++++++
.../terminal-pane/pending-split-close.test.ts | 193 ++++++++++++++
.../terminal-pane/pty-transport-types.ts | 5 +-
.../components/terminal-pane/pty-transport.ts | 5 +-
.../retire-unbound-ipc-terminal-pane.ts | 83 ++++++
.../terminal-pane-close-admission.ts | 68 +++++
.../terminal-pane-hook-order-parity.test.ts | 6 +-
.../use-terminal-pane-close-actions.ts | 51 +++-
...terminal-pane-retirement-ownership.test.ts | 85 +++++++
.../store/slices/terminal-tab-retirement.ts | 24 ++
17 files changed, 1537 insertions(+), 14 deletions(-)
create mode 100644 docs/audits/pending-split-close/README.md
create mode 100644 docs/audits/pending-split-close/daemon-proof.test.ts
create mode 100644 docs/audits/pending-split-close/fix.patch
create mode 100644 docs/audits/pending-split-close/reproduce.mjs
create mode 100644 docs/audits/pending-split-close/results.json
create mode 100644 src/renderer/src/components/terminal-pane/pending-pane-close-confirmation.test.ts
create mode 100644 src/renderer/src/components/terminal-pane/pending-split-close-test-fixture.ts
create mode 100644 src/renderer/src/components/terminal-pane/pending-split-close.test.ts
create mode 100644 src/renderer/src/components/terminal-pane/retire-unbound-ipc-terminal-pane.ts
create mode 100644 src/renderer/src/components/terminal-pane/terminal-pane-close-admission.ts
create mode 100644 src/renderer/src/store/slices/terminal-pane-retirement-ownership.test.ts
diff --git a/docs/audits/pending-split-close/README.md b/docs/audits/pending-split-close/README.md
new file mode 100644
index 00000000000..e1c4902f166
--- /dev/null
+++ b/docs/audits/pending-split-close/README.md
@@ -0,0 +1,42 @@
+# Pending split close can omit shell retirement
+
+A restored split pane can be explicitly closed while its IPC spawn/reattach reply is pending. Its transport has no bound PTY ID yet. The old close path deleted the durable leaf binding and destroyed the unbound transport without requesting retirement. The late-result cleanup deliberately preserved reattach and cold-restore replies for remounts, so an existing shell or newly cold-restored shell could remain live with no pane and no kill request.
+
+This is a concrete mechanism matching the **missing kill requests** in [#15210](https://github.com/stablyai/orca/issues/15210). The relevant close, late-result exclusion, and daemon cold-restore behavior exists in both `v1.4.184` and `v1.4.198`. The report does not establish that this sequence produced its 51 shells. It also does not establish a retained Electron-main heap slope or independently explain [#19831](https://github.com/stablyai/orca/issues/19831).
+
+## Ownership and fix
+
+The explicit split-close hook captures its durable requested PTY before removing the leaf binding. Existing tab-retirement planning resolves the local/direct-SSH execution owner. It requests retirement immediately and retains an explicit-close callback for the late same-ID result. The late callback rechecks current store ownership and the current transport map, including a replacement at the same leaf. It makes a second request only when no owner remains.
+
+An eager request alone is insufficient: Electron spawn preflight can still be waiting before the adapter/history lock exists. A kill can return `SessionNotFoundError`, then the pending spawn creates a new cold-restored shell. The late-result request closes that window. If spawn already owns the adapter's history lock, the ordinary known-ID shutdown waits behind it; the control case preserves that behavior.
+
+Generic detach/destroy keeps its existing behavior. Repeated destroy retains explicit intent, while a different returned reattach identity remains protected. The tab aggregate/row ID is not counted as a separate same-tab owner; it can be the closing leaf's own stale index. Other live tabs use all existing retirement ownership sources; remote alias matching reuses the existing normalized identity.
+
+Paired-runtime handles, runtime-owned native hints, and unresolved owners never fall through to local kill. They are outside this IPC fix. A provider failure is logged by the existing retirement helper; requesting retirement is not confirmation of process death. No host inventory sweep, wire change, global tombstone, or remount-driven shutdown is introduced. A shared owner already present at close keeps its established retirement responsibility; this does not change all pending-fresh/shared-owner races.
+
+## Close-confirmation review correction
+
+The original tests called `executeClosePane` after a close decision. A separate review found that the public `handleRequestClosePane` callback skipped the running-work check while the transport was still unbound. Retirement now obtains the pending local/direct-SSH identity from the existing retirement plan and runs the existing confirmation flow first. An unverified pending probe asks for confirmation; Cancel preserves the process. Before a delayed decision or confirmation acts, the captured tab generation, pane, transport, binding, and execution owner must still match. A split that became the final pane cannot turn an old confirmation into a whole-tab close.
+
+`pending-pane-close-confirmation.test.ts` exercises the public callbacks, including live and unverified work, Cancel, confirmed close, completed attachment, ownership replacement, and direct SSH. These are separate regression controls added after the original comparative proof below; they do not change its historical case counts.
+
+## Reproduce
+
+From the repository root with the existing dependencies installed:
+
+```sh
+ORCA_BACKGROUND_LAUNCH=1 node docs/audits/pending-split-close/reproduce.mjs
+```
+
+The script runs the actual close hook, layout binding, pane-close handler, IPC transport, daemon server, and daemon adapter. React registration and unrelated presentation/status callbacks are mocked. Daemon cases use temporary sockets, synthetic history, and the existing fake subprocess fixture; no real shell or Orca window is launched. It cleans its temporary configuration and invokes Vitest through the repository's cross-platform `runProcess`.
+
+`fix.patch` is reversed only inside a temporary Vite source transform for the baseline. Working files remain unchanged. New helper/test sources remain present, but the baseline close hook cannot call the helper. Source hashes and exact cases are recorded in `results.json`:
+
+| Version | Passed | Failed |
+| --- | ---: | ---: |
+| Before fix | 10 | 14 |
+| With fix | 24 | 0 |
+
+The 24 cases retain the original nine reproduction/control scenarios and add same-leaf/new-map/different-tab adoption, sibling ownership, repeated destroy, provider failure/retry, spawn rejection, returned-ID mismatch, direct SSH, unresolved/paired-runtime routing, and folder workspace coverage. Eight separate ownership-query tests cover legacy/scoped aliases and the existing tab ownership sources. The baseline failures include assertions about the new eager request; they are not 14 independent leaks.
+
+Historical entry points: `v1.4.184` `TerminalPane.tsx:1163`, `use-terminal-pane-lifecycle.ts:1368`, `pty-transport.ts:859`, and `src/main/daemon/daemon-pty-adapter.ts:750`. The current equivalents are `use-terminal-pane-close-actions.ts`, `terminal-pane-pane-closed.ts`, `ipc-pty-connect.ts`, and `daemon-pty-spawn-result.ts`.
diff --git a/docs/audits/pending-split-close/daemon-proof.test.ts b/docs/audits/pending-split-close/daemon-proof.test.ts
new file mode 100644
index 00000000000..3a722fab071
--- /dev/null
+++ b/docs/audits/pending-split-close/daemon-proof.test.ts
@@ -0,0 +1,132 @@
+import { mkdirSync, rmSync, writeFileSync } from 'node:fs'
+import { join } from 'node:path'
+import { expect, it, vi } from 'vitest'
+import { preparePendingSplitClose } from '../../../src/renderer/src/components/terminal-pane/pending-split-close-test-fixture'
+import {
+ startDaemonAdapterHarness,
+ createMockSubprocess
+} from '../../../src/main/daemon/daemon-pty-adapter-test-harness'
+import { DaemonPtyAdapter } from '../../../src/main/daemon/daemon-pty-adapter'
+import { getHistorySessionDirName } from '../../../src/main/daemon/history-paths'
+import { SessionNotFoundError } from '../../../src/main/daemon/types'
+
+async function coldRestoreHarness() {
+ const subprocess = createMockSubprocess()
+ const h = await startDaemonAdapterHarness(() => subprocess)
+ const historyPath = join(h.dir, 'history')
+ const sessionDir = join(historyPath, getHistorySessionDirName('pty-restored'))
+ mkdirSync(sessionDir, { recursive: true })
+ writeFileSync(
+ join(sessionDir, 'meta.json'),
+ JSON.stringify({
+ cwd: h.dir,
+ cols: 80,
+ rows: 24,
+ startedAt: '2026-04-15T10:00:00Z',
+ endedAt: null,
+ exitCode: null
+ })
+ )
+ writeFileSync(join(sessionDir, 'scrollback.bin'), 'synthetic saved history\r\n')
+ const adapter = new DaemonPtyAdapter({
+ socketPath: h.socketPath,
+ tokenPath: h.tokenPath,
+ historyPath
+ })
+ const requests: Promise[] = []
+ const absent: string[] = []
+ const bridgeKill = (id: string): Promise => {
+ const request = adapter.shutdown(id, { immediate: true }).catch((error) => {
+ // The renderer IPC handler treats the provider's already-gone reply as success.
+ if (error instanceof SessionNotFoundError) {
+ absent.push(id)
+ return
+ }
+ throw error
+ })
+ requests.push(request)
+ return request
+ }
+ return {
+ adapter,
+ subprocess,
+ requests,
+ absent,
+ bridgeKill,
+ async dispose() {
+ adapter.dispose()
+ h.adapter.dispose()
+ await h.server.shutdown()
+ rmSync(h.dir, { recursive: true, force: true })
+ }
+ }
+}
+
+it('explicit split close retires a real daemon cold restore whose reply is pending', async () => {
+ const h = await coldRestoreHarness()
+ try {
+ const p = await preparePendingSplitClose()
+ vi.mocked(window.api.pty.kill).mockImplementation(h.bridgeKill)
+ const result = await h.adapter.spawn({ cols: 80, rows: 24, sessionId: 'pty-restored' })
+ expect(result.isReattach).not.toBe(true)
+ expect(result.coldRestore).toBeDefined()
+ expect(await h.adapter.probePtyLiveness('pty-restored')).toBe(true)
+ p.actions.executeClosePane(1)
+ p.spawn.resolve(result)
+ await p.connecting
+ await Promise.all(h.requests)
+ expect(window.api.pty.kill).toHaveBeenCalledTimes(2)
+ expect(h.subprocess.forceKill).toHaveBeenCalledOnce()
+ expect(await h.adapter.probePtyLiveness('pty-restored')).toBe(false)
+ } finally {
+ await h.dispose()
+ }
+})
+
+it('the explicit late reply retries a kill that completed before adapter admission', async () => {
+ const h = await coldRestoreHarness()
+ try {
+ const p = await preparePendingSplitClose()
+ vi.mocked(window.api.pty.kill).mockImplementation(h.bridgeKill)
+ p.actions.executeClosePane(1)
+ // Hold admission outside the adapter; there is no history lock or session yet.
+ await Promise.all(h.requests)
+ expect(h.absent).toEqual(['pty-restored'])
+ const result = await h.adapter.spawn({ cols: 80, rows: 24, sessionId: 'pty-restored' })
+ expect(result.coldRestore).toBeDefined()
+ expect(await h.adapter.probePtyLiveness('pty-restored')).toBe(true)
+ p.spawn.resolve(result)
+ await p.connecting
+ await Promise.all(h.requests)
+ expect(window.api.pty.kill).toHaveBeenCalledTimes(2)
+ expect(await h.adapter.probePtyLiveness('pty-restored')).toBe(false)
+ } finally {
+ await h.dispose()
+ }
+})
+
+it('a known-ID shutdown already admitted to the adapter waits for its spawn history lock', async () => {
+ const h = await coldRestoreHarness()
+ const started = Promise.withResolvers()
+ const release = Promise.withResolvers()
+ const finish = h.adapter['finishSpawn'].bind(h.adapter)
+ h.adapter['finishSpawn'] = async (context, result) => {
+ started.resolve()
+ await release.promise
+ return finish(context, result)
+ }
+ try {
+ const spawning = h.adapter.spawn({ cols: 80, rows: 24, sessionId: 'pty-restored' })
+ await started.promise
+ const stopping = h.adapter.shutdown('pty-restored', { immediate: true })
+ expect(h.subprocess.forceKill).not.toHaveBeenCalled()
+ release.resolve()
+ await spawning
+ await stopping
+ expect(await h.adapter.probePtyLiveness('pty-restored')).toBe(false)
+ expect(h.subprocess.forceKill).toHaveBeenCalledOnce()
+ } finally {
+ release.resolve()
+ await h.dispose()
+ }
+})
diff --git a/docs/audits/pending-split-close/fix.patch b/docs/audits/pending-split-close/fix.patch
new file mode 100644
index 00000000000..65a7ad808b8
--- /dev/null
+++ b/docs/audits/pending-split-close/fix.patch
@@ -0,0 +1,237 @@
+diff --git a/src/renderer/src/components/terminal-pane/ipc-pty-connect.ts b/src/renderer/src/components/terminal-pane/ipc-pty-connect.ts
+index 3023236de0e..52b983c51fd 100644
+--- a/src/renderer/src/components/terminal-pane/ipc-pty-connect.ts
++++ b/src/renderer/src/components/terminal-pane/ipc-pty-connect.ts
+@@ -27,6 +27,7 @@ type IpcPtyConnectContext = {
+ /** True only for the one buffered exit consumed by this connect attempt. */
+ isExpectedExitCurrent: () => boolean
+ ownsPtyId: (id: string) => boolean
++ handleExplicitlyClosedConnect?: (id: string) => boolean
+ bind: (id: string) => void
+ isCurrent: (id: string) => boolean
+ setCallbacks: (callbacks: PtyConnectOptions['callbacks']) => void
+@@ -89,6 +90,9 @@ export async function connectIpcPty(
+ const priorIncarnationFence = currentPreHandlerPtySequence()
+ const spawnResult = await spawnIpcPty(transportOptions, options, admittedSessionId)
+ const retireFreshSpawn = async (): Promise => {
++ if (context.handleExplicitlyClosedConnect?.(spawnResult.id)) {
++ return
++ }
+ // A newer generation may already own a recycled id; an id-only kill would retire its PTY.
+ if (
+ !spawnResult.isReattach &&
+diff --git a/src/renderer/src/components/terminal-pane/pty-transport-types.ts b/src/renderer/src/components/terminal-pane/pty-transport-types.ts
+index 4d7eaf7358b..2f6ed734bbf 100644
+--- a/src/renderer/src/components/terminal-pane/pty-transport-types.ts
++++ b/src/renderer/src/components/terminal-pane/pty-transport-types.ts
+@@ -232,7 +232,10 @@ export type PtyTransport = {
+ * it also drops the transport's output processor from the pty side-effect memory census,
+ * so a reattached one would run untracked. Create a new transport instead. */
+ detach?: (options?: { preserveExitObserver?: boolean }) => void
+- destroy?: () => void | Promise
++ destroy?: (options?: {
++ /** Explicit close can retain retirement intent until an unbound connect settles. */
++ onAbandonedConnect?: (ptyId: string) => boolean
++ }) => void | Promise
+ }
+
+ export type IpcPtyTransportOptions = {
+diff --git a/src/renderer/src/components/terminal-pane/pty-transport.ts b/src/renderer/src/components/terminal-pane/pty-transport.ts
+index f794b9a1e4d..7731e75eac5 100644
+--- a/src/renderer/src/components/terminal-pane/pty-transport.ts
++++ b/src/renderer/src/components/terminal-pane/pty-transport.ts
+@@ -44,6 +44,7 @@ export function createIpcPtyTransport(opts: IpcPtyTransportOptions = {}): PtyTra
+ } = opts
+ let connected = false
+ let destroyed = false
++ let onAbandonedConnect: ((ptyId: string) => boolean) | undefined
+ let ptyId: string | null = null
+ let lifecycleGeneration = 0
+ let lastExitGeneration: number | null = null
+@@ -137,6 +138,7 @@ export function createIpcPtyTransport(opts: IpcPtyTransportOptions = {}): PtyTra
+ lastExitGeneration === lifecycleGeneration &&
+ lifecycleGeneration === connectGeneration + 1,
+ ownsPtyId: (id) => !destroyed && connected && ptyId === id,
++ handleExplicitlyClosedConnect: (id) => destroyed && (onAbandonedConnect?.(id) ?? false),
+ bind,
+ isCurrent: (id) => lifecycleGeneration === connectGeneration && connected && ptyId === id,
+ setCallbacks,
+@@ -268,7 +270,8 @@ export function createIpcPtyTransport(opts: IpcPtyTransportOptions = {}): PtyTra
+ : { ...(opts.cwd ? { cwd: opts.cwd } : {}), ...(shellOverride ? { shellOverride } : {}) },
+ resetCrossChunkParserState: outputProcessor.resetAgentStatusCarry,
+
+- destroy() {
++ destroy(options) {
++ onAbandonedConnect ??= options?.onAbandonedConnect
+ destroyed = true
+ try {
+ this.disconnect()
+diff --git a/src/renderer/src/components/terminal-pane/use-terminal-pane-close-actions.ts b/src/renderer/src/components/terminal-pane/use-terminal-pane-close-actions.ts
+index 330b42166cd..ea85e929e81 100644
+--- a/src/renderer/src/components/terminal-pane/use-terminal-pane-close-actions.ts
++++ b/src/renderer/src/components/terminal-pane/use-terminal-pane-close-actions.ts
+@@ -1,4 +1,4 @@
+-import { useCallback, useImperativeHandle } from 'react'
++import { useCallback, useImperativeHandle, useRef } from 'react'
+ import { useAppStore } from '../../store'
+ import type { PaneExternalDropTarget } from '@/lib/pane-manager/pane-manager'
+ import { makePaneKey } from '../../../../shared/stable-pane-id'
+@@ -13,8 +13,11 @@ import {
+ } from './terminal-pane-tab-detach'
+ import { clearPaneTerminalError } from './terminal-error-accumulation'
+ import type { TerminalPaneBindingController } from './use-terminal-pane-layout-bindings'
++import { retireUnboundIpcTerminalPane } from './retire-unbound-ipc-terminal-pane'
++import { capturePendingTerminalPaneClose } from './terminal-pane-close-admission'
+
+ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingController) {
++ const confirmedCloseRef = useRef<(() => void) | null>(null)
+ const {
+ clearSessionRestoredBannerForPane,
+ managerRef,
+@@ -46,6 +49,13 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
+ clearSessionRestoredBannerForPane(paneId)
+ const leafId = manager.getLeafId(paneId)
+ if (leafId) {
++ retireUnboundIpcTerminalPane({
++ getState: useAppStore.getState,
++ tabId,
++ leafId,
++ transport: paneTransportsRef.current.get(paneId),
++ getTransports: () => paneTransportsRef.current
++ })
+ useAppStore.getState().setCacheTimerStartedAt(makePaneKey(tabId, leafId), null)
+ useAppStore.getState().dropAgentStatus(makePaneKey(tabId, leafId), { paneRemoved: true })
+ }
+@@ -79,12 +89,18 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
+ return
+ }
+ const transport = paneTransportsRef.current.get(paneId)
+- const ptyId = transport?.getPtyId()
++ const pending = capturePendingTerminalPaneClose(controller, paneId, useAppStore.getState)
++ const ptyId = transport?.getPtyId() ?? pending?.ptyId
+ if (!ptyId) {
+ executeClosePane(paneId)
+ return
+ }
+ const settings = useAppStore.getState().settings
++ const close = (): void => {
++ if (!pending || pending.isCurrent()) {
++ executeClosePane(paneId)
++ }
++ }
+ let decided = false
+ const decide = (act: () => void): void => {
+ if (decided) {
+@@ -93,12 +109,23 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
+ decided = true
+ act()
+ }
+- const confirmClose = (): void =>
++ const confirmClose = (): void => {
++ if (pending && !pending.isCurrent()) {
++ return
++ }
++ confirmedCloseRef.current = close
+ setPendingCloseConfirmation({
+ paneId,
+ copyKind: getCloseDialogCopyKind(paneId)
+ })
+- const probeTimeout = setTimeout(() => decide(confirmClose), RUNNING_CLOSE_PROBE_TIMEOUT_MS)
++ }
++ const probeTimeout = setTimeout(
++ () =>
++ decide(
++ pending && settings?.skipCloseTerminalWithRunningProcessConfirm ? close : confirmClose
++ ),
++ RUNNING_CLOSE_PROBE_TIMEOUT_MS
++ )
+ // Why the shared probe rather than a direct inspect: this is the same question the tab-close
+ // guard asks, and the two must not drift on what an unanswered host means.
+ void probePtyRunningWork(settings, [ptyId], { timeoutMs: RUNNING_CLOSE_PROBE_TIMEOUT_MS })
+@@ -106,10 +133,10 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
+ clearTimeout(probeTimeout)
+ decide(() => {
+ if (
+- probes[0]?.verdict !== 'live' ||
++ (pending ? probes[0]?.verdict === 'exited' : probes[0]?.verdict !== 'live') ||
+ settings?.skipCloseTerminalWithRunningProcessConfirm
+ ) {
+- executeClosePane(paneId)
++ close()
+ } else {
+ confirmClose()
+ }
+@@ -117,7 +144,9 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
+ })
+ .catch(() => {
+ clearTimeout(probeTimeout)
+- decide(() => executeClosePane(paneId))
++ decide(
++ pending && !settings?.skipCloseTerminalWithRunningProcessConfirm ? confirmClose : close
++ )
+ })
+ },
+ // oxlint-disable-next-line react-hooks/exhaustive-deps -- Preserve the pre-split dependency contract.
+@@ -143,22 +172,24 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
+ }, [])
+ const handleConfirmClose = useCallback(
+ (dontAskAgain: boolean) => {
+- if (pendingCloseConfirmation === null) {
++ if (pendingCloseConfirmation === null || confirmedCloseRef.current === null) {
+ return
+ }
+- const paneId = pendingCloseConfirmation.paneId
++ const confirmedClose = confirmedCloseRef.current
++ confirmedCloseRef.current = null
+ setPendingCloseConfirmation(null)
+ if (dontAskAgain) {
+ void updateSettings({
+ skipCloseTerminalWithRunningProcessConfirm: true
+ })
+ }
+- executeClosePane(paneId)
++ confirmedClose()
+ },
+ // oxlint-disable-next-line react-hooks/exhaustive-deps -- Preserve the pre-split dependency contract.
+ [executeClosePane, pendingCloseConfirmation, updateSettings]
+ )
+ const handleCancelClose = useCallback(() => {
++ confirmedCloseRef.current = null
+ setPendingCloseConfirmation(null)
+ // oxlint-disable-next-line react-hooks/exhaustive-deps -- Preserve the pre-split dependency contract.
+ }, [])
+diff --git a/src/renderer/src/store/slices/terminal-tab-retirement.ts b/src/renderer/src/store/slices/terminal-tab-retirement.ts
+index 80e67824699..e2e034fa6af 100644
+--- a/src/renderer/src/store/slices/terminal-tab-retirement.ts
++++ b/src/renderer/src/store/slices/terminal-tab-retirement.ts
+@@ -135,6 +135,30 @@ export function isTerminalTabPresent(
+ return locateTerminalTab(state.tabsByWorktree, tabId) !== null
+ }
+
++export function hasTerminalPtyOwnerOutsidePane(
++ state: TerminalTabRetirementState,
++ identity: string,
++ tabId: string,
++ excludedLeafId?: string
++): boolean {
++ for (const [ownerTabId, owner] of collectLiveTerminalTabs(state)) {
++ const ids =
++ ownerTabId === tabId
++ ? Object.entries(state.terminalLayoutsByTabId[tabId]?.ptyIdsByLeafId ?? {})
++ .filter(([leafId]) => leafId !== excludedLeafId)
++ .map(([, ptyId]) => ptyId)
++ : collectPtyIdsForTab(state, ownerTabId, owner.rowPtyId)
++ if (
++ ids.some(
++ (ptyId) => getTerminalPtyOwnershipIdentity(state, ptyId, owner.worktreeId) === identity
++ )
++ ) {
++ return true
++ }
++ }
++ return false
++}
++
+ export function buildTerminalTabRetirementPlan(
+ state: TerminalTabRetirementState,
+ tabId: string
diff --git a/docs/audits/pending-split-close/reproduce.mjs b/docs/audits/pending-split-close/reproduce.mjs
new file mode 100644
index 00000000000..73b33c09e30
--- /dev/null
+++ b/docs/audits/pending-split-close/reproduce.mjs
@@ -0,0 +1,152 @@
+import { createHash } from 'node:crypto'
+import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
+import { createRequire } from 'node:module'
+import { tmpdir } from 'node:os'
+import { join, resolve } from 'node:path'
+import { fileURLToPath, pathToFileURL } from 'node:url'
+import { applyPatch, parsePatch, reversePatch } from 'diff'
+import { build } from 'esbuild'
+
+if (process.env.ORCA_BACKGROUND_LAUNCH !== '1') {
+ throw new Error('Run with ORCA_BACKGROUND_LAUNCH=1.')
+}
+
+const root = fileURLToPath(new URL('../../../', import.meta.url))
+const patch = await readFile(new URL('./fix.patch', import.meta.url), 'utf8')
+const beforeSources = {}
+const sourceHashes = {}
+for (const parsed of parsePatch(patch)) {
+ const path = parsed.newFileName.replace(/^b\//, '')
+ const absolute = resolve(root, path)
+ const current = await readFile(absolute, 'utf8')
+ const before = applyPatch(current, reversePatch(parsed))
+ if (before === false) {
+ throw new Error(`Source changed; review the proof patch: ${path}`)
+ }
+ beforeSources[absolute.replaceAll('\\', '/')] = before
+ sourceHashes[path] = {
+ before: createHash('sha256').update(before).digest('hex'),
+ after: createHash('sha256').update(current).digest('hex')
+ }
+}
+
+for (const path of [
+ 'src/renderer/src/components/terminal-pane/retire-unbound-ipc-terminal-pane.ts',
+ 'src/renderer/src/components/terminal-pane/pending-split-close-test-fixture.ts',
+ 'src/renderer/src/components/terminal-pane/pending-split-close.test.ts',
+ 'docs/audits/pending-split-close/daemon-proof.test.ts'
+]) {
+ sourceHashes[path] = {
+ current: createHash('sha256')
+ .update(await readFile(resolve(root, path)))
+ .digest('hex')
+ }
+}
+
+const scratch = await mkdtemp(join(tmpdir(), 'orca-pending-split-close-'))
+const require = createRequire(import.meta.url)
+let runnerModuleId
+try {
+ const runnerPath = join(scratch, 'run-process.cjs')
+ await build({
+ absWorkingDir: root,
+ entryPoints: [resolve(root, 'src/shared/child-process/run-process.ts')],
+ outfile: runnerPath,
+ bundle: true,
+ platform: 'node',
+ format: 'cjs',
+ logLevel: 'silent'
+ })
+ runnerModuleId = require.resolve(runnerPath)
+ const { runProcess } = require(runnerModuleId)
+ const baselineConfig = join(scratch, 'before.config.mjs')
+ const fixedConfig = join(scratch, 'after.config.mjs')
+ const includes = [
+ 'src/renderer/src/components/terminal-pane/pending-split-close.test.ts',
+ 'docs/audits/pending-split-close/daemon-proof.test.ts'
+ ]
+ const configImport = JSON.stringify(pathToFileURL(resolve(root, 'config/vitest.config.ts')).href)
+ await writeFile(
+ baselineConfig,
+ `import base from ${configImport};
+const beforeSources = ${JSON.stringify(beforeSources)};
+export default {...base, test: {...base.test, include: ${JSON.stringify(includes)}}, plugins: [{
+ name: 'pending-split-close-before-fix', enforce: 'pre',
+ transform(_code, id) {
+ const before = beforeSources[id.replaceAll('\\\\', '/').split('?')[0]];
+ return before === undefined ? null : {code: before, map: null};
+ }
+}]};\n`
+ )
+
+ await writeFile(
+ fixedConfig,
+ `import base from ${configImport};\nexport default {...base, test: {...base.test, include: ${JSON.stringify(includes)}}};\n`
+ )
+
+ async function run(label, config) {
+ const report = join(scratch, `${label}.json`)
+ const result = await runProcess({
+ program: process.execPath,
+ args: [
+ resolve(root, 'node_modules/vitest/vitest.mjs'),
+ 'run',
+ '--config',
+ config,
+ '--reporter=json',
+ `--outputFile=${report}`
+ ],
+ cwd: root,
+ env: process.env,
+ timeoutMs: 90_000,
+ maxOutputBytes: 4 * 1024 * 1024
+ })
+ let parsed
+ try {
+ parsed = JSON.parse(await readFile(report, 'utf8'))
+ } catch (error) {
+ throw new Error(`${label} runner failed: ${result.stderr || result.stdout}`, { cause: error })
+ }
+ return {
+ exitCode: result.code,
+ passed: parsed.numPassedTests,
+ failed: parsed.numFailedTests,
+ failedCases: parsed.testResults.flatMap((suite) =>
+ suite.assertionResults
+ .filter((test) => test.status === 'failed')
+ .map((test) => test.fullName)
+ )
+ }
+ }
+
+ const before = await run('before', baselineConfig)
+ const after = await run('after', fixedConfig)
+ const passed =
+ before.failed === 14 &&
+ before.passed === 10 &&
+ before.passed + before.failed === 24 &&
+ after.passed === 24 &&
+ after.failed === 0
+ console.log(
+ JSON.stringify(
+ {
+ comparison:
+ 'Actual split close/IPC transport and temporary daemon socket tests; before reverses only fix.patch in a temporary Vite transform',
+ sourceHashes,
+ before,
+ after,
+ passed
+ },
+ null,
+ 2
+ )
+ )
+ if (!passed) {
+ process.exitCode = 1
+ }
+} finally {
+ if (runnerModuleId) {
+ delete require.cache[runnerModuleId]
+ }
+ await rm(scratch, { recursive: true, force: true })
+}
diff --git a/docs/audits/pending-split-close/results.json b/docs/audits/pending-split-close/results.json
new file mode 100644
index 00000000000..7e694e953b2
--- /dev/null
+++ b/docs/audits/pending-split-close/results.json
@@ -0,0 +1,65 @@
+{
+ "comparison": "Actual split close/IPC transport and temporary daemon socket tests; before reverses only fix.patch in a temporary Vite transform",
+ "sourceHashes": {
+ "src/renderer/src/components/terminal-pane/ipc-pty-connect.ts": {
+ "before": "7fe38b17d9a1c105bd93088d70086feb0c08f7f80f4513ffd975c5b4bc2167b0",
+ "after": "29985c0b538f701341fb8eca383386ad20f9326090dff452d4b2703b49fc4ea3"
+ },
+ "src/renderer/src/components/terminal-pane/pty-transport-types.ts": {
+ "before": "ab404437789ca3f7da2e8d0757778a1098bbe43dc4e04c5b0f112e7a4456c11c",
+ "after": "15dcd4cb02cceffca4c3b880f6b2688fbd14e6ea1421984d5873f100fa39b5fb"
+ },
+ "src/renderer/src/components/terminal-pane/pty-transport.ts": {
+ "before": "0455dba126457eb50a6075a8b265b29016aa5ed8c0730948e23d4f864bd8d5b3",
+ "after": "b5ac687bbb5c21e94a433d4a66f9b8fca46b3004f331f128c44bfa21b32a3838"
+ },
+ "src/renderer/src/components/terminal-pane/use-terminal-pane-close-actions.ts": {
+ "before": "978003ccd82d0af5dce5501edaa7c20c87170e590a5f3f06e55b28f9e4f0323f",
+ "after": "bbfeb2385fd120a7a1407d043011fb689b5c2b652c31150de44061f1edb76a7b"
+ },
+ "src/renderer/src/store/slices/terminal-tab-retirement.ts": {
+ "before": "e622afc63524826732f1779a6180d17b51ac5a2c705654062cc0907ea735db4f",
+ "after": "21a5f350885851398e316201686e073e3560c107b4b9d1b2e08eea6e07ec980f"
+ },
+ "src/renderer/src/components/terminal-pane/retire-unbound-ipc-terminal-pane.ts": {
+ "current": "3194229bdd3c992e8459cdad727a3931653953b204854486b8aaf4d129152d24"
+ },
+ "src/renderer/src/components/terminal-pane/pending-split-close-test-fixture.ts": {
+ "current": "5fddc75178546161448f8a84b43f0e7da41c7dbb986682a09f8f7ec4e44617bf"
+ },
+ "src/renderer/src/components/terminal-pane/pending-split-close.test.ts": {
+ "current": "106abb33917dd403606af413558bfe95730a064199d4f7085c4970d38cfde0cc"
+ },
+ "docs/audits/pending-split-close/daemon-proof.test.ts": {
+ "current": "0a29132942a9f8aa60ceada3498fb4fb344c1c0e14a8c9b4cbc8ed4cfa9543d9"
+ }
+ },
+ "before": {
+ "exitCode": 1,
+ "passed": 10,
+ "failed": 14,
+ "failedCases": [
+ "explicit split close retires a real daemon cold restore whose reply is pending",
+ "the explicit late reply retries a kill that completed before adapter admission",
+ "explicit split close retires a pending reattach before and after its reply",
+ "explicit split close retires a pending cold-restore-new before and after its reply",
+ "explicit split close retires a pending ordinary-fresh before and after its reply",
+ "protects a same-leaf replacement that adopts after explicit close",
+ "protects a different-tab replacement that adopts after explicit close",
+ "protects a new-transport-map replacement that adopts after explicit close",
+ "retains explicit close intent across repeated generic destroy calls",
+ "preserves a different returned reattach identity",
+ "retries an eager provider failure when the same-ID reply arrives",
+ "does not invent a late session after a rejected spawn",
+ "routes direct SSH retirement through the existing IPC identity",
+ "retires a local folder-workspace split without a git worktree row"
+ ]
+ },
+ "after": {
+ "exitCode": 0,
+ "passed": 24,
+ "failed": 0,
+ "failedCases": []
+ },
+ "passed": true
+}
diff --git a/src/renderer/src/components/terminal-pane/ipc-pty-connect.ts b/src/renderer/src/components/terminal-pane/ipc-pty-connect.ts
index 3023236de0e..52b983c51fd 100644
--- a/src/renderer/src/components/terminal-pane/ipc-pty-connect.ts
+++ b/src/renderer/src/components/terminal-pane/ipc-pty-connect.ts
@@ -27,6 +27,7 @@ type IpcPtyConnectContext = {
/** True only for the one buffered exit consumed by this connect attempt. */
isExpectedExitCurrent: () => boolean
ownsPtyId: (id: string) => boolean
+ handleExplicitlyClosedConnect?: (id: string) => boolean
bind: (id: string) => void
isCurrent: (id: string) => boolean
setCallbacks: (callbacks: PtyConnectOptions['callbacks']) => void
@@ -89,6 +90,9 @@ export async function connectIpcPty(
const priorIncarnationFence = currentPreHandlerPtySequence()
const spawnResult = await spawnIpcPty(transportOptions, options, admittedSessionId)
const retireFreshSpawn = async (): Promise => {
+ if (context.handleExplicitlyClosedConnect?.(spawnResult.id)) {
+ return
+ }
// A newer generation may already own a recycled id; an id-only kill would retire its PTY.
if (
!spawnResult.isReattach &&
diff --git a/src/renderer/src/components/terminal-pane/pending-pane-close-confirmation.test.ts b/src/renderer/src/components/terminal-pane/pending-pane-close-confirmation.test.ts
new file mode 100644
index 00000000000..03f8887564d
--- /dev/null
+++ b/src/renderer/src/components/terminal-pane/pending-pane-close-confirmation.test.ts
@@ -0,0 +1,192 @@
+import { afterEach, beforeEach, expect, it, vi } from 'vitest'
+import { preparePendingSplitClose } from './pending-split-close-test-fixture'
+import { flushPtySideEffects } from './pty-transport-test-harness'
+import type { PtyRunningWorkProbe } from '../terminal/pty-running-work-probe'
+
+beforeEach(() => vi.clearAllMocks())
+afterEach(() => vi.useRealTimers())
+
+async function prepare(remote = false, requestedPtyId?: string) {
+ const p = await preparePendingSplitClose(requestedPtyId)
+ Object.assign(p.state, { settings: { skipCloseTerminalWithRunningProcessConfirm: false } })
+ const { probePtyRunningWork } = await import('../terminal/pty-running-work-probe')
+ const { useTerminalPaneCloseActions } = await import('./use-terminal-pane-close-actions')
+ // Supply the dialog state that the UI renders after setPendingCloseConfirmation.
+ // oxlint-disable-next-line react-hooks/rules-of-hooks -- React registration is mocked; exercise public close callbacks without mounting UI.
+ const actions = useTerminalPaneCloseActions({
+ ...p.controller,
+ pendingCloseConfirmation: { paneId: 1, copyKind: 'command' }
+ })
+ const reply = Promise.withResolvers()
+ vi.mocked(probePtyRunningWork).mockReturnValueOnce(reply.promise)
+ const verdict = (value: PtyRunningWorkProbe['verdict']) =>
+ reply.resolve([{ ptyId: 'captured', verdict: value, timedOut: false, remote }])
+ const closed = () => vi.mocked(window.api.pty.kill).mock.calls.length > 0
+ const settle = async () => {
+ p.spawn.resolve({ id: requestedPtyId ?? 'pty-restored', isReattach: true })
+ await p.connecting
+ await flushPtySideEffects()
+ }
+ return { ...p, actions, probePtyRunningWork, verdict, reply, closed, settle }
+}
+
+it.each([false])('requires confirmation for pending live work, paired=%s', async (remote) => {
+ const p = await prepare(remote)
+ p.actions.handleRequestClosePane(1)
+ expect(p.probePtyRunningWork).toHaveBeenCalledWith(
+ expect.any(Object),
+ [remote ? 'remote:env-1@@term_original' : 'pty-restored'],
+ expect.any(Object)
+ )
+ expect(p.closed()).toBe(false)
+ p.verdict('live')
+ await flushPtySideEffects()
+ expect(p.controller.setPendingCloseConfirmation).toHaveBeenCalledWith(
+ expect.objectContaining({ paneId: 1 })
+ )
+ expect(p.closed()).toBe(false)
+ p.actions.handleConfirmClose(false)
+ await p.settle()
+ expect(p.closed()).toBe(true)
+})
+
+it.each([false])('Cancel preserves pending work, paired=%s', async (remote) => {
+ const p = await prepare(remote)
+ p.actions.handleRequestClosePane(1)
+ p.verdict('live')
+ await flushPtySideEffects()
+ p.actions.handleCancelClose()
+ p.actions.handleConfirmClose(false)
+ await p.settle()
+ expect(p.closed()).toBe(false)
+})
+
+it.each(['unverifiable', 'rejected', 'timeout'] as const)(
+ 'requires confirmation when a pending owner probe is %s',
+ async (mode) => {
+ vi.useFakeTimers()
+ const p = await prepare()
+ p.actions.handleRequestClosePane(1)
+ if (mode === 'rejected') {
+ p.reply.reject(new Error('owner unavailable'))
+ } else if (mode === 'unverifiable') {
+ p.verdict(mode)
+ } else {
+ await vi.advanceTimersByTimeAsync(101)
+ }
+ await Promise.resolve()
+ await Promise.resolve()
+ expect(p.controller.setPendingCloseConfirmation).toHaveBeenCalled()
+ expect(p.closed()).toBe(false)
+ p.actions.handleCancelClose()
+ p.verdict('exited')
+ vi.useRealTimers()
+ await p.settle()
+ expect(p.closed()).toBe(false)
+ }
+)
+
+it('uses the direct SSH identity in the running-work probe', async () => {
+ const id = 'ssh:ssh-1@@pty-restored'
+ const p = await prepare(false, id)
+ p.state.worktreesByRepo = { repo: [{ id: 'workspace', repoId: 'repo', hostId: 'ssh:ssh-1' }] }
+ p.actions.handleRequestClosePane(1)
+ p.verdict('live')
+ await flushPtySideEffects()
+ expect(p.probePtyRunningWork).toHaveBeenCalledWith(expect.any(Object), [id], expect.any(Object))
+ expect(p.closed()).toBe(false)
+ p.actions.handleConfirmClose(false)
+ await p.settle()
+ expect(window.api.pty.kill).toHaveBeenCalledWith(id)
+})
+
+it.each(['rejected', 'timeout'] as const)(
+ 'honors the skip-confirmation setting when a pending probe is %s',
+ async (mode) => {
+ vi.useFakeTimers()
+ const p = await prepare()
+ Object.assign(p.state, { settings: { skipCloseTerminalWithRunningProcessConfirm: true } })
+ p.actions.handleRequestClosePane(1)
+ if (mode === 'rejected') {
+ p.reply.reject(new Error('owner unavailable'))
+ } else {
+ await vi.advanceTimersByTimeAsync(101)
+ }
+ await Promise.resolve()
+ await Promise.resolve()
+ expect(p.controller.setPendingCloseConfirmation).not.toHaveBeenCalled()
+ expect(p.closed()).toBe(true)
+ p.verdict('exited')
+ vi.useRealTimers()
+ await p.settle()
+ }
+)
+
+it.each(['exited', 'skip-setting'] as const)('keeps allowed pending close for %s', async (mode) => {
+ const p = await prepare()
+ if (mode === 'skip-setting') {
+ Object.assign(p.state, { settings: { skipCloseTerminalWithRunningProcessConfirm: true } })
+ }
+ p.actions.handleRequestClosePane(1)
+ p.verdict(mode === 'exited' ? 'exited' : 'live')
+ await flushPtySideEffects()
+ expect(p.controller.setPendingCloseConfirmation).not.toHaveBeenCalled()
+ await p.settle()
+ expect(p.closed()).toBe(true)
+})
+
+it.each(['probe', 'dialog'] as const)(
+ 'accepts the same pending attach finishing during %s',
+ async (phase) => {
+ const p = await prepare()
+ p.actions.handleRequestClosePane(1)
+ if (phase === 'dialog') {
+ p.verdict('live')
+ await flushPtySideEffects()
+ }
+ p.spawn.resolve({ id: 'pty-restored', isReattach: true })
+ await p.connecting
+ p.verdict('live')
+ await flushPtySideEffects()
+ expect(p.closed()).toBe(false)
+ p.actions.handleConfirmClose(false)
+ await flushPtySideEffects()
+ expect(p.closed()).toBe(true)
+ }
+)
+
+it.each(['tab', 'generation', 'leaf', 'transport', 'manager', 'whole-tab', 'binding'] as const)(
+ 'does not apply a pending confirmation to a replacement %s',
+ async (replacement) => {
+ const p = await prepare()
+ p.actions.handleRequestClosePane(1)
+ p.verdict('live')
+ await flushPtySideEffects()
+ if (replacement === 'tab') {
+ p.state.tabsByWorktree.workspace[0].createdAt += 1
+ }
+ if (replacement === 'generation') {
+ p.state.tabsByWorktree.workspace[0].generation = 1
+ }
+ if (replacement === 'leaf') {
+ p.state.terminalLayoutsByTabId[p.tabId].ptyIdsByLeafId = {}
+ }
+ if (replacement === 'binding') {
+ p.state.terminalLayoutsByTabId[p.tabId].ptyIdsByLeafId = { [p.leafId]: 'successor' }
+ }
+ if (replacement === 'transport') {
+ p.transports.delete(1)
+ }
+ if (replacement === 'manager') {
+ p.controller.managerRef.current = null
+ }
+ if (replacement === 'whole-tab') {
+ vi.spyOn(p.controller.managerRef.current!, 'getPanes').mockReturnValue([])
+ }
+ p.actions.handleConfirmClose(false)
+ await p.settle()
+ expect(p.closed()).toBe(false)
+ expect(p.controller.onCloseTab).not.toHaveBeenCalled()
+ p.transport.detach?.({ preserveExitObserver: false })
+ }
+)
diff --git a/src/renderer/src/components/terminal-pane/pending-split-close-test-fixture.ts b/src/renderer/src/components/terminal-pane/pending-split-close-test-fixture.ts
new file mode 100644
index 00000000000..66bfa3f9307
--- /dev/null
+++ b/src/renderer/src/components/terminal-pane/pending-split-close-test-fixture.ts
@@ -0,0 +1,207 @@
+/* oxlint-disable anti-slop/no-module-mocking -- Vitest support module for the sibling
+ pending-split-close specs, not shipped code, and it falls outside the *.test / *.spec / tests
+ glob set this rule is already switched off for. The calls have to live in one shared module:
+ `vi.mock` is registered per importing spec, so the alternative is copying all twelve into every
+ spec, where they would drift apart. */
+import { afterEach, beforeEach, vi } from 'vitest'
+import type { AppState } from '@/store/types'
+import type { TerminalTabRetirementState } from '@/store/slices/terminal-tab-retirement'
+import type { TerminalTab } from '../../../../shared/terminal-tab-types'
+import type { PaneManager } from '@/lib/pane-manager/pane-manager'
+import type { PtyConnectResult, PtyTransport } from './pty-transport-types'
+import type { TerminalPaneBindingController } from './use-terminal-pane-layout-bindings'
+import { installIpcPtyWindow, restorePtySpecWindow } from './pty-transport-test-harness'
+
+const store = vi.hoisted((): { current: AppState | null } => ({ current: null }))
+vi.mock('../../store', () => ({ useAppStore: { getState: () => store.current } }))
+vi.mock('react', () => ({
+ useCallback: (fn: unknown) => fn,
+ useImperativeHandle: () => {},
+ useRef: (current: unknown) => ({ current })
+}))
+vi.mock('../../runtime/web-runtime-session', () => ({ closeWebRuntimeTerminal: vi.fn() }))
+vi.mock('../../runtime/sync-runtime-graph', () => ({ scheduleRuntimeGraphSync: vi.fn() }))
+vi.mock('../terminal/terminal-close-copy-kind', () => ({ resolveLeafCloseCopyKind: vi.fn() }))
+vi.mock('../terminal/running-terminal-close-guard', () => ({ RUNNING_CLOSE_PROBE_TIMEOUT_MS: 100 }))
+vi.mock('../terminal/pty-running-work-probe', () => ({ probePtyRunningWork: vi.fn() }))
+vi.mock('./terminal-pane-tab-detach', () => ({
+ detachTerminalPaneToTab: vi.fn(),
+ isTerminalTabStripDropTarget: vi.fn(),
+ resolveTerminalTabStripDropTarget: vi.fn()
+}))
+vi.mock('./terminal-pane-close-identity', () => ({
+ resolveTabTitleAfterPaneClose: vi.fn(),
+ shouldClearLaunchAgentForClosedPane: () => false
+}))
+vi.mock('./terminal-pane-lifecycle-primitives', () => ({ reportActiveRendererPtyForPane: vi.fn() }))
+vi.mock('./deferred-split-pane-handoff', () => ({
+ clearDeferredSplitPaneHandoff: vi.fn(),
+ discardDeferredSplitPaneHandoffForKey: vi.fn()
+}))
+vi.mock('./expand-collapse', () => ({ useExpandCollapseActions: () => ({}) }))
+
+const originalWindow = globalThis.window
+beforeEach(() => {
+ vi.resetModules()
+ installIpcPtyWindow(originalWindow, {})
+})
+afterEach(() => {
+ restorePtySpecWindow(originalWindow)
+ vi.restoreAllMocks()
+})
+
+export function makeCloseTestTab(
+ id: string,
+ ptyId: string | null,
+ worktreeId = 'workspace'
+): TerminalTab {
+ return {
+ id,
+ worktreeId,
+ ptyId,
+ title: id,
+ customTitle: null,
+ color: null,
+ sortOrder: 0,
+ createdAt: 0
+ }
+}
+
+export async function preparePendingSplitClose(
+ requestedPtyId = 'pty-restored',
+ worktreeId = 'workspace'
+) {
+ const { createIpcPtyTransport } = await import('./pty-transport')
+ const { useTerminalPaneLayoutBindings } = await import('./use-terminal-pane-layout-bindings')
+ const { useTerminalPaneCloseActions } = await import('./use-terminal-pane-close-actions')
+ const { createTerminalPaneClosedHandler } = await import('./terminal-pane-pane-closed')
+ const { useTerminalPaneLifecycleRefs } = await import('./use-terminal-pane-lifecycle-refs')
+ const tabId = 'tab-parent'
+ const leafId = '11111111-1111-4111-8111-111111111111'
+ const siblingLeafId = '22222222-2222-4222-8222-222222222222'
+ const state: TerminalTabRetirementState = {
+ worktreesByRepo: { repo: [{ id: worktreeId, repoId: 'repo', hostId: 'local' }] },
+ tabsByWorktree: { [worktreeId]: [makeCloseTestTab(tabId, requestedPtyId, worktreeId)] },
+ unifiedTabsByWorktree: {},
+ ptyIdsByTabId: { [tabId]: [requestedPtyId] },
+ lastKnownRelayPtyIdByTabId: {},
+ deferredSshSessionIdsByTabId: {},
+ pendingReconnectPtyIdByTabId: {},
+ terminalLayoutsByTabId: {
+ [tabId]: {
+ root: {
+ type: 'split',
+ direction: 'horizontal',
+ ratio: 0.5,
+ first: { type: 'leaf', leafId },
+ second: { type: 'leaf', leafId: siblingLeafId }
+ },
+ activeLeafId: leafId,
+ expandedLeafId: null,
+ ptyIdsByLeafId: { [leafId]: requestedPtyId, [siblingLeafId]: 'pty-sibling' }
+ }
+ }
+ }
+ // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: The real close paths read only this retirement state and the supplied actions.
+ store.current = Object.assign(state, {
+ setCacheTimerStartedAt: vi.fn(),
+ dropAgentStatus: vi.fn(),
+ retireAgentPaneAuthority: vi.fn(),
+ suppressPtyExit: vi.fn()
+ }) as unknown as AppState
+ const spawn = Promise.withResolvers()
+ vi.mocked(window.api.pty.spawn).mockReturnValueOnce(spawn.promise)
+ const transport = createIpcPtyTransport({})
+ const connecting = transport.connect({ url: '', sessionId: requestedPtyId, callbacks: {} })
+ let onClosed: ReturnType = () => {}
+ let panes = [
+ { id: 1, leafId },
+ { id: 2, leafId: siblingLeafId }
+ ]
+ const managerFixture = {
+ getPanes: () => panes,
+ getLeafId: () => leafId,
+ getActivePane: () => null,
+ closePane(id: number) {
+ panes = panes.filter((pane) => pane.id !== id)
+ onClosed(id, { leafId, reason: 'close' })
+ }
+ }
+ // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: These real close methods use only the four manager operations above; no DOM is mounted.
+ const manager = managerFixture as unknown as PaneManager
+ const transports = new Map([[1, transport]])
+ const partial: Partial = {
+ tabId,
+ worktreeId,
+ managerRef: { current: manager },
+ paneTransportsRef: { current: transports },
+ panePtyBindingsRef: { current: new Map() },
+ paneMode2031Ref: { current: new Map() },
+ paneKittyKeyboardModesRef: { current: new Map() },
+ paneLastThemeModeRef: { current: new Map() },
+ paneCwdRef: { current: new Map() },
+ paneFontSizesRef: { current: new Map() },
+ replayingPanesRef: { current: new Map() },
+ paneTitlesRef: { current: {} },
+ expandedPaneIdRef: { current: null },
+ expandedStyleSnapshotRef: { current: new Map() },
+ containerRef: { current: null },
+ pendingPaneSizeRefreshFrameIdsRef: { current: [] },
+ ref: { current: null },
+ clearSessionRestoredBannerForPane: vi.fn(),
+ persistLayoutSnapshot: vi.fn(),
+ setPendingCloseConfirmation: vi.fn(),
+ setTerminalErrorsByPaneId: vi.fn(),
+ updateSettings: vi.fn(),
+ setExpandedPaneId: vi.fn(),
+ setTabPaneExpanded: vi.fn(),
+ onCloseTab: vi.fn(),
+ clearTabPtyId: vi.fn(),
+ clearRuntimePaneTitle: vi.fn(),
+ setPaneTitles: vi.fn(),
+ setRenamingPaneId: vi.fn(),
+ setPaneCount: vi.fn(),
+ updateTabTitle: vi.fn(),
+ setTabLayout: (_tabId, layout) => {
+ if (layout) {
+ state.terminalLayoutsByTabId[tabId] = layout
+ } else {
+ delete state.terminalLayoutsByTabId[tabId]
+ }
+ }
+ }
+ // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Every controller field read by the three exercised hooks is provided above or assigned from the real binding hook below.
+ const controller = partial as TerminalPaneBindingController
+ // oxlint-disable-next-line react-hooks/rules-of-hooks -- React registration is mocked; exercise the real binding callbacks without mounting UI.
+ Object.assign(controller, useTerminalPaneLayoutBindings(controller))
+ const closeContext = {
+ deps: {
+ ...controller,
+ effectiveMacOptionAsAltRef: { current: 'false' as const },
+ consumeSuppressedPtyExit: () => false,
+ isPtyShutdownPending: () => false,
+ onShowSessionRestoredBanner: vi.fn()
+ },
+ // oxlint-disable-next-line react-hooks/rules-of-hooks -- The mocked useRef allocates the real per-pane ownership registries.
+ refs: useTerminalPaneLifecycleRefs(),
+ deferredSplitHandoffs: new Map()
+ }
+ onClosed = createTerminalPaneClosedHandler(
+ // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: The real close handler reads only deps, refs, and deferredSplitHandoffs from its broader mount context.
+ closeContext as unknown as Parameters[0]
+ )
+ // oxlint-disable-next-line react-hooks/rules-of-hooks -- React registration is mocked; exercise the real close callbacks without mounting UI.
+ const actions = useTerminalPaneCloseActions(controller)
+ return {
+ transport,
+ transports,
+ connecting,
+ spawn,
+ controller,
+ actions,
+ state,
+ tabId,
+ leafId,
+ siblingLeafId
+ }
+}
diff --git a/src/renderer/src/components/terminal-pane/pending-split-close.test.ts b/src/renderer/src/components/terminal-pane/pending-split-close.test.ts
new file mode 100644
index 00000000000..5a022ef9c99
--- /dev/null
+++ b/src/renderer/src/components/terminal-pane/pending-split-close.test.ts
@@ -0,0 +1,193 @@
+import { expect, it, vi } from 'vitest'
+import { makeCloseTestTab, preparePendingSplitClose } from './pending-split-close-test-fixture'
+import { folderWorkspaceKey } from '../../../../shared/workspace-scope'
+import { flushPtySideEffects } from './pty-transport-test-harness'
+
+const replyFor = (kind: 'reattach' | 'cold-restore-new' | 'ordinary-fresh') => ({
+ id: 'pty-restored',
+ ...(kind === 'reattach' ? { isReattach: true } : {}),
+ ...(kind === 'cold-restore-new' ? { coldRestore: { scrollback: 'saved', cwd: '/tmp' } } : {})
+})
+
+it.each(['reattach', 'cold-restore-new', 'ordinary-fresh'] as const)(
+ 'explicit split close retires a pending %s before and after its reply',
+ async (kind) => {
+ const p = await preparePendingSplitClose()
+ expect(p.transport.getPtyId()).toBeNull()
+ p.actions.executeClosePane(1)
+ expect(p.transports.has(1)).toBe(false)
+ expect(p.state.terminalLayoutsByTabId[p.tabId].ptyIdsByLeafId?.[p.leafId]).toBeUndefined()
+ expect(window.api.pty.kill).toHaveBeenCalledExactlyOnceWith('pty-restored')
+ p.spawn.resolve(replyFor(kind))
+ await p.connecting
+ expect(window.api.pty.kill).toHaveBeenCalledTimes(2)
+ expect(p.transport.getPtyId()).toBeNull()
+ }
+)
+
+it.each(['reattach', 'cold-restore-new'] as const)(
+ 'ordinary remount preserves pending %s for adoption',
+ async (kind) => {
+ const p = await preparePendingSplitClose()
+ p.transport.detach?.({ preserveExitObserver: false })
+ p.spawn.resolve(replyFor(kind))
+ await p.connecting
+ expect(window.api.pty.kill).not.toHaveBeenCalled()
+ expect(p.state.terminalLayoutsByTabId[p.tabId].ptyIdsByLeafId?.[p.leafId]).toBe('pty-restored')
+ const { createIpcPtyTransport } = await import('./pty-transport')
+ vi.mocked(window.api.pty.spawn).mockResolvedValueOnce({ id: 'pty-restored', isReattach: true })
+ const replacement = createIpcPtyTransport({})
+ await replacement.connect({ url: '', sessionId: 'pty-restored', callbacks: {} })
+ expect(replacement.getPtyId()).toBe('pty-restored')
+ replacement.detach?.({ preserveExitObserver: false })
+ }
+)
+
+it.each(['layout', 'transport'] as const)(
+ 'protects a sibling owner recorded only in %s',
+ async (owner) => {
+ const p = await preparePendingSplitClose()
+ const { createIpcPtyTransport } = await import('./pty-transport')
+ const survivor = createIpcPtyTransport({})
+ if (owner === 'transport') {
+ survivor.attach({ existingPtyId: 'pty-restored', callbacks: {} })
+ p.transports.set(2, survivor)
+ } else {
+ p.state.terminalLayoutsByTabId[p.tabId].ptyIdsByLeafId = {
+ [p.leafId]: 'pty-restored',
+ [p.siblingLeafId]: 'pty-restored'
+ }
+ }
+ p.actions.executeClosePane(1)
+ p.spawn.resolve(replyFor('reattach'))
+ await p.connecting
+ expect(window.api.pty.kill).not.toHaveBeenCalled()
+ survivor.detach?.({ preserveExitObserver: false })
+ }
+)
+
+it('protects a different tab owner present before explicit close', async () => {
+ const p = await preparePendingSplitClose()
+ p.state.tabsByWorktree.workspace.push(makeCloseTestTab('survivor', 'pty-restored'))
+ p.actions.executeClosePane(1)
+ p.spawn.resolve(replyFor('cold-restore-new'))
+ await p.connecting
+ expect(window.api.pty.kill).not.toHaveBeenCalled()
+})
+
+it.each(['same-leaf', 'different-tab', 'new-transport-map'] as const)(
+ 'protects a %s replacement that adopts after explicit close',
+ async (owner) => {
+ const p = await preparePendingSplitClose()
+ p.actions.executeClosePane(1)
+ const { createIpcPtyTransport } = await import('./pty-transport')
+ const replacement = createIpcPtyTransport({})
+ if (owner === 'same-leaf') {
+ p.state.terminalLayoutsByTabId[p.tabId].ptyIdsByLeafId = { [p.leafId]: 'pty-restored' }
+ } else if (owner === 'different-tab') {
+ p.state.tabsByWorktree.workspace.push(makeCloseTestTab('new-owner', 'pty-restored'))
+ } else {
+ replacement.attach({ existingPtyId: 'pty-restored', callbacks: {} })
+ p.controller.paneTransportsRef.current = new Map([[1, replacement]])
+ }
+ p.spawn.resolve(replyFor('reattach'))
+ await p.connecting
+ expect(window.api.pty.kill).toHaveBeenCalledTimes(1)
+ replacement.detach?.({ preserveExitObserver: false })
+ }
+)
+
+it('retains explicit close intent across repeated generic destroy calls', async () => {
+ const p = await preparePendingSplitClose()
+ p.actions.executeClosePane(1)
+ p.transport.destroy?.()
+ p.transport.destroy?.()
+ p.spawn.resolve(replyFor('cold-restore-new'))
+ await p.connecting
+ expect(window.api.pty.kill).toHaveBeenCalledTimes(2)
+})
+
+it('preserves a different returned reattach identity', async () => {
+ const p = await preparePendingSplitClose()
+ p.actions.executeClosePane(1)
+ p.spawn.resolve({ id: 'different-existing-session', isReattach: true })
+ await p.connecting
+ expect(window.api.pty.kill).toHaveBeenCalledExactlyOnceWith('pty-restored')
+})
+
+it('retries an eager provider failure when the same-ID reply arrives', async () => {
+ const p = await preparePendingSplitClose()
+ const warn = vi.spyOn(console, 'warn').mockImplementation(() => {})
+ vi.mocked(window.api.pty.kill).mockRejectedValueOnce(
+ new Error('provider temporarily unavailable')
+ )
+ p.actions.executeClosePane(1)
+ await flushPtySideEffects()
+ expect(warn).toHaveBeenCalledWith(
+ '[terminal-retirement] provider teardown failed',
+ expect.any(Object)
+ )
+ p.spawn.resolve(replyFor('reattach'))
+ await p.connecting
+ expect(window.api.pty.kill).toHaveBeenCalledTimes(2)
+})
+
+it('does not invent a late session after a rejected spawn', async () => {
+ const p = await preparePendingSplitClose()
+ vi.spyOn(console, 'error').mockImplementation(() => {})
+ p.actions.executeClosePane(1)
+ p.spawn.reject(new Error('spawn rejected'))
+ await p.connecting
+ expect(window.api.pty.kill).toHaveBeenCalledExactlyOnceWith('pty-restored')
+})
+
+it('routes direct SSH retirement through the existing IPC identity', async () => {
+ const id = 'ssh:ssh-1@@pty-restored'
+ const p = await preparePendingSplitClose(id)
+ p.state.worktreesByRepo = { repo: [{ id: 'workspace', repoId: 'repo', hostId: 'ssh:ssh-1' }] }
+ p.actions.executeClosePane(1)
+ p.spawn.resolve({ id, isReattach: true })
+ await p.connecting
+ expect(window.api.pty.kill).toHaveBeenNthCalledWith(1, id)
+ expect(window.api.pty.kill).toHaveBeenNthCalledWith(2, id)
+})
+
+it.each(['runtime-handle', 'runtime-legacy', 'unresolved-owner', 'runtime-native-hint'] as const)(
+ 'never falls through to local kill for %s',
+ async (kind) => {
+ const id =
+ kind === 'runtime-handle'
+ ? 'remote:env-1@@pty-restored'
+ : kind === 'runtime-legacy'
+ ? 'remote:pty-restored'
+ : 'pty-restored'
+ const p = await preparePendingSplitClose(id)
+ if (kind === 'unresolved-owner') {
+ p.state.worktreesByRepo = {}
+ } else if (kind === 'runtime-native-hint') {
+ p.state.worktreesByRepo = {
+ repo: [
+ {
+ id: 'workspace',
+ repoId: 'repo',
+ hostId: 'ssh:ssh-1',
+ runtimeOwnerEnvironmentId: 'env-1'
+ }
+ ]
+ }
+ }
+ p.actions.executeClosePane(1)
+ p.spawn.resolve({ id, isReattach: true })
+ await p.connecting
+ expect(window.api.pty.kill).not.toHaveBeenCalled()
+ }
+)
+
+it('retires a local folder-workspace split without a git worktree row', async () => {
+ const p = await preparePendingSplitClose('pty-restored', folderWorkspaceKey('folder-1'))
+ p.state.worktreesByRepo = {}
+ p.actions.executeClosePane(1)
+ p.spawn.resolve(replyFor('reattach'))
+ await p.connecting
+ expect(window.api.pty.kill).toHaveBeenCalledTimes(2)
+})
diff --git a/src/renderer/src/components/terminal-pane/pty-transport-types.ts b/src/renderer/src/components/terminal-pane/pty-transport-types.ts
index 4d7eaf7358b..2f6ed734bbf 100644
--- a/src/renderer/src/components/terminal-pane/pty-transport-types.ts
+++ b/src/renderer/src/components/terminal-pane/pty-transport-types.ts
@@ -232,7 +232,10 @@ export type PtyTransport = {
* it also drops the transport's output processor from the pty side-effect memory census,
* so a reattached one would run untracked. Create a new transport instead. */
detach?: (options?: { preserveExitObserver?: boolean }) => void
- destroy?: () => void | Promise
+ destroy?: (options?: {
+ /** Explicit close can retain retirement intent until an unbound connect settles. */
+ onAbandonedConnect?: (ptyId: string) => boolean
+ }) => void | Promise
}
export type IpcPtyTransportOptions = {
diff --git a/src/renderer/src/components/terminal-pane/pty-transport.ts b/src/renderer/src/components/terminal-pane/pty-transport.ts
index f794b9a1e4d..7731e75eac5 100644
--- a/src/renderer/src/components/terminal-pane/pty-transport.ts
+++ b/src/renderer/src/components/terminal-pane/pty-transport.ts
@@ -44,6 +44,7 @@ export function createIpcPtyTransport(opts: IpcPtyTransportOptions = {}): PtyTra
} = opts
let connected = false
let destroyed = false
+ let onAbandonedConnect: ((ptyId: string) => boolean) | undefined
let ptyId: string | null = null
let lifecycleGeneration = 0
let lastExitGeneration: number | null = null
@@ -137,6 +138,7 @@ export function createIpcPtyTransport(opts: IpcPtyTransportOptions = {}): PtyTra
lastExitGeneration === lifecycleGeneration &&
lifecycleGeneration === connectGeneration + 1,
ownsPtyId: (id) => !destroyed && connected && ptyId === id,
+ handleExplicitlyClosedConnect: (id) => destroyed && (onAbandonedConnect?.(id) ?? false),
bind,
isCurrent: (id) => lifecycleGeneration === connectGeneration && connected && ptyId === id,
setCallbacks,
@@ -268,7 +270,8 @@ export function createIpcPtyTransport(opts: IpcPtyTransportOptions = {}): PtyTra
: { ...(opts.cwd ? { cwd: opts.cwd } : {}), ...(shellOverride ? { shellOverride } : {}) },
resetCrossChunkParserState: outputProcessor.resetAgentStatusCarry,
- destroy() {
+ destroy(options) {
+ onAbandonedConnect ??= options?.onAbandonedConnect
destroyed = true
try {
this.disconnect()
diff --git a/src/renderer/src/components/terminal-pane/retire-unbound-ipc-terminal-pane.ts b/src/renderer/src/components/terminal-pane/retire-unbound-ipc-terminal-pane.ts
new file mode 100644
index 00000000000..081a33fc895
--- /dev/null
+++ b/src/renderer/src/components/terminal-pane/retire-unbound-ipc-terminal-pane.ts
@@ -0,0 +1,83 @@
+import type { AppState } from '@/store/types'
+import {
+ buildTerminalTabRetirementPlan,
+ getTerminalPtyOwnershipIdentity,
+ hasTerminalPtyOwnerOutsidePane
+} from '@/store/slices/terminal-tab-retirement'
+import { startTerminalTabProviderRetirement } from '@/store/terminals/terminal-tab-close-providers'
+import type { PtyTransport } from './pty-transport-types'
+
+/** Capture explicit split-close intent before the durable leaf binding is removed. */
+export function retireUnboundIpcTerminalPane(args: {
+ getState: () => AppState
+ tabId: string
+ leafId: string
+ transport: PtyTransport | undefined
+ getTransports: () => ReadonlyMap
+}): void {
+ const { getState, tabId, leafId, transport, getTransports } = args
+ if (!transport || transport.getPtyId()) {
+ return
+ }
+ const state = getState()
+ const requestedPtyId = state.terminalLayoutsByTabId[tabId]?.ptyIdsByLeafId?.[leafId]
+ if (!requestedPtyId) {
+ return
+ }
+ const plan = buildTerminalTabRetirementPlan(state, tabId)
+ const identity = getTerminalPtyOwnershipIdentity(state, requestedPtyId, plan.worktreeId)
+ const ptyId = plan.localOrSshPtyIds.find(
+ (candidate) => getTerminalPtyOwnershipIdentity(state, candidate, plan.worktreeId) === identity
+ )
+ // Paired-runtime handles and unresolved routes cannot authorize an IPC kill.
+ if (!ptyId) {
+ return
+ }
+ const hasOtherOwner = (excludedLeafId?: string): boolean => {
+ const current = getState()
+ return (
+ hasTerminalPtyOwnerOutsidePane(current, identity, tabId, excludedLeafId) ||
+ [...getTransports().values()].some((candidate) => {
+ const boundId = candidate.getPtyId()
+ return (
+ boundId !== null &&
+ getTerminalPtyOwnershipIdentity(current, boundId, plan.worktreeId) === identity
+ )
+ })
+ )
+ }
+ if (hasOtherOwner(leafId)) {
+ return
+ }
+ const retirementPlan = {
+ ...plan,
+ ptyIds: [ptyId],
+ localOrSshPtyIds: [ptyId],
+ runtimeTerminals: [],
+ cleanupOnlyPtyIds: [],
+ sharedPtyIds: [],
+ unroutablePtyIds: []
+ }
+ const requestRetirement = (): void => {
+ startTerminalTabProviderRetirement({
+ localPtyTeardownOwnedExternally: false,
+ remoteCloseOwnedByHost: false,
+ retirementPlan,
+ state: getState(),
+ tabId
+ })
+ }
+ transport.destroy?.({
+ onAbandonedConnect: (returnedPtyId) => {
+ if (returnedPtyId !== requestedPtyId) {
+ return false
+ }
+ // A replacement can own even this same leaf by the time the reply arrives.
+ if (!hasOtherOwner()) {
+ requestRetirement()
+ }
+ return true
+ }
+ })
+ requestRetirement()
+}
diff --git a/src/renderer/src/components/terminal-pane/terminal-pane-close-admission.ts b/src/renderer/src/components/terminal-pane/terminal-pane-close-admission.ts
new file mode 100644
index 00000000000..19ee58355c3
--- /dev/null
+++ b/src/renderer/src/components/terminal-pane/terminal-pane-close-admission.ts
@@ -0,0 +1,68 @@
+import type { AppState } from '@/store/types'
+import {
+ buildTerminalTabRetirementPlan,
+ getTerminalPtyOwnershipIdentity
+} from '@/store/slices/terminal-tab-retirement'
+import { locateTerminalTab } from '@/store/terminals/terminal-tab-location'
+import { resolveTerminalHostOwnership } from '@/lib/terminal-worktree-route'
+import { parseRemoteRuntimePtyId } from '@/runtime/runtime-terminal-stream'
+import { getRuntimeEnvironmentRevision } from '@/runtime/runtime-environment-revision'
+import type { TerminalPaneBindingController } from './use-terminal-pane-layout-bindings'
+
+export function capturePendingTerminalPaneClose(
+ controller: Pick,
+ paneId: number,
+ getState: () => AppState
+): { ptyId: string; isCurrent: () => boolean } | undefined {
+ const { managerRef, paneTransportsRef, tabId } = controller
+ const manager = managerRef.current
+ const transport = paneTransportsRef.current.get(paneId)
+ const leafId = manager?.getLeafId(paneId)
+ const state = getState()
+ const ptyId = leafId && state.terminalLayoutsByTabId[tabId]?.ptyIdsByLeafId?.[leafId]
+ if (!manager || !transport || transport.getPtyId() || !leafId || !ptyId) {
+ return undefined
+ }
+ const plan = buildTerminalTabRetirementPlan(state, tabId)
+ const remote = parseRemoteRuntimePtyId(ptyId)
+ const environmentId = remote?.environmentId?.trim()
+ const owner = resolveTerminalHostOwnership(state, plan.worktreeId, 'teardown')
+ const identity = getTerminalPtyOwnershipIdentity(state, ptyId, plan.worktreeId)
+ const isIdentity = (id: string): boolean =>
+ getTerminalPtyOwnershipIdentity(state, id, plan.worktreeId) === identity
+ if (!plan.localOrSshPtyIds.some(isIdentity)) {
+ return undefined
+ }
+ const originalTab = locateTerminalTab(state.tabsByWorktree, tabId)?.tab
+ const createdAt = originalTab?.createdAt
+ const generation = originalTab?.generation ?? 0
+ const pairingRevision = environmentId ? getRuntimeEnvironmentRevision(environmentId) : undefined
+ return {
+ ptyId,
+ isCurrent: () => {
+ const current = getState()
+ const currentTab = locateTerminalTab(current.tabsByWorktree, tabId)
+ const currentOwner = resolveTerminalHostOwnership(current, plan.worktreeId, 'teardown')
+ const currentPtyId = current.terminalLayoutsByTabId[tabId]?.ptyIdsByLeafId?.[leafId]
+ const boundId = transport.getPtyId()
+ // A split confirmation cannot authorize a replacement pane or a later whole-tab close.
+ return (
+ managerRef.current === manager &&
+ manager.getPanes().length > 1 &&
+ manager.getPanes().some((pane) => pane.id === paneId && pane.leafId === leafId) &&
+ manager.getLeafId(paneId) === leafId &&
+ paneTransportsRef.current.get(paneId) === transport &&
+ currentTab?.worktreeId === plan.worktreeId &&
+ currentTab?.tab.createdAt === createdAt &&
+ (currentTab?.tab.generation ?? 0) === generation &&
+ currentOwner.kind === owner.kind &&
+ currentOwner.runtimeEnvironmentId === owner.runtimeEnvironmentId &&
+ (!environmentId || getRuntimeEnvironmentRevision(environmentId) === pairingRevision) &&
+ !!currentPtyId &&
+ getTerminalPtyOwnershipIdentity(current, currentPtyId, plan.worktreeId) === identity &&
+ (boundId === null ||
+ getTerminalPtyOwnershipIdentity(current, boundId, plan.worktreeId) === identity)
+ )
+ }
+ }
+}
diff --git a/src/renderer/src/components/terminal-pane/terminal-pane-hook-order-parity.test.ts b/src/renderer/src/components/terminal-pane/terminal-pane-hook-order-parity.test.ts
index d53306b031e..0757276aa2c 100644
--- a/src/renderer/src/components/terminal-pane/terminal-pane-hook-order-parity.test.ts
+++ b/src/renderer/src/components/terminal-pane/terminal-pane-hook-order-parity.test.ts
@@ -20,8 +20,10 @@ const TERMINAL_PANE_HOOK_SOURCE_PATTERN =
// (last host layout leaf set, retired leaf set) (209 hooks, still 8 useMemo).
// Then search match count + Cmd+F focus parity (#9035) added a `useRef` and a `useCallback` in
// foundation (search input ref, focus-search-input) (211 hooks, still 8 useMemo).
+// Then the pending split-close admission added one `useRef` in close-actions
+// (the confirmed-close continuation) (212 hooks, still 8 useMemo).
const PRE_REFACTOR_HOOK_ORDER_SHA256 =
- 'ed41829b57f0723c155af1b0339513f5191e4485cd2e7b3fa2c062039afdc4e3'
+ 'a3ec9b9faac724605fbf8ebe6647f65b185ed0e2b2e763282159b289f0d199c6'
const sourceFiles = readdirSync(__dirname)
.filter((name) => TERMINAL_PANE_HOOK_SOURCE_PATTERN.test(name))
@@ -86,7 +88,7 @@ function readFlattenedHookOrder(): string[] {
describe('TerminalPane refactor hook parity', () => {
it('preserves the recursively flattened render hook order', () => {
const hooks = readFlattenedHookOrder()
- expect(hooks).toHaveLength(211)
+ expect(hooks).toHaveLength(212)
expect(hooks.filter((hook) => hook === 'useMemo')).toHaveLength(8)
expect(createHash('sha256').update(hooks.join('\n')).digest('hex')).toBe(
PRE_REFACTOR_HOOK_ORDER_SHA256
diff --git a/src/renderer/src/components/terminal-pane/use-terminal-pane-close-actions.ts b/src/renderer/src/components/terminal-pane/use-terminal-pane-close-actions.ts
index 330b42166cd..ea85e929e81 100644
--- a/src/renderer/src/components/terminal-pane/use-terminal-pane-close-actions.ts
+++ b/src/renderer/src/components/terminal-pane/use-terminal-pane-close-actions.ts
@@ -1,4 +1,4 @@
-import { useCallback, useImperativeHandle } from 'react'
+import { useCallback, useImperativeHandle, useRef } from 'react'
import { useAppStore } from '../../store'
import type { PaneExternalDropTarget } from '@/lib/pane-manager/pane-manager'
import { makePaneKey } from '../../../../shared/stable-pane-id'
@@ -13,8 +13,11 @@ import {
} from './terminal-pane-tab-detach'
import { clearPaneTerminalError } from './terminal-error-accumulation'
import type { TerminalPaneBindingController } from './use-terminal-pane-layout-bindings'
+import { retireUnboundIpcTerminalPane } from './retire-unbound-ipc-terminal-pane'
+import { capturePendingTerminalPaneClose } from './terminal-pane-close-admission'
export function useTerminalPaneCloseActions(controller: TerminalPaneBindingController) {
+ const confirmedCloseRef = useRef<(() => void) | null>(null)
const {
clearSessionRestoredBannerForPane,
managerRef,
@@ -46,6 +49,13 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
clearSessionRestoredBannerForPane(paneId)
const leafId = manager.getLeafId(paneId)
if (leafId) {
+ retireUnboundIpcTerminalPane({
+ getState: useAppStore.getState,
+ tabId,
+ leafId,
+ transport: paneTransportsRef.current.get(paneId),
+ getTransports: () => paneTransportsRef.current
+ })
useAppStore.getState().setCacheTimerStartedAt(makePaneKey(tabId, leafId), null)
useAppStore.getState().dropAgentStatus(makePaneKey(tabId, leafId), { paneRemoved: true })
}
@@ -79,12 +89,18 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
return
}
const transport = paneTransportsRef.current.get(paneId)
- const ptyId = transport?.getPtyId()
+ const pending = capturePendingTerminalPaneClose(controller, paneId, useAppStore.getState)
+ const ptyId = transport?.getPtyId() ?? pending?.ptyId
if (!ptyId) {
executeClosePane(paneId)
return
}
const settings = useAppStore.getState().settings
+ const close = (): void => {
+ if (!pending || pending.isCurrent()) {
+ executeClosePane(paneId)
+ }
+ }
let decided = false
const decide = (act: () => void): void => {
if (decided) {
@@ -93,12 +109,23 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
decided = true
act()
}
- const confirmClose = (): void =>
+ const confirmClose = (): void => {
+ if (pending && !pending.isCurrent()) {
+ return
+ }
+ confirmedCloseRef.current = close
setPendingCloseConfirmation({
paneId,
copyKind: getCloseDialogCopyKind(paneId)
})
- const probeTimeout = setTimeout(() => decide(confirmClose), RUNNING_CLOSE_PROBE_TIMEOUT_MS)
+ }
+ const probeTimeout = setTimeout(
+ () =>
+ decide(
+ pending && settings?.skipCloseTerminalWithRunningProcessConfirm ? close : confirmClose
+ ),
+ RUNNING_CLOSE_PROBE_TIMEOUT_MS
+ )
// Why the shared probe rather than a direct inspect: this is the same question the tab-close
// guard asks, and the two must not drift on what an unanswered host means.
void probePtyRunningWork(settings, [ptyId], { timeoutMs: RUNNING_CLOSE_PROBE_TIMEOUT_MS })
@@ -106,10 +133,10 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
clearTimeout(probeTimeout)
decide(() => {
if (
- probes[0]?.verdict !== 'live' ||
+ (pending ? probes[0]?.verdict === 'exited' : probes[0]?.verdict !== 'live') ||
settings?.skipCloseTerminalWithRunningProcessConfirm
) {
- executeClosePane(paneId)
+ close()
} else {
confirmClose()
}
@@ -117,7 +144,9 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
})
.catch(() => {
clearTimeout(probeTimeout)
- decide(() => executeClosePane(paneId))
+ decide(
+ pending && !settings?.skipCloseTerminalWithRunningProcessConfirm ? confirmClose : close
+ )
})
},
// oxlint-disable-next-line react-hooks/exhaustive-deps -- Preserve the pre-split dependency contract.
@@ -143,22 +172,24 @@ export function useTerminalPaneCloseActions(controller: TerminalPaneBindingContr
}, [])
const handleConfirmClose = useCallback(
(dontAskAgain: boolean) => {
- if (pendingCloseConfirmation === null) {
+ if (pendingCloseConfirmation === null || confirmedCloseRef.current === null) {
return
}
- const paneId = pendingCloseConfirmation.paneId
+ const confirmedClose = confirmedCloseRef.current
+ confirmedCloseRef.current = null
setPendingCloseConfirmation(null)
if (dontAskAgain) {
void updateSettings({
skipCloseTerminalWithRunningProcessConfirm: true
})
}
- executeClosePane(paneId)
+ confirmedClose()
},
// oxlint-disable-next-line react-hooks/exhaustive-deps -- Preserve the pre-split dependency contract.
[executeClosePane, pendingCloseConfirmation, updateSettings]
)
const handleCancelClose = useCallback(() => {
+ confirmedCloseRef.current = null
setPendingCloseConfirmation(null)
// oxlint-disable-next-line react-hooks/exhaustive-deps -- Preserve the pre-split dependency contract.
}, [])
diff --git a/src/renderer/src/store/slices/terminal-pane-retirement-ownership.test.ts b/src/renderer/src/store/slices/terminal-pane-retirement-ownership.test.ts
new file mode 100644
index 00000000000..ee21460d8c7
--- /dev/null
+++ b/src/renderer/src/store/slices/terminal-pane-retirement-ownership.test.ts
@@ -0,0 +1,85 @@
+import { expect, it } from 'vitest'
+import type { TerminalTab } from '../../../../shared/terminal-tab-types'
+import {
+ getTerminalPtyOwnershipIdentity,
+ hasTerminalPtyOwnerOutsidePane,
+ type TerminalTabRetirementState
+} from './terminal-tab-retirement'
+
+function tab(id: string, ptyId: string | null = null): TerminalTab {
+ return {
+ id,
+ worktreeId: 'wt',
+ ptyId,
+ title: id,
+ customTitle: null,
+ color: null,
+ sortOrder: 0,
+ createdAt: 0
+ }
+}
+function state(): TerminalTabRetirementState {
+ return {
+ worktreesByRepo: { repo: [{ id: 'wt', repoId: 'repo', runtimeOwnerEnvironmentId: 'env-1' }] },
+ tabsByWorktree: { wt: [tab('closing', 'remote:env-1@@session')] },
+ unifiedTabsByWorktree: {},
+ ptyIdsByTabId: { closing: ['remote:env-1@@session'] },
+ terminalLayoutsByTabId: {
+ closing: {
+ root: null,
+ activeLeafId: null,
+ expandedLeafId: null,
+ ptyIdsByLeafId: { original: 'remote:env-1@@session' }
+ }
+ },
+ lastKnownRelayPtyIdByTabId: {},
+ deferredSshSessionIdsByTabId: {},
+ pendingReconnectPtyIdByTabId: {}
+ }
+}
+
+it('ignores the closing leaf and its aggregate row, but protects a sibling legacy alias', () => {
+ const current = state()
+ const identity = getTerminalPtyOwnershipIdentity(current, 'remote:env-1@@session', 'wt')
+ expect(hasTerminalPtyOwnerOutsidePane(current, identity, 'closing', 'original')).toBe(false)
+ current.terminalLayoutsByTabId.closing.ptyIdsByLeafId = {
+ original: 'remote:env-1@@session',
+ sibling: 'remote:session'
+ }
+ expect(hasTerminalPtyOwnerOutsidePane(current, identity, 'closing', 'original')).toBe(true)
+})
+
+it('the late check protects replacement ownership at the same durable leaf', () => {
+ const current = state()
+ const identity = getTerminalPtyOwnershipIdentity(current, 'remote:session', 'wt')
+ expect(hasTerminalPtyOwnerOutsidePane(current, identity, 'closing')).toBe(true)
+})
+
+it.each(['row', 'layout', 'aggregate', 'relay', 'deferred', 'reconnect'] as const)(
+ 'protects another live tab with only %s ownership',
+ (source) => {
+ const current = state()
+ const id = 'remote:session'
+ current.tabsByWorktree.wt.push(tab('survivor', source === 'row' ? id : null))
+ if (source === 'layout') {
+ current.terminalLayoutsByTabId.survivor = {
+ root: null,
+ activeLeafId: null,
+ expandedLeafId: null,
+ ptyIdsByLeafId: { leaf: id }
+ }
+ } else if (source === 'aggregate') {
+ current.ptyIdsByTabId.survivor = [id]
+ } else if (source === 'relay') {
+ current.lastKnownRelayPtyIdByTabId.survivor = id
+ } else if (source === 'deferred') {
+ current.deferredSshSessionIdsByTabId.survivor = id
+ } else if (source === 'reconnect') {
+ current.pendingReconnectPtyIdByTabId.survivor = id
+ }
+ const identity = getTerminalPtyOwnershipIdentity(current, 'remote:env-1@@session', 'wt')
+ expect(hasTerminalPtyOwnerOutsidePane(current, identity, 'closing', 'original')).toBe(true)
+ current.tabsByWorktree.wt.pop()
+ expect(hasTerminalPtyOwnerOutsidePane(current, identity, 'closing', 'original')).toBe(false)
+ }
+)
diff --git a/src/renderer/src/store/slices/terminal-tab-retirement.ts b/src/renderer/src/store/slices/terminal-tab-retirement.ts
index 80e67824699..e2e034fa6af 100644
--- a/src/renderer/src/store/slices/terminal-tab-retirement.ts
+++ b/src/renderer/src/store/slices/terminal-tab-retirement.ts
@@ -135,6 +135,30 @@ export function isTerminalTabPresent(
return locateTerminalTab(state.tabsByWorktree, tabId) !== null
}
+export function hasTerminalPtyOwnerOutsidePane(
+ state: TerminalTabRetirementState,
+ identity: string,
+ tabId: string,
+ excludedLeafId?: string
+): boolean {
+ for (const [ownerTabId, owner] of collectLiveTerminalTabs(state)) {
+ const ids =
+ ownerTabId === tabId
+ ? Object.entries(state.terminalLayoutsByTabId[tabId]?.ptyIdsByLeafId ?? {})
+ .filter(([leafId]) => leafId !== excludedLeafId)
+ .map(([, ptyId]) => ptyId)
+ : collectPtyIdsForTab(state, ownerTabId, owner.rowPtyId)
+ if (
+ ids.some(
+ (ptyId) => getTerminalPtyOwnershipIdentity(state, ptyId, owner.worktreeId) === identity
+ )
+ ) {
+ return true
+ }
+ }
+ return false
+}
+
export function buildTerminalTabRetirementPlan(
state: TerminalTabRetirementState,
tabId: string
From 0d7381d1f25db1ebe93746feeb2d1053e3f77d7a Mon Sep 17 00:00:00 2001
From: Neil <4138956+nwparker@users.noreply.github.com>
Date: Thu, 17 Sep 2026 23:54:26 -0700
Subject: [PATCH 003/224] fix(terminal): keep an unverifiable park-reveal
snapshot apart from an empty pane (#21396)
On a park-reveal of a remote-runtime pty the host snapshot probe is the only
structural paint (the reattach carries no relay tail). Every non-snapshot
answer collapsed to null with no retry, so a host that stayed silent past the
request timeout, or answered 'no-serializable-buffer' ("not proof the pane is
empty"), painted the same blank pane as a host with nothing. That reads
unverifiable as exited (docs/reference/ssh-execution-boundary.md).
Classify the probe three ways: a host image paints; permanently-unavailable /
unavailable paints nothing and asks nothing; everything that proves nothing
(timeout, host declined for now, local lane gate, imageless success) paints
nothing and hands off to the hidden-output restore loop, which already budgets
retry-worthy answers (7 host declines / 30 local gates / 5 re-arm cycles),
repaints from the host on success, and ends in the explicit loss banner. The
reveal's own probe is charged to that same budget, so the bound is shared, not
doubled. No structural clear is issued on the unverifiable path, so whatever
the layout replay painted from the client's own copy stays visible.
---
.../hidden-output-restore-limits.ts | 5 +
.../hidden-output-restore-request.ts | 14 +-
.../hidden-output-snapshot-serialize.ts | 13 +
.../park-reveal-snapshot-verdict.test.ts | 183 ++++++++++
.../park-reveal-snapshot-verdict.ts | 120 +++++++
...result-handler-park-reveal-verdict.test.ts | 335 ++++++++++++++++++
.../pty-connection/reattach-result-handler.ts | 36 +-
.../pty-connection/run-deferred-connect.ts | 2 +
...ote-park-reveal-unverifiable-retry.test.ts | 279 +++++++++++++++
.../terminal-snapshot-unavailability.ts | 9 +-
10 files changed, 982 insertions(+), 14 deletions(-)
create mode 100644 src/renderer/src/components/terminal-pane/pty-connection/park-reveal-snapshot-verdict.test.ts
create mode 100644 src/renderer/src/components/terminal-pane/pty-connection/park-reveal-snapshot-verdict.ts
create mode 100644 src/renderer/src/components/terminal-pane/pty-connection/reattach-result-handler-park-reveal-verdict.test.ts
create mode 100644 src/renderer/src/components/terminal-pane/remote-park-reveal-unverifiable-retry.test.ts
diff --git a/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-restore-limits.ts b/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-restore-limits.ts
index 80ae6078f20..85336952549 100644
--- a/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-restore-limits.ts
+++ b/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-restore-limits.ts
@@ -35,3 +35,8 @@ export const HIDDEN_OUTPUT_RESTORE_LOCAL_GATE_MAX_ATTEMPTS = 30
// terminal state is unavailable, so the user has an explicit loss signal.
export const HIDDEN_OUTPUT_RESTORE_UNAVAILABLE_WARNING =
'\r\n[Orca skipped hidden terminal output because main recovery was unavailable.]\r\n'
+// Why distinct from the warning above: that one closes a bounded retry the host kept declining
+// (transient); this one reports a host that answered and can never produce the buffer for this
+// request, so a blank or stale pane is not mistaken for an empty terminal.
+export const PARK_REVEAL_NO_HOST_IMAGE_WARNING =
+ "\r\n[Orca could not restore this terminal's history from its host.]\r\n"
diff --git a/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-restore-request.ts b/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-restore-request.ts
index 08946421c5d..e89c14f432a 100644
--- a/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-restore-request.ts
+++ b/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-restore-request.ts
@@ -17,10 +17,12 @@ import {
} from './hidden-output-restore-limits'
import { shouldWritePtyOutputForeground } from './foreground-output-scan'
import { restoredSnapshotPaintsPrintableContent } from '../restored-snapshot-coverage'
-import { isRemoteRuntimePtyId } from './paired-parked-terminal-restore'
import type { ConnectPanePtySession } from './connect-pane-pty-session'
-import type { HiddenOutputSnapshotResult } from './hidden-output-snapshot-serialize'
+import {
+ classifyHiddenOutputSnapshotReject,
+ type HiddenOutputSnapshotResult
+} from './hidden-output-snapshot-serialize'
export function bindHiddenOutputRestoreRequest(session: ConnectPanePtySession): void {
session.requestHiddenOutputRestoreIfNeeded = function (opts?: {
@@ -138,13 +140,7 @@ export function bindHiddenOutputRestoreRequest(session: ConnectPanePtySession):
)
})
} catch {
- snapshotResult =
- !isRemoteRuntimePtyId(currentPtyId) ||
- session.hiddenOutputRestoreLegacyPtyId === currentPtyId ||
- typeof session.transport.serializeBufferOutcome !== 'function'
- ? { kind: 'unavailable' }
- : // Why 'host': the only reject here is the request timeout — the frame went out and the host stayed silent.
- { kind: 'retry-worthy', source: 'host' }
+ snapshotResult = classifyHiddenOutputSnapshotReject(session, currentPtyId)
}
if (session.disposed) {
return
diff --git a/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-snapshot-serialize.ts b/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-snapshot-serialize.ts
index 8629163d09e..e44c7a1661b 100644
--- a/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-snapshot-serialize.ts
+++ b/src/renderer/src/components/terminal-pane/pty-connection/hidden-output-snapshot-serialize.ts
@@ -3,6 +3,7 @@ import { onTerminalScrollIntentFollowOutput } from '@/lib/pane-manager/terminal-
import { shouldWritePtyOutputForeground } from './foreground-output-scan'
import { readE2eHiddenSnapshotOverride } from './e2e-terminal-pty-harness'
+import { isRemoteRuntimePtyId } from './paired-parked-terminal-restore'
import type { PtyBufferSnapshot } from '../pty-transport'
import type { ConnectPanePtySession } from './connect-pane-pty-session'
@@ -14,6 +15,18 @@ export type HiddenOutputSnapshotResult =
| { kind: 'unknown-legacy-host' }
| { kind: 'unavailable' }
+/** Why 'host': on a modern remote transport the only reject is the request timeout — the frame went out and the host stayed silent. Elsewhere local main answered nothing. */
+export function classifyHiddenOutputSnapshotReject(
+ session: ConnectPanePtySession,
+ ptyId: string
+): HiddenOutputSnapshotResult {
+ return !isRemoteRuntimePtyId(ptyId) ||
+ session.hiddenOutputRestoreLegacyPtyId === ptyId ||
+ typeof session.transport.serializeBufferOutcome !== 'function'
+ ? { kind: 'unavailable' }
+ : { kind: 'retry-worthy', source: 'host' }
+}
+
export function bindSerializeHiddenOutputSnapshot(session: ConnectPanePtySession): void {
session.serializeHiddenOutputSnapshot = async function (
ptyId: string,
diff --git a/src/renderer/src/components/terminal-pane/pty-connection/park-reveal-snapshot-verdict.test.ts b/src/renderer/src/components/terminal-pane/pty-connection/park-reveal-snapshot-verdict.test.ts
new file mode 100644
index 00000000000..6b3c263c814
--- /dev/null
+++ b/src/renderer/src/components/terminal-pane/pty-connection/park-reveal-snapshot-verdict.test.ts
@@ -0,0 +1,183 @@
+import { beforeEach, describe, expect, it, vi } from 'vitest'
+import {
+ bindParkRevealSnapshotVerdictActions,
+ classifyParkRevealSnapshot
+} from './park-reveal-snapshot-verdict'
+import { PARK_REVEAL_NO_HOST_IMAGE_WARNING } from './hidden-output-restore-limits'
+import type { ConnectPanePtySession } from './connect-pane-pty-session'
+
+const writeTerminalOutput = vi.hoisted(() => vi.fn())
+
+vi.mock('../terminal-freeze-breadcrumbs', () => ({ recordTerminalFreezeBreadcrumb: vi.fn() }))
+vi.mock('@/lib/pane-manager/pane-terminal-output-scheduler', () => ({ writeTerminalOutput }))
+
+const IMAGE = { data: 'PROMPT $ ', cols: 80, rows: 24, seq: 7, source: 'headless' as const }
+const REMOTE_PTY_ID = 'remote:env-1@@pty-1'
+const LOCAL_PTY_ID = 'wt-1@@local-pty-1'
+
+describe('classifyParkRevealSnapshot', () => {
+ it('reads a non-empty host image as positive evidence', () => {
+ expect(
+ classifyParkRevealSnapshot({ kind: 'snapshot', snapshot: IMAGE }, REMOTE_PTY_ID)
+ ).toEqual({
+ kind: 'host-snapshot',
+ snapshot: IMAGE
+ })
+ })
+
+ it('reads an alt-screen image as positive evidence even when its data is empty', () => {
+ const snapshot = { ...IMAGE, data: '', alternateScreen: true }
+ expect(classifyParkRevealSnapshot({ kind: 'snapshot', snapshot }, REMOTE_PTY_ID)).toEqual({
+ kind: 'host-snapshot',
+ snapshot
+ })
+ })
+
+ // A remote host's fallback serializer answers `data: ''` with no `unavailable` reason before
+ // its pane has hydrated. applyMainBufferSnapshot already refuses to paint that; so must the reveal.
+ it('reads a remote imageless success as unverifiable, charged to the host budget', () => {
+ expect(
+ classifyParkRevealSnapshot(
+ { kind: 'snapshot', snapshot: { ...IMAGE, data: '' } },
+ REMOTE_PTY_ID
+ )
+ ).toEqual({ kind: 'unverifiable', ledger: 'host' })
+ })
+
+ it('reads an empty local-main model as positive evidence: local main is the execution host', () => {
+ const snapshot = { ...IMAGE, data: '' }
+ expect(classifyParkRevealSnapshot({ kind: 'snapshot', snapshot }, LOCAL_PTY_ID)).toEqual({
+ kind: 'host-snapshot',
+ snapshot
+ })
+ })
+
+ it.each([
+ ['host silent past the request timeout', 'host'],
+ ['request lane gated before any frame left the client', 'local']
+ ] as const)('reads retry-worthy (%s) as unverifiable on the %s ledger', (_label, source) => {
+ expect(classifyParkRevealSnapshot({ kind: 'retry-worthy', source }, REMOTE_PTY_ID)).toEqual({
+ kind: 'unverifiable',
+ ledger: source
+ })
+ })
+
+ it('reads a legacy host empty reply as unverifiable with no ledger charge', () => {
+ expect(classifyParkRevealSnapshot({ kind: 'unknown-legacy-host' }, REMOTE_PTY_ID)).toEqual({
+ kind: 'unverifiable',
+ ledger: null
+ })
+ })
+
+ // Retention is never inferred from image content: this arm is reachable only from an
+ // explicit host answer, and it carries which one so a caller need not re-derive it.
+ it.each(['permanently-unavailable', 'unavailable'] as const)(
+ 'reads %s as no host image, carrying the answer that closed the door',
+ (kind) => {
+ expect(classifyParkRevealSnapshot({ kind }, REMOTE_PTY_ID)).toEqual({
+ kind: 'no-host-image',
+ reason: kind
+ })
+ }
+ )
+})
+
+function buildSession(overrides: Record = {}): ConnectPanePtySession {
+ // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: a deliberately partial session bag; only the members the verdict actions touch exist, so an unexpected access fails the test.
+ const session = {
+ disposed: false,
+ transport: { getPtyId: () => REMOTE_PTY_ID },
+ pane: { terminal: { id: 'xterm-1' } },
+ beforeTerminalOutputWrite: vi.fn(),
+ canUseHiddenOutputSnapshot: () => true,
+ hiddenOutputRestoreRemoteOutcomeAttempts: 0,
+ hiddenOutputRestoreLocalGateAttempts: 0,
+ markHiddenOutputRestoreNeeded: vi.fn(),
+ ...overrides
+ } as unknown as ConnectPanePtySession
+ bindParkRevealSnapshotVerdictActions(session)
+ return session
+}
+
+describe('warnParkRevealNoHostImage', () => {
+ beforeEach(() => {
+ vi.clearAllMocks()
+ })
+
+ it('writes the no-host-image banner into a remote pane, pen reset, no CAN byte', () => {
+ const session = buildSession()
+
+ expect(session.warnParkRevealNoHostImage(REMOTE_PTY_ID, 'unavailable')).toBe(true)
+
+ expect(writeTerminalOutput).toHaveBeenCalledExactlyOnceWith(
+ session.pane.terminal,
+ `\x1b[0m${PARK_REVEAL_NO_HOST_IMAGE_WARNING}`,
+ { foreground: true, beforeWrite: session.beforeTerminalOutputWrite }
+ )
+ expect(writeTerminalOutput.mock.calls[0]?.[1]).not.toContain('\x18')
+ })
+
+ it('stays silent for a local pane, whose layout copy is never released', () => {
+ const session = buildSession({ transport: { getPtyId: () => LOCAL_PTY_ID } })
+
+ expect(session.warnParkRevealNoHostImage(LOCAL_PTY_ID, 'unavailable')).toBe(false)
+
+ expect(writeTerminalOutput).not.toHaveBeenCalled()
+ })
+
+ it('does not banner a pane whose transport has moved on', () => {
+ const session = buildSession({ transport: { getPtyId: () => 'remote:env-1@@pty-2' } })
+
+ expect(session.warnParkRevealNoHostImage(REMOTE_PTY_ID, 'permanently-unavailable')).toBe(false)
+
+ expect(writeTerminalOutput).not.toHaveBeenCalled()
+ })
+})
+
+describe('retryUnverifiableParkRevealSnapshot', () => {
+ it('charges the reveal probe to the host budget and hands off to the restore loop', () => {
+ const session = buildSession()
+
+ expect(session.retryUnverifiableParkRevealSnapshot('remote:env-1@@pty-1', 'host')).toBe(true)
+
+ expect(session.hiddenOutputRestoreRemoteOutcomeAttempts).toBe(1)
+ expect(session.hiddenOutputRestoreLocalGateAttempts).toBe(0)
+ expect(session.markHiddenOutputRestoreNeeded).toHaveBeenCalledOnce()
+ })
+
+ it('charges a local gate to the local budget only', () => {
+ const session = buildSession()
+
+ session.retryUnverifiableParkRevealSnapshot('remote:env-1@@pty-1', 'local')
+
+ expect(session.hiddenOutputRestoreRemoteOutcomeAttempts).toBe(0)
+ expect(session.hiddenOutputRestoreLocalGateAttempts).toBe(1)
+ expect(session.markHiddenOutputRestoreNeeded).toHaveBeenCalledOnce()
+ })
+
+ it('charges nothing for a legacy host but still hands off', () => {
+ const session = buildSession()
+
+ session.retryUnverifiableParkRevealSnapshot('remote:env-1@@pty-1', null)
+
+ expect(session.hiddenOutputRestoreRemoteOutcomeAttempts).toBe(0)
+ expect(session.hiddenOutputRestoreLocalGateAttempts).toBe(0)
+ expect(session.markHiddenOutputRestoreNeeded).toHaveBeenCalledOnce()
+ })
+
+ it.each([
+ [
+ 'the transport moved to another PTY',
+ { transport: { getPtyId: () => 'remote:env-1@@pty-2' } }
+ ],
+ ['the session is disposed', { disposed: true }],
+ ['no hidden snapshot source exists', { canUseHiddenOutputSnapshot: () => false }]
+ ])('does nothing when %s', (_label, overrides) => {
+ const session = buildSession(overrides)
+
+ expect(session.retryUnverifiableParkRevealSnapshot('remote:env-1@@pty-1', 'host')).toBe(false)
+
+ expect(session.hiddenOutputRestoreRemoteOutcomeAttempts).toBe(0)
+ expect(session.markHiddenOutputRestoreNeeded).not.toHaveBeenCalled()
+ })
+})
diff --git a/src/renderer/src/components/terminal-pane/pty-connection/park-reveal-snapshot-verdict.ts b/src/renderer/src/components/terminal-pane/pty-connection/park-reveal-snapshot-verdict.ts
new file mode 100644
index 00000000000..5bfa786d3bf
--- /dev/null
+++ b/src/renderer/src/components/terminal-pane/pty-connection/park-reveal-snapshot-verdict.ts
@@ -0,0 +1,120 @@
+import { RESET_GRAPHIC_RENDITION } from '../../../../../shared/terminal-mode-reset-profiles'
+import { redactPtyIdForDiagnostics } from '../../../../../shared/pty-delivery-diagnostics'
+import { writeTerminalOutput } from '@/lib/pane-manager/pane-terminal-output-scheduler'
+import { recordTerminalFreezeBreadcrumb } from '../terminal-freeze-breadcrumbs'
+import type { PtyBufferSnapshot } from '../pty-transport'
+
+import type { ConnectPanePtySession } from './connect-pane-pty-session'
+import { PARK_REVEAL_NO_HOST_IMAGE_WARNING } from './hidden-output-restore-limits'
+import type { HiddenOutputSnapshotResult } from './hidden-output-snapshot-serialize'
+import { isRemoteRuntimePtyId } from './paired-parked-terminal-restore'
+
+/** Which restore budget an unverifiable probe is charged to; null when the loop keeps its own count (legacy hosts). */
+export type ParkRevealRetryLedger = 'host' | 'local' | null
+
+/** The explicit answer that closed the door: only these two ever reach `no-host-image`. */
+export type ParkRevealNoHostImageReason = 'permanently-unavailable' | 'unavailable'
+
+/**
+ * What a park-reveal's host snapshot probe proved. Three verdicts, no synonyms
+ * (docs/reference/ssh-execution-boundary.md): only `host-snapshot` is positive
+ * evidence of the pane's contents, and a probe that proves nothing must never
+ * be read as "the pane is empty". Retention is never inferred from image
+ * content: `no-host-image` is reachable only from an explicit host answer.
+ */
+export type ParkRevealSnapshotVerdict =
+ | { kind: 'host-snapshot'; snapshot: PtyBufferSnapshot }
+ /** Timeout, host declined for now, local request-lane gate, or an imageless success. */
+ | { kind: 'unverifiable'; ledger: ParkRevealRetryLedger }
+ /** The host answered, and repeating this request can never yield the buffer. */
+ | { kind: 'no-host-image'; reason: ParkRevealNoHostImageReason }
+
+export function classifyParkRevealSnapshot(
+ result: HiddenOutputSnapshotResult,
+ ptyId: string
+): ParkRevealSnapshotVerdict {
+ switch (result.kind) {
+ case 'snapshot': {
+ const { snapshot } = result
+ // Why remote-only: a remote host's fallback serializer can answer `data: ''` before its
+ // pane has hydrated, so an imageless success proves nothing there (applyMainBufferSnapshot
+ // refuses it too) and painting it would clear the client's own copy. Local main is the
+ // execution host for a local pty; its empty model is the positive answer.
+ const carriesNoImage =
+ isRemoteRuntimePtyId(ptyId) &&
+ snapshot.alternateScreen !== true &&
+ snapshot.data === '' &&
+ !snapshot.scrollbackAnsi
+ return carriesNoImage
+ ? { kind: 'unverifiable', ledger: 'host' }
+ : { kind: 'host-snapshot', snapshot }
+ }
+ case 'retry-worthy':
+ return { kind: 'unverifiable', ledger: result.source }
+ case 'unknown-legacy-host':
+ return { kind: 'unverifiable', ledger: null }
+ case 'permanently-unavailable':
+ case 'unavailable':
+ return { kind: 'no-host-image', reason: result.kind }
+ }
+}
+
+export function bindParkRevealSnapshotVerdictActions(session: ConnectPanePtySession): void {
+ // Why a hand-off, not a loop: the hidden-output restore loop already budgets
+ // retry-worthy answers (7 host declines / 30 local gates / 5 re-arm cycles),
+ // repaints from the host on success, and ends in an explicit loss banner.
+ // A second loop here would double every bound.
+ session.retryUnverifiableParkRevealSnapshot = function (
+ ptyId: string,
+ ledger: ParkRevealRetryLedger
+ ): boolean {
+ if (
+ session.disposed ||
+ session.transport.getPtyId() !== ptyId ||
+ !session.canUseHiddenOutputSnapshot(ptyId)
+ ) {
+ return false
+ }
+ // Charge the reveal's own probe so the shared budget counts it: 1 + 6 = 7 host requests.
+ if (ledger === 'host') {
+ session.hiddenOutputRestoreRemoteOutcomeAttempts += 1
+ } else if (ledger === 'local') {
+ session.hiddenOutputRestoreLocalGateAttempts += 1
+ }
+ recordTerminalFreezeBreadcrumb('park-reveal-unverifiable', {
+ id: redactPtyIdForDiagnostics(ptyId),
+ ledger: ledger ?? 'none'
+ })
+ session.markHiddenOutputRestoreNeeded()
+ return true
+ }
+
+ // Unavoidable loss must be visible: a pane the host could not image must not
+ // look like an empty terminal. Remote-only because local main is the
+ // execution host and a local pane's layout copy is never released, so the
+ // pane already shows everything there is.
+ session.warnParkRevealNoHostImage = function (
+ ptyId: string,
+ reason: ParkRevealNoHostImageReason
+ ): boolean {
+ recordTerminalFreezeBreadcrumb('park-reveal-no-host-image', {
+ id: redactPtyIdForDiagnostics(ptyId),
+ reason
+ })
+ if (
+ !isRemoteRuntimePtyId(ptyId) ||
+ session.disposed ||
+ session.transport.getPtyId() !== ptyId
+ ) {
+ return false
+ }
+ // Why no CAN byte here: the subscribe-time push snapshot may have left a pending escape
+ // tail for the next live chunk to complete; only the pen is reset.
+ writeTerminalOutput(
+ session.pane.terminal,
+ `${RESET_GRAPHIC_RENDITION}${PARK_REVEAL_NO_HOST_IMAGE_WARNING}`,
+ { foreground: true, beforeWrite: session.beforeTerminalOutputWrite }
+ )
+ return true
+ }
+}
diff --git a/src/renderer/src/components/terminal-pane/pty-connection/reattach-result-handler-park-reveal-verdict.test.ts b/src/renderer/src/components/terminal-pane/pty-connection/reattach-result-handler-park-reveal-verdict.test.ts
new file mode 100644
index 00000000000..86237ac8f21
--- /dev/null
+++ b/src/renderer/src/components/terminal-pane/pty-connection/reattach-result-handler-park-reveal-verdict.test.ts
@@ -0,0 +1,335 @@
+import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { bindHandleReattachResult } from './reattach-result-handler'
+import { bindSerializeHiddenOutputSnapshot } from './hidden-output-snapshot-serialize'
+import type { ConnectPanePtySession } from './connect-pane-pty-session'
+import type { HiddenOutputSnapshotResult } from './hidden-output-snapshot-serialize'
+import type { ReattachPayloadContext } from './reattach-payload-context'
+
+/**
+ * A park-reveal of a remote-runtime pty arrives with `replay: ''`, so the host
+ * snapshot probe is the ONLY structural paint. The probe has three answers and
+ * the handler must keep them apart (docs/reference/ssh-execution-boundary.md):
+ *
+ * host image → paint it (the structural clear + repaint)
+ * unverifiable → paint nothing AND re-ask the host, bounded
+ * no host image → paint nothing, ask nothing
+ *
+ * These tests assert on the decision the handler hands to the payload and the
+ * retry it arms, not on what the pane looks like: a live host also pushes a
+ * retained tail at subscribe time, so the rendered pane can look right whether
+ * or not the decision was.
+ */
+const REMOTE_PTY_ID = 'remote:env-1@@pty-1'
+const HOST_IMAGE = { data: 'PROMPT $ ', cols: 80, rows: 24, seq: 7, source: 'headless' as const }
+
+const mocks = vi.hoisted(() => {
+ const state: Record = { tabsByWorktree: {}, terminalLayoutsByTabId: {} }
+ const capturedContexts: ReattachPayloadContext[] = []
+ const callOrder: string[] = []
+ return { state, capturedContexts, callOrder }
+})
+
+vi.mock('@/store', () => ({
+ useAppStore: { getState: () => mocks.state }
+}))
+vi.mock('@/lib/codex-stale-pane-sweep', () => ({ notifyCodexPaneBoundForStaleSweep: vi.fn() }))
+vi.mock('@/runtime/sync-runtime-graph', () => ({ scheduleRuntimeGraphSync: vi.fn() }))
+vi.mock('../terminal-freeze-breadcrumbs', () => ({ recordTerminalFreezeBreadcrumb: vi.fn() }))
+// Why: the payload handlers need a mounted xterm; what matters here is the
+// context the handler decided on, so capture it and report the payload applied.
+vi.mock('./apply-reattach-payload', () => ({
+ createReattachPayloadHandlers: (_session: unknown, ctx: ReattachPayloadContext) => {
+ mocks.capturedContexts.push(ctx)
+ return {
+ applyReattachPayload: async () => {
+ mocks.callOrder.push('applyReattachPayload')
+ ctx.reattachPayloadApplied = true
+ },
+ fitAfterReattachRestore: async () => {
+ mocks.callOrder.push('fitAfterReattachRestore')
+ }
+ }
+ }
+}))
+
+type Bag = {
+ session: ConnectPanePtySession
+ transport: Record
+ /** The pane-transport registry, keyed by pane id; the bag is deliberately untyped. */
+ paneTransports: Map
+ retryUnverifiableParkRevealSnapshot: ReturnType
+ warnParkRevealNoHostImage: ReturnType
+ structuralRun: ReturnType
+}
+
+function buildParkRevealSession(overrides: Record = {}): Bag {
+ const transport: Record = {
+ getPtyId: () => REMOTE_PTY_ID,
+ disconnect: vi.fn(),
+ serializeBuffer: vi.fn()
+ }
+ const paneTransports = new Map([['pane-1', transport]])
+ const warnParkRevealNoHostImage = vi.fn(() => {
+ mocks.callOrder.push('warnParkRevealNoHostImage')
+ return true
+ })
+ const retryUnverifiableParkRevealSnapshot = vi.fn(() => {
+ mocks.callOrder.push('retryUnverifiableParkRevealSnapshot')
+ return true
+ })
+ const structuralRun = vi.fn(
+ async (
+ task: () => Promise,
+ opts?: { afterRestore?: () => Promise }
+ ): Promise => {
+ await task()
+ await opts?.afterRestore?.()
+ }
+ )
+ // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: a deliberately partial session bag; only the members the park-reveal decision touches exist, so an unexpected access fails the test.
+ const session = {
+ transport,
+ disposed: false,
+ transportStreamGeneration: 0,
+ authoritativeReattachGeneration: 0,
+ // The reveal remount of a parked pane; consume-once in the handler.
+ mountFollowsTerminalPark: true,
+ followsDirectSshReconnect: false,
+ connectionId: null,
+ cacheKey: 'cache-1',
+ directSshRetryAttempt: undefined,
+ capturedDirectSshRetryPtyAccepted: false,
+ pane: { id: 'pane-1', leafId: 'leaf-1', terminal: { options: { scrollback: 1000 } } },
+ deps: {
+ tabId: 'tab-1',
+ worktreeId: 'wt-1',
+ paneTransportsRef: { current: paneTransports },
+ isVisibleRef: { current: true },
+ clearTabPtyId: vi.fn(),
+ updateTabPtyId: vi.fn(),
+ restoredLeafId: null
+ },
+ agentCompletionCoordinator: { startProcessTracking: vi.fn() },
+ structuralReplayCoordinator: { run: structuralRun },
+ getSshMainModelSnapshotProbe: () => async () => null,
+ serializeHiddenOutputSnapshot: vi.fn(),
+ retryUnverifiableParkRevealSnapshot,
+ warnParkRevealNoHostImage,
+ rejectObsoleteDirectSshReattach: () => false,
+ registerEffectiveLaunchConfig: vi.fn(),
+ clearExitedPanePtyLayoutBinding: vi.fn(),
+ syncPanePtyLayoutBinding: vi.fn(),
+ startFreshColdRestoreAgentResume: vi.fn(),
+ setPanePtyFitBinding: vi.fn(),
+ reportPanePtyVisibility: vi.fn(),
+ registerSideEffectFactConsumerForPty: vi.fn(),
+ syncHiddenRendererPtyDelivery: vi.fn(),
+ registerPaneSerializerFor: vi.fn(),
+ sampleVisiblePaneForegroundAgent: vi.fn(),
+ scheduleReattachIdleAgentCursorReset: vi.fn(),
+ settlePaneAttachAttempt: vi.fn(),
+ ...overrides
+ } as unknown as ConnectPanePtySession
+ bindHandleReattachResult(session)
+ return {
+ session,
+ transport,
+ paneTransports,
+ retryUnverifiableParkRevealSnapshot,
+ warnParkRevealNoHostImage,
+ structuralRun
+ }
+}
+
+/** The remote transport's park-reveal result: a bare reattach with no relay tail. */
+const PARK_REVEAL_RESULT = { id: REMOTE_PTY_ID, replay: '', isReattach: true }
+
+function probeAnswers(result: HiddenOutputSnapshotResult): ReturnType {
+ return vi.fn(async () => result)
+}
+
+function decidedContext(): ReattachPayloadContext {
+ expect(mocks.capturedContexts).toHaveLength(1)
+ return mocks.capturedContexts[0]!
+}
+
+beforeEach(() => {
+ vi.clearAllMocks()
+ mocks.state = { tabsByWorktree: {}, terminalLayoutsByTabId: {} }
+ mocks.capturedContexts = []
+ mocks.callOrder = []
+})
+
+describe('handleReattachResult park-reveal snapshot verdict', () => {
+ it('paints a host image and arms no retry', async () => {
+ const bag = buildParkRevealSession({
+ serializeHiddenOutputSnapshot: probeAnswers({ kind: 'snapshot', snapshot: HOST_IMAGE })
+ })
+
+ await expect(bag.session.handleReattachResult(PARK_REVEAL_RESULT)).resolves.toBe(true)
+
+ const ctx = decidedContext()
+ expect(ctx.prefetchedParkModelSnapshot).toBe(HOST_IMAGE)
+ expect(ctx.shouldApplyStructuralPayload).toBe(true)
+ expect(bag.structuralRun).toHaveBeenCalledOnce()
+ expect(bag.retryUnverifiableParkRevealSnapshot).not.toHaveBeenCalled()
+ })
+
+ // The defect: a host that stayed silent past the request timeout used to
+ // collapse to the same null as "nothing to paint" and was never asked again.
+ it('does not paint blank when the host stayed silent, and re-asks it', async () => {
+ const bag = buildParkRevealSession({
+ serializeHiddenOutputSnapshot: probeAnswers({ kind: 'retry-worthy', source: 'host' })
+ })
+
+ await expect(bag.session.handleReattachResult(PARK_REVEAL_RESULT)).resolves.toBe(true)
+
+ const ctx = decidedContext()
+ expect(ctx.prefetchedParkModelSnapshot).toBeNull()
+ // No structural transaction means no `\x1b[2J\x1b[3J` clear over the client's own copy.
+ expect(ctx.shouldApplyStructuralPayload).toBe(false)
+ expect(bag.structuralRun).not.toHaveBeenCalled()
+ expect(bag.retryUnverifiableParkRevealSnapshot).toHaveBeenCalledExactlyOnceWith(
+ REMOTE_PTY_ID,
+ 'host'
+ )
+ // The retry's own repaint must queue behind this attempt, never nest inside it.
+ expect(mocks.callOrder).toEqual([
+ 'applyReattachPayload',
+ 'fitAfterReattachRestore',
+ 'retryUnverifiableParkRevealSnapshot'
+ ])
+ })
+
+ it('treats a rejected probe on a modern remote transport as the host staying silent', async () => {
+ const bag = buildParkRevealSession({
+ hiddenOutputRestoreLegacyPtyId: null,
+ serializeHiddenOutputSnapshot: vi.fn(async () => {
+ throw new Error('Remote terminal snapshot timed out.')
+ })
+ })
+ bag.transport.serializeBufferOutcome = vi.fn()
+
+ await expect(bag.session.handleReattachResult(PARK_REVEAL_RESULT)).resolves.toBe(true)
+
+ expect(decidedContext().prefetchedParkModelSnapshot).toBeNull()
+ expect(bag.retryUnverifiableParkRevealSnapshot).toHaveBeenCalledExactlyOnceWith(
+ REMOTE_PTY_ID,
+ 'host'
+ )
+ })
+
+ // Through the real serializer: the host answered `unavailable: 'no-serializable-buffer'`,
+ // whose own host-side comment reads "not proof the pane is empty".
+ it("re-asks a host that answered 'no-serializable-buffer' instead of painting blank", async () => {
+ const bag = buildParkRevealSession({
+ canUseMainBufferSnapshot: () => false,
+ hiddenOutputRestoreLegacyPtyId: null
+ })
+ bag.transport.serializeBufferOutcome = vi.fn(async () => ({
+ availability: { kind: 'retry-worthy', cause: 'host-no-serializable-buffer' },
+ snapshot: null
+ }))
+ bindSerializeHiddenOutputSnapshot(bag.session)
+
+ await expect(bag.session.handleReattachResult(PARK_REVEAL_RESULT)).resolves.toBe(true)
+
+ expect(bag.transport.serializeBufferOutcome).toHaveBeenCalledOnce()
+ const ctx = decidedContext()
+ expect(ctx.prefetchedParkModelSnapshot).toBeNull()
+ expect(ctx.shouldApplyStructuralPayload).toBe(false)
+ expect(bag.retryUnverifiableParkRevealSnapshot).toHaveBeenCalledExactlyOnceWith(
+ REMOTE_PTY_ID,
+ 'host'
+ )
+ })
+
+ it('does not paint an imageless success over the client copy, and re-asks', async () => {
+ const bag = buildParkRevealSession({
+ serializeHiddenOutputSnapshot: probeAnswers({
+ kind: 'snapshot',
+ snapshot: { ...HOST_IMAGE, data: '' }
+ })
+ })
+
+ await expect(bag.session.handleReattachResult(PARK_REVEAL_RESULT)).resolves.toBe(true)
+
+ expect(decidedContext().prefetchedParkModelSnapshot).toBeNull()
+ expect(bag.structuralRun).not.toHaveBeenCalled()
+ expect(bag.retryUnverifiableParkRevealSnapshot).toHaveBeenCalledExactlyOnceWith(
+ REMOTE_PTY_ID,
+ 'host'
+ )
+ })
+
+ it('charges a local request-lane gate to the local budget', async () => {
+ const bag = buildParkRevealSession({
+ serializeHiddenOutputSnapshot: probeAnswers({ kind: 'retry-worthy', source: 'local' })
+ })
+
+ await bag.session.handleReattachResult(PARK_REVEAL_RESULT)
+
+ expect(bag.retryUnverifiableParkRevealSnapshot).toHaveBeenCalledExactlyOnceWith(
+ REMOTE_PTY_ID,
+ 'local'
+ )
+ })
+
+ // Unavoidable loss, made visible: the host answered and cannot produce the buffer, so the
+ // pane must say so rather than pass for an empty terminal — and never ask again.
+ it.each(['permanently-unavailable', 'unavailable'] as const)(
+ 'paints nothing, asks nothing, and banners the loss when the host answered %s',
+ async (kind) => {
+ const bag = buildParkRevealSession({ serializeHiddenOutputSnapshot: probeAnswers({ kind }) })
+
+ await expect(bag.session.handleReattachResult(PARK_REVEAL_RESULT)).resolves.toBe(true)
+
+ const ctx = decidedContext()
+ expect(ctx.prefetchedParkModelSnapshot).toBeNull()
+ expect(ctx.shouldApplyStructuralPayload).toBe(false)
+ expect(bag.retryUnverifiableParkRevealSnapshot).not.toHaveBeenCalled()
+ expect(bag.warnParkRevealNoHostImage).toHaveBeenCalledExactlyOnceWith(REMOTE_PTY_ID, kind)
+ expect(mocks.callOrder).toEqual([
+ 'applyReattachPayload',
+ 'fitAfterReattachRestore',
+ 'warnParkRevealNoHostImage'
+ ])
+ }
+ )
+
+ it.each([
+ ['a host image', { kind: 'snapshot', snapshot: HOST_IMAGE }],
+ ['an unverifiable answer', { kind: 'retry-worthy', source: 'host' }]
+ ] as const)('does not banner the loss on %s', async (_label, result) => {
+ const bag = buildParkRevealSession({ serializeHiddenOutputSnapshot: probeAnswers(result) })
+
+ await bag.session.handleReattachResult(PARK_REVEAL_RESULT)
+
+ expect(bag.warnParkRevealNoHostImage).not.toHaveBeenCalled()
+ })
+
+ it('arms no retry for an attempt a remount superseded while the probe was in flight', async () => {
+ const bag = buildParkRevealSession()
+ bag.session.serializeHiddenOutputSnapshot = vi.fn(async () => {
+ // A successor mount registered its own transport before the probe settled.
+ bag.paneTransports.set('pane-1', { getPtyId: () => REMOTE_PTY_ID })
+ return { kind: 'retry-worthy', source: 'host' }
+ })
+
+ await expect(bag.session.handleReattachResult(PARK_REVEAL_RESULT)).resolves.toBe(false)
+
+ expect(mocks.capturedContexts).toHaveLength(0)
+ expect(bag.retryUnverifiableParkRevealSnapshot).not.toHaveBeenCalled()
+ })
+
+ it('probes only the first reattach of a reveal remount', async () => {
+ const probe = probeAnswers({ kind: 'retry-worthy', source: 'host' })
+ const bag = buildParkRevealSession({ serializeHiddenOutputSnapshot: probe })
+
+ await bag.session.handleReattachResult(PARK_REVEAL_RESULT)
+ await bag.session.handleReattachResult(PARK_REVEAL_RESULT)
+
+ expect(probe).toHaveBeenCalledOnce()
+ expect(bag.retryUnverifiableParkRevealSnapshot).toHaveBeenCalledOnce()
+ })
+})
diff --git a/src/renderer/src/components/terminal-pane/pty-connection/reattach-result-handler.ts b/src/renderer/src/components/terminal-pane/pty-connection/reattach-result-handler.ts
index d485e526631..cbef66a0cfb 100644
--- a/src/renderer/src/components/terminal-pane/pty-connection/reattach-result-handler.ts
+++ b/src/renderer/src/components/terminal-pane/pty-connection/reattach-result-handler.ts
@@ -19,6 +19,15 @@ import type { ReattachPayloadContext } from './reattach-payload-context'
import { createReattachPayloadHandlers } from './apply-reattach-payload'
import type { ReattachPayloadSession } from './reattach-payload-session'
import { recoverUnverifiableDirectSshReattach } from './direct-ssh-reattach-recovery'
+import {
+ classifyHiddenOutputSnapshotReject,
+ type HiddenOutputSnapshotResult
+} from './hidden-output-snapshot-serialize'
+import {
+ classifyParkRevealSnapshot,
+ type ParkRevealNoHostImageReason,
+ type ParkRevealRetryLedger
+} from './park-reveal-snapshot-verdict'
type ReattachResultSession = ReattachPayloadSession &
Pick<
@@ -42,7 +51,9 @@ type ReattachResultSession = ReattachPayloadSession &
| 'registerSideEffectFactConsumerForPty'
| 'rejectObsoleteDirectSshReattach'
| 'reportPanePtyVisibility'
+ | 'retryUnverifiableParkRevealSnapshot'
| 'sampleVisiblePaneForegroundAgent'
+ | 'warnParkRevealNoHostImage'
| 'scheduleReattachIdleAgentCursorReset'
| 'serializeHiddenOutputSnapshot'
| 'settlePaneAttachAttempt'
@@ -280,19 +291,32 @@ export function bindHandleReattachResult(sessionBag: ConnectPanePtySession): voi
// host snapshot before releasing queued live bytes; null falls back to
// the subscribe screen without keeping the old xterm mounted.
let prefetchedParkModelSnapshot: PtyBufferSnapshot | null = null
+ // Why kept apart from null: null means "paint nothing", never "the pane is
+ // empty". A probe that proved nothing (timeout, host declined for now) must
+ // also re-ask the host, bounded, once the payload has settled.
+ let unverifiableParkRevealLedger: ParkRevealRetryLedger | undefined
+ let noHostImageReason: ParkRevealNoHostImageReason | undefined
if (revealFollowsTerminalPark && (!hasStructuralReplay || isRemoteRuntimePtyId(ptyId))) {
if (parseAppSshPtyId(ptyId)) {
prefetchedParkModelSnapshot = await fetchSshMainModelReattachSnapshot()
} else {
+ let result: HiddenOutputSnapshotResult
try {
- const result = await session.serializeHiddenOutputSnapshot(ptyId, {
+ result = await session.serializeHiddenOutputSnapshot(ptyId, {
scrollbackRows: resolveHiddenRestoreScrollbackRows(
session.pane.terminal.options.scrollback
)
})
- prefetchedParkModelSnapshot = result.kind === 'snapshot' ? result.snapshot : null
} catch {
- prefetchedParkModelSnapshot = null
+ result = classifyHiddenOutputSnapshotReject(sessionBag, ptyId)
+ }
+ const verdict = classifyParkRevealSnapshot(result, ptyId)
+ if (verdict.kind === 'host-snapshot') {
+ prefetchedParkModelSnapshot = verdict.snapshot
+ } else if (verdict.kind === 'unverifiable') {
+ unverifiableParkRevealLedger = verdict.ledger
+ } else {
+ noHostImageReason = verdict.reason
}
}
if (!isCurrentReattachPayload()) {
@@ -332,6 +356,12 @@ export function bindHandleReattachResult(sessionBag: ConnectPanePtySession): voi
if (!isCurrentReattachPayload() || !reattachPayload.reattachPayloadApplied) {
return false
}
+ if (unverifiableParkRevealLedger !== undefined) {
+ // After the payload, so the retry's own structural repaint queues behind this attempt instead of nesting in it.
+ session.retryUnverifiableParkRevealSnapshot(ptyId, unverifiableParkRevealLedger)
+ } else if (noHostImageReason !== undefined) {
+ session.warnParkRevealNoHostImage(ptyId, noHostImageReason)
+ }
session.scheduleReattachIdleAgentCursorReset()
scheduleRuntimeGraphSync()
diff --git a/src/renderer/src/components/terminal-pane/pty-connection/run-deferred-connect.ts b/src/renderer/src/components/terminal-pane/pty-connection/run-deferred-connect.ts
index 3dc1c3aaef5..b02b9dfcef1 100644
--- a/src/renderer/src/components/terminal-pane/pty-connection/run-deferred-connect.ts
+++ b/src/renderer/src/components/terminal-pane/pty-connection/run-deferred-connect.ts
@@ -24,6 +24,7 @@ import { bindSettlePaneSerializer } from './pane-serializer-settle'
import { bindDeferredColdRestoreAndSnapshot } from './deferred-cold-restore-and-snapshot'
import { bindHiddenOutputSeqAndSkip } from './hidden-output-seq-and-skip'
import { bindHiddenRestoreStateAndSshProbe } from './hidden-restore-state-and-ssh-probe'
+import { bindParkRevealSnapshotVerdictActions } from './park-reveal-snapshot-verdict'
export function installRunDeferredConnect(session: ConnectPanePtySession): void {
const cwdPromise = session.deps.cwdPromise
@@ -193,6 +194,7 @@ export function installRunDeferredConnect(session: ConnectPanePtySession): void
bindHiddenRestoreStateAndSshProbe(session)
bindPrepaintParkedSshSnapshot(session)
+ bindParkRevealSnapshotVerdictActions(session)
bindHandleReattachResult(session)
runDeferredSessionAttach(session)
}
diff --git a/src/renderer/src/components/terminal-pane/remote-park-reveal-unverifiable-retry.test.ts b/src/renderer/src/components/terminal-pane/remote-park-reveal-unverifiable-retry.test.ts
new file mode 100644
index 00000000000..60e7079ec94
--- /dev/null
+++ b/src/renderer/src/components/terminal-pane/remote-park-reveal-unverifiable-retry.test.ts
@@ -0,0 +1,279 @@
+import type * as React from 'react'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { TERMINAL_PAIRED_PARKING_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version'
+import { createDeferred, flushAsyncTicks } from './pty-connection-test-async'
+import {
+ LEAF_1,
+ createMockTransport,
+ createPane,
+ captureCallbackTerminalWrites,
+ createManager,
+ type MockPane,
+ type MockPaneManager,
+ type MockTransport
+} from './pty-connection-test-pane-fixtures'
+import { buildPaneConnectionDeps, type PaneConnectionDeps } from './pty-connection-test-deps'
+import { createInitialStoreState } from './pty-connection-test-store-fixtures'
+import type { StoreState } from './pty-connection-test-store-state'
+import {
+ installTerminalTestGlobals,
+ restoreTerminalTestGlobals
+} from './pty-connection-test-environment'
+
+/**
+ * End to end through connectPanePty: a parked remote-runtime pane is revealed,
+ * the host answers its snapshot probe with `unavailable: 'no-serializable-buffer'`
+ * ("not proof the pane is empty", per the host's own comment), and the pane must
+ * keep asking on the hidden-output restore loop's budget rather than paint blank
+ * once and go quiet. The request count and the loss banner are the oracle: with
+ * the reveal collapsing the answer to null, the count stays at one forever and
+ * the banner never appears.
+ */
+const REMOTE_PTY_ID = 'remote:env-1@@pty-1'
+const HOST_IMAGE_MARKER = 'HOST-IMAGE-AFTER-PARK'
+const BANNER_FRAGMENT = 'main recovery was unavailable'
+const STRUCTURAL_CLEAR = '\x1b[2J\x1b[3J'
+
+const {
+ resetAndRefreshAllTerminalWebglAtlases,
+ scheduleTerminalWebglAtlasRecovery,
+ scheduleRuntimeGraphSync,
+ shouldSeedCacheTimerOnInitialTitle,
+ toastInfo,
+ notifyCodexPaneBoundForStaleSweep
+} = vi.hoisted(() => ({
+ resetAndRefreshAllTerminalWebglAtlases: vi.fn(),
+ scheduleTerminalWebglAtlasRecovery: vi.fn(),
+ scheduleRuntimeGraphSync: vi.fn(),
+ shouldSeedCacheTimerOnInitialTitle: vi.fn(() => false),
+ toastInfo: vi.fn(),
+ notifyCodexPaneBoundForStaleSweep: vi.fn()
+}))
+
+let mockStoreState: StoreState
+let transportFactoryQueue: MockTransport[] = []
+let storeSubscribers: ((state: StoreState) => void)[] = []
+
+vi.mock('@/runtime/sync-runtime-graph', () => ({
+ scheduleRuntimeGraphSync
+}))
+
+vi.mock('@/lib/pane-manager/pane-manager-registry', async (importOriginal) => ({
+ ...(await importOriginal>()),
+ resetAndRefreshAllTerminalWebglAtlases
+}))
+
+vi.mock('./terminal-webgl-atlas-recovery', () => ({
+ scheduleTerminalWebglAtlasRecovery
+}))
+
+vi.mock('@/store', () => ({
+ useAppStore: {
+ getState: () => mockStoreState,
+ subscribe: (listener: (state: StoreState) => void) => {
+ storeSubscribers.push(listener)
+ return () => {
+ storeSubscribers = storeSubscribers.filter((candidate) => candidate !== listener)
+ }
+ }
+ }
+}))
+
+vi.mock('@/lib/agent-status', async (importOriginal) => {
+ const { buildAgentStatusModuleMock } = await import('./pty-connection-test-environment')
+ return buildAgentStatusModuleMock(await importOriginal>())
+})
+
+vi.mock('./cache-timer-seeding', () => ({
+ shouldSeedCacheTimerOnInitialTitle
+}))
+
+vi.mock('sonner', () => ({
+ toast: {
+ info: toastInfo
+ }
+}))
+
+vi.mock('@/lib/codex-stale-pane-sweep', () => ({
+ notifyCodexPaneBoundForStaleSweep
+}))
+
+vi.mock('react', async (importOriginal) => {
+ const actual = await importOriginal()
+ return {
+ ...actual,
+ useCallback: unknown>(fn: T): T => fn
+ }
+})
+
+function nextQueuedTransport(): MockTransport {
+ const nextTransport = transportFactoryQueue.shift()
+ if (!nextTransport) {
+ throw new Error('No mock transport queued')
+ }
+ return nextTransport
+}
+
+vi.mock('./pty-transport', () => ({
+ createIpcPtyTransport: vi.fn(() => nextQueuedTransport())
+}))
+
+vi.mock('./remote-runtime-pty-transport', () => ({
+ createRemoteRuntimePtyTransport: vi.fn(() => nextQueuedTransport())
+}))
+
+vi.mock('./pty-dispatcher', async (importOriginal) => {
+ const actual = await importOriginal>()
+ return {
+ ...actual,
+ getEagerPtyBufferHandle: vi.fn(() => undefined)
+ }
+})
+
+function createDeps(overrides: Record = {}) {
+ return buildPaneConnectionDeps(() => mockStoreState, overrides)
+}
+
+/** The host advertised paired parking while it was reachable, so the reveal reattaches its pty. */
+function pairedParkingHostStatus(): StoreState['runtimeStatusByEnvironmentId'] {
+ return new Map([
+ [
+ 'env-1',
+ { checkedAt: 1, status: { capabilities: [TERMINAL_PAIRED_PARKING_RUNTIME_CAPABILITY] } }
+ ]
+ ])
+}
+
+type ConnectMockPane = (
+ pane: MockPane,
+ manager: MockPaneManager,
+ deps: PaneConnectionDeps
+) => { dispose: () => void }
+
+async function revealParkedRemotePane(
+ serializeBufferOutcome: ReturnType
+): Promise<{ transport: MockTransport; writes: string[]; dispose: () => void }> {
+ const { connectPanePty } = await import('./pty-connection')
+ // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the shared mock pane, manager, and deps stand in for the real xterm-backed objects, exactly as every other connectPanePty suite drives them.
+ const connectMockPane = connectPanePty as unknown as ConnectMockPane
+ const transport = createMockTransport()
+ // The remote transport's park-reveal result: a bare reattach with no relay tail.
+ transport.connect.mockImplementation(async () => {
+ transport.getPtyId.mockReturnValue(REMOTE_PTY_ID)
+ return { id: REMOTE_PTY_ID, replay: '', isReattach: true }
+ })
+ transport.serializeBuffer = vi.fn()
+ transport.serializeBufferOutcome = serializeBufferOutcome
+ transportFactoryQueue.push(transport)
+ mockStoreState = {
+ ...mockStoreState,
+ tabsByWorktree: { 'wt-1': [{ id: 'tab-1', ptyId: REMOTE_PTY_ID }] },
+ ptyIdsByTabId: { 'tab-1': [REMOTE_PTY_ID] },
+ terminalLayoutsByTabId: {
+ 'tab-1': {
+ root: { type: 'leaf', leafId: LEAF_1 },
+ activeLeafId: LEAF_1,
+ expandedLeafId: null,
+ ptyIdsByLeafId: { [LEAF_1]: REMOTE_PTY_ID }
+ }
+ },
+ runtimeStatusByEnvironmentId: pairedParkingHostStatus()
+ }
+ const pane = createPane(1)
+ const { writes } = captureCallbackTerminalWrites(pane)
+ // Why the active pane: an inactive split defers its restore to the frame scheduler.
+ const binding = connectMockPane(
+ pane,
+ createManager(1, 1),
+ createDeps({
+ mountFollowsTerminalPark: true,
+ restoredLeafId: LEAF_1,
+ restoredPtyIdByLeafId: { [LEAF_1]: REMOTE_PTY_ID }
+ })
+ )
+ await flushAsyncTicks(30)
+ expect(transport.connect).toHaveBeenCalledWith(
+ expect.objectContaining({ sessionId: REMOTE_PTY_ID })
+ )
+ return { transport, writes, dispose: () => binding.dispose() }
+}
+
+function bannerCount(writes: string[]): number {
+ return writes.filter((data) => data.includes(BANNER_FRAGMENT)).length
+}
+
+describe('parked remote pane reveal with an unverifiable host snapshot', () => {
+ beforeEach(() => {
+ vi.resetModules()
+ vi.clearAllMocks()
+ transportFactoryQueue = []
+ storeSubscribers = []
+ mockStoreState = createInitialStoreState(() => mockStoreState)
+ installTerminalTestGlobals()
+ })
+
+ afterEach(async () => {
+ vi.useRealTimers()
+ await restoreTerminalTestGlobals()
+ })
+
+ it("keeps asking a host that answered 'no-serializable-buffer' and banners once the budget is spent", async () => {
+ const declined = {
+ availability: { kind: 'retry-worthy', cause: 'host-no-serializable-buffer' },
+ snapshot: null
+ }
+ // Why the deferred second answer: the loop arms its 2s re-ask timer when an
+ // answer lands, and that timer must be created under fake timers to advance.
+ const secondAnswer = createDeferred()
+ const serializeBufferOutcome = vi
+ .fn()
+ .mockResolvedValueOnce(declined)
+ .mockReturnValueOnce(secondAnswer.promise)
+ .mockResolvedValue(declined)
+ const reveal = await revealParkedRemotePane(serializeBufferOutcome)
+
+ // The reveal's own probe, plus the immediate re-ask it hands to the restore loop.
+ expect(serializeBufferOutcome).toHaveBeenCalledTimes(2)
+ expect(reveal.writes.join('')).not.toContain(STRUCTURAL_CLEAR)
+ expect(bannerCount(reveal.writes)).toBe(0)
+
+ vi.useFakeTimers()
+ secondAnswer.resolve(declined)
+ await flushAsyncTicks(20)
+ expect(serializeBufferOutcome).toHaveBeenCalledTimes(2)
+ // One shared budget: the reveal probe counts, so five more 2s cycles reach the seventh.
+ for (let expectedRequests = 3; expectedRequests <= 7; expectedRequests += 1) {
+ await vi.advanceTimersByTimeAsync(2_000)
+ await flushAsyncTicks(20)
+ expect(serializeBufferOutcome).toHaveBeenCalledTimes(expectedRequests)
+ expect(bannerCount(reveal.writes)).toBe(expectedRequests === 7 ? 1 : 0)
+ }
+ await vi.advanceTimersByTimeAsync(60_000)
+ await flushAsyncTicks(20)
+ expect(serializeBufferOutcome).toHaveBeenCalledTimes(7)
+ expect(bannerCount(reveal.writes)).toBe(1)
+ // At no point did the pane claim to be empty.
+ expect(reveal.writes.join('')).not.toContain(STRUCTURAL_CLEAR)
+ reveal.dispose()
+ })
+
+ it('paints the host image when the host answers with one, and asks nothing more', async () => {
+ const serializeBufferOutcome = vi.fn().mockResolvedValue({
+ availability: { kind: 'snapshot' },
+ snapshot: { data: `${HOST_IMAGE_MARKER}\r\n`, cols: 80, rows: 24, seq: 3, source: 'headless' }
+ })
+ const reveal = await revealParkedRemotePane(serializeBufferOutcome)
+
+ expect(serializeBufferOutcome).toHaveBeenCalledTimes(1)
+ const painted = reveal.writes.join('')
+ expect(painted).toContain(STRUCTURAL_CLEAR)
+ expect(painted).toContain(HOST_IMAGE_MARKER)
+
+ vi.useFakeTimers()
+ await vi.advanceTimersByTimeAsync(60_000)
+ await flushAsyncTicks(20)
+ expect(serializeBufferOutcome).toHaveBeenCalledTimes(1)
+ expect(bannerCount(reveal.writes)).toBe(0)
+ reveal.dispose()
+ })
+})
diff --git a/src/shared/terminal-snapshot-unavailability.ts b/src/shared/terminal-snapshot-unavailability.ts
index 6d3ac26774f..3f5f73962ff 100644
--- a/src/shared/terminal-snapshot-unavailability.ts
+++ b/src/shared/terminal-snapshot-unavailability.ts
@@ -4,8 +4,13 @@
* Sent as the additive `unavailable` field on the SnapshotStart frame. Hosts that predate
* this field omit it, so an absent value means "the host did not say" — never "nothing exists".
* Both current reasons are transient: the host could not answer *now*, not that the pane has
- * no retained output. A pane that genuinely has nothing still comes back as a real snapshot
- * whose `data` is empty, because the host successfully serialized and found it empty.
+ * no retained output.
+ *
+ * A real snapshot with empty `data` and no reason is NOT proof the pane is empty either:
+ * `serializeTerminalBufferFromAvailableState` returns the renderer serializer's un-hydrated
+ * shell (`data: ''`) when a parked desktop pane registered its serializer before its xterm
+ * mounted and no provider history exists. Nothing on this wire positively says "the host
+ * retains nothing"; readers must treat an imageless success as unverifiable, never as empty.
*/
export const TERMINAL_SNAPSHOT_UNAVAILABLE_REASONS = [
// The pending-output buffer overflowed twice while serializing, so the reply was truncated to nothing.
From 06a8ca5f69c79ca064d080eea5e30af8908ca666 Mon Sep 17 00:00:00 2001
From: Neil <4138956+nwparker@users.noreply.github.com>
Date: Thu, 17 Sep 2026 23:56:11 -0700
Subject: [PATCH 004/224] fix(runtime): keep a client-dirty mirrored file dirty
across a host republish (#21393)
The host publishes only its own store's isDirty and never learns about
client edits, so rebuilding a mirrored OpenFile from the snapshot cleared
the client's flag while editorDrafts still held the draft. The tab strip
then closed the tab with no unsaved-changes prompt and closeFile deleted
the draft; the external-change reload guards would reload over it too.
Keep the client's flag when the client's file is dirty and it holds a
draft; with no draft the host's flag still wins so a host-side save does
not strand the tab as dirty. A host-side save never clears a client draft.
Fixes #21392
---
.../web-session-tabs-sync-editor-tabs.test.ts | 105 ++++++++++++++
...ion-tabs-sync-mirrored-draft-close.test.ts | 133 ++++++++++++++++++
.../apply-preparation-browser.ts | 3 +-
.../runtime/web-session-tabs-sync/state.ts | 3 +
.../web-session-tabs-sync/tab-builders.ts | 11 +-
5 files changed, 252 insertions(+), 3 deletions(-)
create mode 100644 src/renderer/src/runtime/web-session-tabs-sync-mirrored-draft-close.test.ts
diff --git a/src/renderer/src/runtime/web-session-tabs-sync-editor-tabs.test.ts b/src/renderer/src/runtime/web-session-tabs-sync-editor-tabs.test.ts
index c978ac47e1b..0820a71164a 100644
--- a/src/renderer/src/runtime/web-session-tabs-sync-editor-tabs.test.ts
+++ b/src/renderer/src/runtime/web-session-tabs-sync-editor-tabs.test.ts
@@ -410,4 +410,109 @@ describe('applyWebSessionTabsSnapshot', () => {
expect(patch.activeTabType).toBeUndefined()
expect(patch.activeTabTypeByWorktree).toBeUndefined()
})
+
+ describe('client dirtiness across a host republish (#21392)', () => {
+ const notesPath = '/repo/NOTES.md'
+ const mirroredNotes = (isDirty: boolean): OpenFile => ({
+ id: notesPath,
+ filePath: notesPath,
+ relativePath: 'NOTES.md',
+ worktreeId: WT,
+ language: 'markdown',
+ isDirty,
+ runtimeEnvironmentId: ENV,
+ mode: 'edit',
+ mirroredFromRuntimeSession: true
+ })
+ const notesUnifiedTab: Tab = {
+ id: 'host-notes-unified',
+ entityId: notesPath,
+ groupId: 'host-group-1',
+ worktreeId: WT,
+ contentType: 'editor',
+ label: 'NOTES.md',
+ customLabel: null,
+ color: null,
+ sortOrder: 0,
+ createdAt: NOW - 10,
+ isPreview: false,
+ isPinned: false
+ }
+ // The host republishes the same tab with its own store's flag: not dirty.
+ const hostCleanSnapshot = () =>
+ makeSnapshot(
+ [
+ {
+ type: 'markdown',
+ id: 'host-notes-unified',
+ title: 'NOTES.md',
+ filePath: notesPath,
+ relativePath: 'NOTES.md',
+ language: 'markdown',
+ mode: 'edit',
+ isDirty: false,
+ isActive: true,
+ sourceFileId: notesPath,
+ sourceFilePath: notesPath,
+ sourceRelativePath: 'NOTES.md',
+ documentVersion: `file:${notesPath}`,
+ color: null,
+ isPinned: false
+ }
+ ],
+ { activeTabId: 'host-notes-unified', activeTabType: 'markdown' }
+ )
+
+ it('keeps a client-dirty mirrored file dirty when the host republishes isDirty: false', () => {
+ // Why: the host never learns about client edits, so its flag would otherwise erase the
+ // client's, and the tab strip would close the tab with no prompt while the draft lives.
+ const patch = applyWebSessionTabsSnapshot(
+ makeState({
+ openFiles: [mirroredNotes(true)],
+ editorDrafts: { [notesPath]: '# unsaved client edits' },
+ unifiedTabsByWorktree: { [WT]: [notesUnifiedTab] }
+ }),
+ hostCleanSnapshot(),
+ ENV,
+ NOW
+ )
+
+ // No open-file change means the dirty flag survived exactly as it was.
+ expect(patch.openFiles).toBeUndefined()
+ })
+
+ it('follows a host-side save when the client holds no draft', () => {
+ // Why: a dirty flag with no client draft came from an earlier host snapshot; keeping it
+ // would strand the tab as dirty after the host saved.
+ const patch = applyWebSessionTabsSnapshot(
+ makeState({
+ openFiles: [mirroredNotes(true)],
+ editorDrafts: {},
+ unifiedTabsByWorktree: { [WT]: [notesUnifiedTab] }
+ }),
+ hostCleanSnapshot(),
+ ENV,
+ NOW
+ )
+
+ expect(patch.openFiles).toMatchObject([{ id: notesPath, isDirty: false }])
+ })
+
+ it('does not invent dirtiness from a draft the client already reverted', () => {
+ // Why: a lingering draft with isDirty false means the user typed and undid; the tab is
+ // clean and must not start prompting on close.
+ const patch = applyWebSessionTabsSnapshot(
+ makeState({
+ openFiles: [mirroredNotes(false)],
+ editorDrafts: { [notesPath]: 'same as disk' },
+ unifiedTabsByWorktree: { [WT]: [notesUnifiedTab] }
+ }),
+ hostCleanSnapshot(),
+ ENV,
+ NOW
+ )
+
+ expect(patch.openFiles).toBeUndefined()
+ })
+ })
})
diff --git a/src/renderer/src/runtime/web-session-tabs-sync-mirrored-draft-close.test.ts b/src/renderer/src/runtime/web-session-tabs-sync-mirrored-draft-close.test.ts
new file mode 100644
index 00000000000..3091d9370cc
--- /dev/null
+++ b/src/renderer/src/runtime/web-session-tabs-sync-mirrored-draft-close.test.ts
@@ -0,0 +1,133 @@
+// @vitest-environment happy-dom
+
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import type { Tab } from '../../../shared/tab-types'
+import type { OpenFile } from '../store/slices/editor'
+
+const closeWebRuntimeSessionTabMock = vi.fn(async (_args: unknown) => 'applied' as const)
+
+vi.mock('./web-runtime-session', () => ({
+ closeWebRuntimeSessionTab: (args: unknown) => closeWebRuntimeSessionTabMock(args)
+}))
+
+import { useAppStore } from '../store'
+import { createWorkspaceTabCloseCommands } from '@/components/tab-group/workspace-tab-close-commands'
+import { ORCA_EDITOR_REQUEST_FILE_CLOSE_EVENT } from '@/components/editor/editor-autosave'
+import { applyWebSessionTabsSnapshot } from './web-session-tabs-sync'
+import {
+ ENV,
+ NOW,
+ WT,
+ makeSnapshot,
+ resetWebSessionTabsSyncTestState
+} from './web-session-tabs-sync-test-harness'
+
+const notesPath = '/repo/NOTES.md'
+const clientDraft = '# unsaved client edits'
+
+const notesUnifiedTab: Tab = {
+ id: 'host-notes-unified',
+ entityId: notesPath,
+ groupId: 'host-group-1',
+ worktreeId: WT,
+ contentType: 'editor',
+ label: 'NOTES.md',
+ customLabel: null,
+ color: null,
+ sortOrder: 0,
+ createdAt: NOW - 10,
+ isPreview: false,
+ isPinned: false
+}
+
+// A host-mirrored tab the user has edited on this client: dirty, with a draft recorded.
+const clientDirtyMirroredNotes: OpenFile = {
+ id: notesPath,
+ filePath: notesPath,
+ relativePath: 'NOTES.md',
+ worktreeId: WT,
+ language: 'markdown',
+ isDirty: true,
+ runtimeEnvironmentId: ENV,
+ mode: 'edit',
+ mirroredFromRuntimeSession: true
+}
+
+// The host republishes the same tab; its own store has no unsaved edits.
+function hostCleanRepublish() {
+ return makeSnapshot(
+ [
+ {
+ type: 'markdown',
+ id: notesUnifiedTab.id,
+ title: 'NOTES.md',
+ filePath: notesPath,
+ relativePath: 'NOTES.md',
+ language: 'markdown',
+ mode: 'edit',
+ isDirty: false,
+ isActive: true,
+ sourceFileId: notesPath,
+ sourceFilePath: notesPath,
+ sourceRelativePath: 'NOTES.md',
+ documentVersion: `file:${notesPath}`,
+ color: null,
+ isPinned: false
+ }
+ ],
+ { activeTabId: notesUnifiedTab.id, activeTabType: 'markdown' }
+ )
+}
+
+describe('tab-strip close of a client-dirty mirrored file after a host republish (#21392)', () => {
+ const initialState = useAppStore.getState()
+ const closeRequests: string[] = []
+ const onCloseRequest = (event: Event): void => {
+ if (event instanceof CustomEvent) {
+ closeRequests.push(String(event.detail?.fileId))
+ }
+ }
+
+ beforeEach(() => {
+ resetWebSessionTabsSyncTestState()
+ closeWebRuntimeSessionTabMock.mockClear()
+ closeRequests.length = 0
+ window.addEventListener(ORCA_EDITOR_REQUEST_FILE_CLOSE_EVENT, onCloseRequest)
+ useAppStore.setState({
+ ...initialState,
+ activeWorktreeId: WT,
+ openFiles: [clientDirtyMirroredNotes],
+ editorDrafts: { [notesPath]: clientDraft },
+ unifiedTabsByWorktree: { [WT]: [notesUnifiedTab] }
+ })
+ })
+
+ afterEach(() => {
+ window.removeEventListener(ORCA_EDITOR_REQUEST_FILE_CLOSE_EVENT, onCloseRequest)
+ useAppStore.setState(initialState, true)
+ })
+
+ it('routes the close to the unsaved-changes prompt instead of discarding the draft', () => {
+ // Why: this is the user-visible property. #21363 lost a draft on a transient error; this
+ // path loses one on an ordinary Cmd+W / tab X unless the client's dirty flag survives the
+ // host's republish, because the tab strip gates its prompt on that flag alone.
+ const patch = applyWebSessionTabsSnapshot(
+ useAppStore.getState(),
+ hostCleanRepublish(),
+ ENV,
+ NOW
+ )
+ useAppStore.setState(patch)
+
+ createWorkspaceTabCloseCommands({ worktreeId: WT, groupTabs: [notesUnifiedTab] }).closeItem(
+ notesUnifiedTab.id
+ )
+
+ // Prompted, not closed: the request went to the save/discard queue and nothing was lost.
+ expect(closeRequests).toEqual([notesPath])
+ const state = useAppStore.getState()
+ expect(state.openFiles.some((file) => file.id === notesPath)).toBe(true)
+ expect(state.editorDrafts[notesPath]).toBe(clientDraft)
+ expect(closeWebRuntimeSessionTabMock).not.toHaveBeenCalled()
+ })
+})
diff --git a/src/renderer/src/runtime/web-session-tabs-sync/apply-preparation-browser.ts b/src/renderer/src/runtime/web-session-tabs-sync/apply-preparation-browser.ts
index 6752cdcd8e1..4dcfd7ae44d 100644
--- a/src/renderer/src/runtime/web-session-tabs-sync/apply-preparation-browser.ts
+++ b/src/renderer/src/runtime/web-session-tabs-sync/apply-preparation-browser.ts
@@ -117,7 +117,8 @@ export function prepareWebSessionTabsSnapshotBrowser(
hostGroupIdByTabId,
targetGroupId,
mirroredTerminalTabEntries.length + mirroredBrowserTabs.length,
- now
+ now,
+ (fileId) => state.editorDrafts?.[fileId] !== undefined
)
const mirroredAgentTabs = buildMirroredAgentTabs(
snapshot,
diff --git a/src/renderer/src/runtime/web-session-tabs-sync/state.ts b/src/renderer/src/runtime/web-session-tabs-sync/state.ts
index f44d4a3d18c..8db00f5a238 100644
--- a/src/renderer/src/runtime/web-session-tabs-sync/state.ts
+++ b/src/renderer/src/runtime/web-session-tabs-sync/state.ts
@@ -202,6 +202,9 @@ export type WebSessionTabsSyncState = Pick<
| 'activityClearedAtByPaneKey'
| 'agentLaunchConfigByPaneKey'
| 'automaticAgentResumeClaimsByTabId'
+ // Why: a client draft is the evidence that a mirrored file's dirty flag is the client's
+ // own and must survive a host republish (#21392); absent here, the host flag wins.
+ | 'editorDrafts'
| 'migrationUnsupportedByPtyId'
| 'manuallyUnreadTurnsByPaneKey'
| 'paneForegroundAgentByPaneKey'
diff --git a/src/renderer/src/runtime/web-session-tabs-sync/tab-builders.ts b/src/renderer/src/runtime/web-session-tabs-sync/tab-builders.ts
index 94234af1276..bc1dc6d83b1 100644
--- a/src/renderer/src/runtime/web-session-tabs-sync/tab-builders.ts
+++ b/src/renderer/src/runtime/web-session-tabs-sync/tab-builders.ts
@@ -103,7 +103,8 @@ export function buildMirroredEditorTabs(
hostGroupIdByTabId: ReadonlyMap,
fallbackGroupId: string,
sortOffset: number,
- now: number
+ now: number,
+ hasLocalDraft: (fileId: string) => boolean
): MirroredEditorTab[] {
return snapshot.tabs.filter(isReadyEditorTab).map((tab, index) => {
const fileId = localEditorFileId(tab)
@@ -111,6 +112,12 @@ export function buildMirroredEditorTabs(
const existingUnifiedTab = existingTabIndex.getEditorUnifiedTab(fileId, tab.id)
const sourceFileId = editorSourceFileId(tab)
const groupId = hostGroupIdByTabId.get(tab.id) ?? fallbackGroupId
+ // Why: the host publishes only its own store's flag and never learns of client edits, so
+ // taking it verbatim would clear a client-dirty tab and the tab strip would then close it
+ // with no unsaved-changes prompt while the draft still exists (#21392). A local draft is
+ // the evidence the flag is the client's own; a dirty flag with no draft came from an
+ // earlier snapshot and must keep following the host, e.g. after a host-side save.
+ const keepsClientDirty = existingFile?.isDirty === true && hasLocalDraft(fileId)
const file: OpenFile = {
...existingFile,
id: fileId,
@@ -118,7 +125,7 @@ export function buildMirroredEditorTabs(
relativePath: tab.relativePath,
worktreeId: snapshot.worktree,
language: tab.language,
- isDirty: tab.isDirty,
+ isDirty: tab.isDirty || keepsClientDirty,
runtimeEnvironmentId: environmentId,
mode: tab.type === 'markdown' ? tab.mode : 'edit',
markdownPreviewSourceFileId: sourceFileId,
From 2bdf281433f4092cb008172ebe344db486e77dd3 Mon Sep 17 00:00:00 2001
From: OrcaWin
Date: Thu, 17 Sep 2026 23:59:42 -0700
Subject: [PATCH 005/224] fix: avoid retaining foreign SSH file frames before
metadata (#21167)
* fix: avoid retaining foreign SSH file frames before metadata
* test(ssh): exercise empty metadata through the streaming mux fixture
* fix(ssh): fail the file read when beforeResolve never runs
Moving the metadata install from .then() to beforeResolve moved it from a
mandatory callback to an optional one, and handleResponse clears the request
timer before beforeResolve runs. That left "response fulfilled, metadata never
installed" with no deadline: the read never settled, holding its notification
and dispose closures until mux disposal. Before this PR the same state failed
after the 60s inactivity deadline.
Unreachable with the concrete mux, which calls resolve on the line after
beforeResolve, but the hook is optional in the type and nothing enforces the
pairing. The guard is a no-op on every real path: empty, missing streamId,
cap-exceeded and alloc-failure all settle first, and the success path sets
metadataReady.
Found during review of #21167; raised at
https://github.com/stablyai/orca/pull/21167#issuecomment-5726058832
---------
Co-authored-by: m4air
Co-authored-by: Claude
---
.../ssh-file-metadata-retention/README.md | 79 ++++++
.../before.config.mjs | 20 ++
.../ssh-file-metadata-retention/fix.patch | 138 +++++++++
.../main-before-electron-results.json | 140 +++++++++
.../main-before-node-results.json | 140 +++++++++
.../main-context.patch | 18 ++
.../main-fixed-electron-results.json | 140 +++++++++
.../main-fixed-node-results.json | 140 +++++++++
.../relay-fixture.mjs | 226 +++++++++++++++
.../scenario.test.mjs | 267 ++++++++++++++++++
.../source-versions.json | 225 +++++++++++++++
.../ssh-file-metadata-retention/sources.cjs | 84 ++++++
.../validation.json | 264 +++++++++++++++++
.../vitest.config.mjs | 31 ++
.../worktree-before-electron-results.json | 140 +++++++++
.../worktree-before-node-results.json | 140 +++++++++
.../worktree-fixed-electron-results.json | 140 +++++++++
.../worktree-fixed-node-results.json | 140 +++++++++
.../ssh-filesystem-provider-stream.test.ts | 63 +++--
.../providers/ssh-filesystem-provider.test.ts | 8 -
src/main/ssh/ssh-filesystem-stream-reader.ts | 125 ++++----
.../ssh-filesystem-stream-retention.test.ts | 221 +++++++++++++++
22 files changed, 2793 insertions(+), 96 deletions(-)
create mode 100644 docs/audits/ssh-file-metadata-retention/README.md
create mode 100644 docs/audits/ssh-file-metadata-retention/before.config.mjs
create mode 100644 docs/audits/ssh-file-metadata-retention/fix.patch
create mode 100644 docs/audits/ssh-file-metadata-retention/main-before-electron-results.json
create mode 100644 docs/audits/ssh-file-metadata-retention/main-before-node-results.json
create mode 100644 docs/audits/ssh-file-metadata-retention/main-context.patch
create mode 100644 docs/audits/ssh-file-metadata-retention/main-fixed-electron-results.json
create mode 100644 docs/audits/ssh-file-metadata-retention/main-fixed-node-results.json
create mode 100644 docs/audits/ssh-file-metadata-retention/relay-fixture.mjs
create mode 100644 docs/audits/ssh-file-metadata-retention/scenario.test.mjs
create mode 100644 docs/audits/ssh-file-metadata-retention/source-versions.json
create mode 100644 docs/audits/ssh-file-metadata-retention/sources.cjs
create mode 100644 docs/audits/ssh-file-metadata-retention/validation.json
create mode 100644 docs/audits/ssh-file-metadata-retention/vitest.config.mjs
create mode 100644 docs/audits/ssh-file-metadata-retention/worktree-before-electron-results.json
create mode 100644 docs/audits/ssh-file-metadata-retention/worktree-before-node-results.json
create mode 100644 docs/audits/ssh-file-metadata-retention/worktree-fixed-electron-results.json
create mode 100644 docs/audits/ssh-file-metadata-retention/worktree-fixed-node-results.json
create mode 100644 src/main/ssh/ssh-filesystem-stream-retention.test.ts
diff --git a/docs/audits/ssh-file-metadata-retention/README.md b/docs/audits/ssh-file-metadata-retention/README.md
new file mode 100644
index 00000000000..592e069e66a
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/README.md
@@ -0,0 +1,79 @@
+# SSH file readers retain unrelated streams before metadata
+
+The file reader queued every file-stream notification while awaiting its own metadata. A delayed read therefore retained payloads from other reads that had already completed. The fix installs metadata through the mux's existing synchronous `beforeResolve` callback and ignores notifications until the read has a stream identity. Listeners still register before the request, and own frames adjacent to the response are processed correctly.
+
+This is conditional transient retention during a pending metadata request. The proof establishes a source mechanism and its correction; it does not identify an affected host, measure a natural native I/O stall, or attribute #19831 to SSH.
+
+## Actual producer and ownership chain
+
+1. Desktop `filesystem-read-handlers.ts` calls the selected `SshFilesystemProvider.readFile` for `fs:readFile`; this route does not serialize reads. Runtime previews also use the provider with caller-specific caps. An AI-vault scan has an eight-operation gate, which still permits repeated completions in other slots while one operation waits.
+2. `readFileViaStream` subscribes to chunk/end/error notifications before sending `fs.readFileStream`. Previously it appended all such notifications until the metadata promise's `.then` callback ran, even when they belonged to other streams.
+3. Relay `FilesystemHandler` forwards the path and request context to `readRelayFileStreamMetadata`. The producer awaits `stat` before acquiring a stream slot. For unknown MIME types, its prefix probe also precedes registration. After opening/registering the file, it schedules its pump with `setImmediate` and returns metadata.
+4. `RelayDispatcher` publishes the small metadata response in its control lane; the writer prioritizes control before bulk. The saturated-writer control verifies metadata precedes chunks after drain.
+5. The mux runs `beforeResolve` synchronously during response dispatch, before resolving the request promise. Its decoder can dispatch adjacent notifications before any `.then` callback runs. The fix installs the stream ID and buffer at that synchronous boundary, eliminating the need to save foreign frames.
+
+The producer, mux, dispatcher, decoder, writer, file I/O, and stream registry are actual source in the portable proof. The fixture connects both ends through an in-memory duplex transport, uses real temporary files, and supplies the filesystem handler's small path/client/pacing adapter. It does not launch an SSH process, Electron window, native PTY, or network server.
+
+## Bounds and payload sharing
+
+- The relay allows **16 concurrent registered streams**, with a **four-chunk ACK window** per paced stream. Chunks are 256 KiB. A metadata operation waiting before registration occupies no stream slot. Other transfers can complete and reuse slots repeatedly.
+- Reader size caps are **10 MiB text / 50 MiB binary**, optionally tightened by the caller. They apply after that reader's metadata and do not charge foreign history accumulated before it.
+- The metadata request has a **30,000 ms deadline**. After metadata, the reader uses a **60,000 ms inactivity deadline**, reset by its own chunks and integrated with suspend/resume. Connection disposal also releases subscriptions. These timers and transport throughput bound ordinary retention duration; suspension/event-loop stalls can delay timers. No indefinite native stall was established.
+- The decoder limits each turn to 64 frames / 4 ms and bounds retained framing bytes. Those limits do not bound arrays owned by subscribers after frames are parsed.
+- The mux passes the **same parsed params object** to all subscribers. Four waiting readers add four wrappers per frame, but share its payload. The result is not four copied payloads or quadratic payload-byte growth.
+
+## Comparative results
+
+All **80 portable cases pass**: ten controls × baseline/fixed × audited-worktree/named-main graph × Node/Electron. Node is 26.6; Electron 43.7 uses Node 24.21. Reports record exact versions, all 59 selected source hashes, the observed reader hash, and proof artifact hashes.
+
+| Observation | Before | Fixed |
+| ----------------------------------------------------------------------- | --------------------------------: | -------: |
+| Four waiting readers; 16 completed 2 MiB transfers | 576 wrappers | 0 |
+| Unique shared params objects retained | 144 | 0 |
+| Logical base64 bytes, counted once per unique params object | 44,739,584 | 0 |
+| Peak registered streams in that workload | 1 | 1 |
+| ACKs processed | 128 | 128 |
+| Reader history after metadata completion, handled disposal, or deadline | released | released |
+| Actual pump with ACK delivery withheld | stops after 4 chunks | same |
+| Sixteen active streams, then a seventeenth request | refused; later admission succeeds | same |
+| Saturated writer, then drain | metadata before own chunks | same |
+| Response plus own chunk/end in one decoder turn | correct result | same |
+| Unpaced producer / ordinary completion | correct result | same |
+| Canonical LF vs synthetic CRLF source/patch reads | 66 reads agree | same |
+
+The primary portable workload deliberately gates four request handlers **immediately before invoking the actual relay file producer**. The request remains pending while other real transfers complete. This controlled adapter delay is distinct from a native `stat` already in progress; production source establishes that awaiting `stat` occurs at the same pre-registration phase. It does not measure how often or how long native metadata I/O delays occur on a user's machine.
+
+The baseline observation adds only `WeakRef(pending)` to expose the closed-over array. It does not add a strong owner. Shared params identity is checked across all waiting readers. Heap deltas support the object/byte accounting but are neither exact object sizes nor RSS. After disposal, the test consumes lazy `Error.stack` and retains only error codes: externally retained unmaterialized V8 error stacks can themselves retain callback context, so the release claim is after normal error handling.
+
+Every successful transfer checks payload length and SHA-256. Stream capacity, pacing, cancellation, and output assertions run identically for both variants. The controlled producer ignores ACK pacing in one case; this tests existing unpaced behavior, not every historical relay binary.
+
+## Source graphs and publication
+
+`source-versions.json` records the full 59-module import graph and five additional actual caller hashes. Both graphs select the same file-reader source variant. The audited worktree and named main `291b4ddd6f1c1af480169885e0fda7f9c78ff053` otherwise differ only in the previously published SSH writer consumed-prefix correction.
+
+`main-context.patch` reconstructs that single context difference in memory. The loader accepts either of its two exact recorded checkout hashes and reconstructs the selected graph. This lets the same artifact run on this worktree or the independent main publication without depending on another memory PR. `fix.patch` is the separate, single-product-file change under review. Every other graph/caller source is hash-fenced; unknown production imports fail. Dedicated portable tests omit unrelated global Vitest setup files.
+
+The current reader baseline and relay file producer are also byte-identical to `v1.4.198` (`e0826956fcfc532f5a1e55b5e081f2e57e553c43`). That named version has synchronous `beforeResolve` and control-first writer scheduling. Its comparison is limited to the recorded paths; the proof does not execute a whole historical application.
+
+No wire field, opcode, host execution verdict, stream cap, timeout, fallback, or native process lifetime changes. Existing MethodNotFound fallback and malformed-metadata / tighter-cap / empty-image / adjacent-error handling are covered through the actual mux by the permanent regression suite.
+
+## Reproduce
+
+Choose either graph (`worktree` or `main`) and variant (`before` or `fixed`):
+
+```sh
+ORCA_BACKGROUND_LAUNCH=1 ORCA_SSH_READER_GRAPH=main ORCA_SSH_READER_VARIANT=fixed pnpm exec vitest run --config docs/audits/ssh-file-metadata-retention/vitest.config.mjs
+```
+
+For Electron, invoke the installed Electron binary with `ELECTRON_RUN_AS_NODE=1` and `ORCA_BACKGROUND_LAUNCH=1`, passing `node_modules/vitest/vitest.mjs` and the same arguments. Reports are separate for every graph/variant/runtime. Set `ORCA_SSH_READER_OUTPUT` to an alternative file path to preserve captured reports.
+
+Permanent tests and the intentional baseline failure:
+
+```sh
+ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-filesystem-stream-retention.test.ts src/main/providers/ssh-filesystem-provider-stream.test.ts src/main/providers/ssh-filesystem-provider.test.ts src/main/ssh/ssh-channel-multiplexer.test.ts src/relay/fs-handler-stream.test.ts
+ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config docs/audits/ssh-file-metadata-retention/before.config.mjs src/main/ssh/ssh-filesystem-stream-retention.test.ts src/main/providers/ssh-filesystem-provider-stream.test.ts
+```
+
+The baseline keeps all 64 observed foreign frame objects while metadata remains pending, causing exactly the new lifetime assertion to fail; the other 22 tests pass. The initial four-suite run passed 70 tests. Detailed quality/typecheck results are in `validation.json`. Full-file casting diagnostics are the same 15 inherited assertions in the original reader and provider test, verified by exact diagnostic/source-span comparison; the changed-code gate reports no new findings. No lint rule was suppressed and no unrelated wire validation behavior was changed to satisfy that baseline cleanup.
+
+The expanded five-suite run passes **124 tests**, including the general provider suite. The empty-file control uses the existing streaming fixture, which invokes the mux's `beforeResolve` callback before resolving metadata, and verifies all stream listeners are released. The older generic fixture omitted that callback and reproduced the CI timeout; actual-mux empty metadata controls already passed. This correction changes test setup only.
diff --git a/docs/audits/ssh-file-metadata-retention/before.config.mjs b/docs/audits/ssh-file-metadata-retention/before.config.mjs
new file mode 100644
index 00000000000..0f4b29b2e14
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/before.config.mjs
@@ -0,0 +1,20 @@
+import { resolve } from 'node:path'
+import { createRequire } from 'node:module'
+import base from '../../../config/vitest.config.ts'
+const { loadSources, versions } = createRequire(import.meta.url)('./sources.cjs')
+const loaded = loadSources({ variant: 'before' })
+const target = resolve(loaded.root, versions.sourcePath)
+export default {
+ ...base,
+ plugins: [
+ {
+ name: 'ssh-file-metadata-baseline',
+ enforce: 'pre',
+ transform(_source, id) {
+ return resolve(id.split('?')[0]) === target
+ ? { code: loaded.sources.get(target), map: null }
+ : null
+ }
+ }
+ ]
+}
diff --git a/docs/audits/ssh-file-metadata-retention/fix.patch b/docs/audits/ssh-file-metadata-retention/fix.patch
new file mode 100644
index 00000000000..7ffe13335fe
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/fix.patch
@@ -0,0 +1,138 @@
+--- a/src/main/ssh/ssh-filesystem-stream-reader.ts
++++ b/src/main/ssh/ssh-filesystem-stream-reader.ts
+@@ -77,7 +77 @@
+- // Why: chunk/end/error frames may arrive in the same dispatch tick as the
+- // metadata response. Queue them until streamIdRef is set, then drain.
+- type PendingFrame =
+- | { kind: 'chunk'; params: Record }
+- | { kind: 'end'; params: Record }
+- | { kind: 'error'; params: Record }
+- const pending: PendingFrame[] = []
++ // Install metadata during response dispatch, before adjacent stream frames.
+@@ -232,13 +225,0 @@
+- const drainPending = (): void => {
+- while (!settled && pending.length > 0) {
+- const frame = pending.shift()!
+- if (frame.kind === 'chunk') {
+- handleChunk(frame.params)
+- } else if (frame.kind === 'end') {
+- handleEnd(frame.params)
+- } else {
+- handleStreamError(frame.params)
+- }
+- }
+- }
+-
+@@ -248 +228,0 @@
+- pending.push({ kind: 'chunk', params })
+@@ -257 +236,0 @@
+- pending.push({ kind: 'end', params })
+@@ -266 +244,0 @@
+- pending.push({ kind: 'error', params })
+@@ -287,51 +265,55 @@
+- .request('fs.readFileStream', { filePath, flowControl: 'ack' })
+- .then((rawMetadata) => {
+- if (settled) {
+- return
+- }
+- const metadata = rawMetadata as StreamMetadataResponse
+- isBinary = metadata.isBinary
+- isImage = metadata.isImage
+- mimeType = metadata.mimeType
+- resultEncoding = metadata.resultEncoding ?? RESULT_ENCODING_BASE64
+-
+- if (metadata.empty) {
+- succeed({
+- content: '',
+- isBinary: metadata.isBinary,
+- ...(metadata.isImage !== undefined ? { isImage: metadata.isImage } : {}),
+- ...(metadata.mimeType !== undefined ? { mimeType: metadata.mimeType } : {})
+- })
+- return
+- }
+-
+- if (typeof metadata.streamId !== 'number') {
+- fail(new StreamProtocolError('Metadata missing streamId for non-empty stream'))
+- return
+- }
+-
+- const cap = sshFileStreamReadCap(metadata.isBinary, limits)
+- if (metadata.totalSize < 0 || metadata.totalSize > cap) {
+- streamIdRef.current = metadata.streamId
+- fail(
+- new FileReadCapExceededError(
+- `Reported totalSize ${metadata.totalSize} exceeds client cap ${cap}`
+- )
+- )
+- return
+- }
+-
+- totalSize = metadata.totalSize
+- totalChunks = totalSize === 0 ? 0 : Math.ceil(totalSize / STREAM_CHUNK_SIZE)
+- try {
+- buffer = Buffer.alloc(totalSize)
+- } catch (err) {
+- streamIdRef.current = metadata.streamId
+- fail(new Error(`Failed to allocate ${totalSize} bytes: ${(err as Error).message}`))
+- return
+- }
+- streamIdRef.current = metadata.streamId
+- metadataReady = true
+- inactivity.reset()
+- drainPending()
+- })
++ .request(
++ 'fs.readFileStream',
++ { filePath, flowControl: 'ack' },
++ {
++ beforeResolve: (rawMetadata) => {
++ if (settled) {
++ return
++ }
++ const metadata = rawMetadata as StreamMetadataResponse
++ isBinary = metadata.isBinary
++ isImage = metadata.isImage
++ mimeType = metadata.mimeType
++ resultEncoding = metadata.resultEncoding ?? RESULT_ENCODING_BASE64
++
++ if (metadata.empty) {
++ succeed({
++ content: '',
++ isBinary: metadata.isBinary,
++ ...(metadata.isImage !== undefined ? { isImage: metadata.isImage } : {}),
++ ...(metadata.mimeType !== undefined ? { mimeType: metadata.mimeType } : {})
++ })
++ return
++ }
++
++ if (typeof metadata.streamId !== 'number') {
++ fail(new StreamProtocolError('Metadata missing streamId for non-empty stream'))
++ return
++ }
++
++ const cap = sshFileStreamReadCap(metadata.isBinary, limits)
++ if (metadata.totalSize < 0 || metadata.totalSize > cap) {
++ streamIdRef.current = metadata.streamId
++ fail(
++ new FileReadCapExceededError(
++ `Reported totalSize ${metadata.totalSize} exceeds client cap ${cap}`
++ )
++ )
++ return
++ }
++
++ totalSize = metadata.totalSize
++ totalChunks = totalSize === 0 ? 0 : Math.ceil(totalSize / STREAM_CHUNK_SIZE)
++ try {
++ buffer = Buffer.alloc(totalSize)
++ } catch (err) {
++ streamIdRef.current = metadata.streamId
++ fail(new Error(`Failed to allocate ${totalSize} bytes: ${(err as Error).message}`))
++ return
++ }
++ streamIdRef.current = metadata.streamId
++ metadataReady = true
++ inactivity.reset()
++ }
++ }
++ )
diff --git a/docs/audits/ssh-file-metadata-retention/main-before-electron-results.json b/docs/audits/ssh-file-metadata-retention/main-before-electron-results.json
new file mode 100644
index 00000000000..3bdfbee7446
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/main-before-electron-results.json
@@ -0,0 +1,140 @@
+{
+ "variant": "before",
+ "graph": "main",
+ "runtime": {
+ "node": "24.21.0",
+ "electron": "43.7.0"
+ },
+ "sources": {
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "b8586de1412df98428939a0a4870c5f8ccab22f506a188b2eb1c7a38c317b1ef",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "3e5fe7a1e3537505baf42869449193fc0448339d851254a49527ec2a1c7cbb50",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "observedReaderSha256": "7a5c9c14faf63197765fc5a2900e1d3488f94aaab6757425b7ef87597479e963",
+ "controls": [
+ {
+ "name": "held-metadata-foreign-history",
+ "readers": 4,
+ "entries": [144, 144, 144, 144],
+ "wrappers": 576,
+ "uniqueParams": 144,
+ "logicalBase64BytesByUniqueParams": 44739584,
+ "sharedAcrossReaders": true,
+ "decodedTransferBytes": 33554432,
+ "peakRegisteredStreams": 1,
+ "maxConcurrentStreams": 16,
+ "ackWindow": 4,
+ "ackCount": 128,
+ "observedHeapDelta": 45298640,
+ "released": true
+ },
+ {
+ "name": "ordinary-completion",
+ "passed": true
+ },
+ {
+ "name": "transport-disposal",
+ "passed": true
+ },
+ {
+ "name": "metadata-request-deadline",
+ "milliseconds": 30000,
+ "relayContextAborted": true,
+ "released": true
+ },
+ {
+ "name": "unpaced-relay",
+ "passed": true
+ },
+ {
+ "name": "real-pump-credit-window",
+ "chunksBeforeAck": 4,
+ "totalChunks": 6
+ },
+ {
+ "name": "actual-stream-capacity",
+ "slots": 16,
+ "rejectedSeventeenth": true,
+ "admittedAfterCompletion": true
+ },
+ {
+ "name": "saturated-writer-metadata-order",
+ "wireOrder": ["probe.prime", "response", "fs.streamChunk", "fs.streamChunk", "fs.streamEnd"]
+ },
+ {
+ "name": "same-turn-response-and-own-frames",
+ "passed": true
+ },
+ {
+ "name": "canonical-crlf-source-control",
+ "reads": 66,
+ "passed": true
+ }
+ ],
+ "artifactHashes": {
+ "sources.cjs": "790ef573e61fbb7f68741d1e1cfb0e4b4c79a2dde4292e7ec9dc8dcf1d94940f",
+ "relay-fixture.mjs": "9856e17d83b812fb6b6717cf8207ccc808165c517df8d5c76bc020e0e6f51079",
+ "scenario.test.mjs": "7a619c631403d0ab03610171fc6109a9b52cde2d23b9d022354c3d6bb1b154af",
+ "vitest.config.mjs": "4ef63c6eba6d8e443f18f787bceb0b1f40b90ee750d63a3b27239ed05bf5d849",
+ "before.config.mjs": "a0a8ec50388d194d60cdf7019bba18fffb2c4691404924c3675757d3b3984962",
+ "fix.patch": "9681d47063d4b76bc4f9567eacf5dddb3ec221b715ce0bedddfcb493e0558fc6",
+ "main-context.patch": "4ef0bf173e6575a548b1d217248432fedbcfd68bcb350980e73987df3aba81e9",
+ "source-versions.json": "7df5afb4523280364b1eecaf465131ac94822fbb868dc4aaddb42586dff9f21d"
+ }
+}
diff --git a/docs/audits/ssh-file-metadata-retention/main-before-node-results.json b/docs/audits/ssh-file-metadata-retention/main-before-node-results.json
new file mode 100644
index 00000000000..cdf0128daef
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/main-before-node-results.json
@@ -0,0 +1,140 @@
+{
+ "variant": "before",
+ "graph": "main",
+ "runtime": {
+ "node": "26.6.0",
+ "electron": null
+ },
+ "sources": {
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "b8586de1412df98428939a0a4870c5f8ccab22f506a188b2eb1c7a38c317b1ef",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "3e5fe7a1e3537505baf42869449193fc0448339d851254a49527ec2a1c7cbb50",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "observedReaderSha256": "7a5c9c14faf63197765fc5a2900e1d3488f94aaab6757425b7ef87597479e963",
+ "controls": [
+ {
+ "name": "held-metadata-foreign-history",
+ "readers": 4,
+ "entries": [144, 144, 144, 144],
+ "wrappers": 576,
+ "uniqueParams": 144,
+ "logicalBase64BytesByUniqueParams": 44739584,
+ "sharedAcrossReaders": true,
+ "decodedTransferBytes": 33554432,
+ "peakRegisteredStreams": 1,
+ "maxConcurrentStreams": 16,
+ "ackWindow": 4,
+ "ackCount": 128,
+ "observedHeapDelta": 45477336,
+ "released": true
+ },
+ {
+ "name": "ordinary-completion",
+ "passed": true
+ },
+ {
+ "name": "transport-disposal",
+ "passed": true
+ },
+ {
+ "name": "metadata-request-deadline",
+ "milliseconds": 30000,
+ "relayContextAborted": true,
+ "released": true
+ },
+ {
+ "name": "unpaced-relay",
+ "passed": true
+ },
+ {
+ "name": "real-pump-credit-window",
+ "chunksBeforeAck": 4,
+ "totalChunks": 6
+ },
+ {
+ "name": "actual-stream-capacity",
+ "slots": 16,
+ "rejectedSeventeenth": true,
+ "admittedAfterCompletion": true
+ },
+ {
+ "name": "saturated-writer-metadata-order",
+ "wireOrder": ["probe.prime", "response", "fs.streamChunk", "fs.streamChunk", "fs.streamEnd"]
+ },
+ {
+ "name": "same-turn-response-and-own-frames",
+ "passed": true
+ },
+ {
+ "name": "canonical-crlf-source-control",
+ "reads": 66,
+ "passed": true
+ }
+ ],
+ "artifactHashes": {
+ "sources.cjs": "790ef573e61fbb7f68741d1e1cfb0e4b4c79a2dde4292e7ec9dc8dcf1d94940f",
+ "relay-fixture.mjs": "9856e17d83b812fb6b6717cf8207ccc808165c517df8d5c76bc020e0e6f51079",
+ "scenario.test.mjs": "7a619c631403d0ab03610171fc6109a9b52cde2d23b9d022354c3d6bb1b154af",
+ "vitest.config.mjs": "4ef63c6eba6d8e443f18f787bceb0b1f40b90ee750d63a3b27239ed05bf5d849",
+ "before.config.mjs": "a0a8ec50388d194d60cdf7019bba18fffb2c4691404924c3675757d3b3984962",
+ "fix.patch": "9681d47063d4b76bc4f9567eacf5dddb3ec221b715ce0bedddfcb493e0558fc6",
+ "main-context.patch": "4ef0bf173e6575a548b1d217248432fedbcfd68bcb350980e73987df3aba81e9",
+ "source-versions.json": "7df5afb4523280364b1eecaf465131ac94822fbb868dc4aaddb42586dff9f21d"
+ }
+}
diff --git a/docs/audits/ssh-file-metadata-retention/main-context.patch b/docs/audits/ssh-file-metadata-retention/main-context.patch
new file mode 100644
index 00000000000..e1093f07364
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/main-context.patch
@@ -0,0 +1,18 @@
+--- a/src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts
++++ b/src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts
+@@ -6 +6 @@
+- entries: (T | undefined)[]
++ entries: T[]
+@@ -23 +22,0 @@
+- queue.entries[queue.head] = undefined
+@@ -25,5 +24,2 @@
+- if (
+- queue.head === queue.entries.length ||
+- (queue.head >= 1024 && queue.head * 2 >= queue.entries.length)
+- ) {
+- queue.entries = queue.entries.slice(queue.head)
++ if (queue.head === queue.entries.length) {
++ queue.entries.length = 0
+@@ -36 +32 @@
+- const entries = queue.entries.slice(queue.head).filter((entry): entry is T => entry !== undefined)
++ const entries = queue.entries.slice(queue.head)
diff --git a/docs/audits/ssh-file-metadata-retention/main-fixed-electron-results.json b/docs/audits/ssh-file-metadata-retention/main-fixed-electron-results.json
new file mode 100644
index 00000000000..1c9c0933590
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/main-fixed-electron-results.json
@@ -0,0 +1,140 @@
+{
+ "variant": "fixed",
+ "graph": "main",
+ "runtime": {
+ "node": "24.21.0",
+ "electron": "43.7.0"
+ },
+ "sources": {
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "3e5fe7a1e3537505baf42869449193fc0448339d851254a49527ec2a1c7cbb50",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "observedReaderSha256": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "controls": [
+ {
+ "name": "held-metadata-foreign-history",
+ "readers": 4,
+ "entries": [0, 0, 0, 0],
+ "wrappers": 0,
+ "uniqueParams": 0,
+ "logicalBase64BytesByUniqueParams": 0,
+ "sharedAcrossReaders": false,
+ "decodedTransferBytes": 33554432,
+ "peakRegisteredStreams": 1,
+ "maxConcurrentStreams": 16,
+ "ackWindow": 4,
+ "ackCount": 128,
+ "observedHeapDelta": 513692,
+ "released": true
+ },
+ {
+ "name": "ordinary-completion",
+ "passed": true
+ },
+ {
+ "name": "transport-disposal",
+ "passed": true
+ },
+ {
+ "name": "metadata-request-deadline",
+ "milliseconds": 30000,
+ "relayContextAborted": true,
+ "released": true
+ },
+ {
+ "name": "unpaced-relay",
+ "passed": true
+ },
+ {
+ "name": "real-pump-credit-window",
+ "chunksBeforeAck": 4,
+ "totalChunks": 6
+ },
+ {
+ "name": "actual-stream-capacity",
+ "slots": 16,
+ "rejectedSeventeenth": true,
+ "admittedAfterCompletion": true
+ },
+ {
+ "name": "saturated-writer-metadata-order",
+ "wireOrder": ["probe.prime", "response", "fs.streamChunk", "fs.streamChunk", "fs.streamEnd"]
+ },
+ {
+ "name": "same-turn-response-and-own-frames",
+ "passed": true
+ },
+ {
+ "name": "canonical-crlf-source-control",
+ "reads": 66,
+ "passed": true
+ }
+ ],
+ "artifactHashes": {
+ "sources.cjs": "790ef573e61fbb7f68741d1e1cfb0e4b4c79a2dde4292e7ec9dc8dcf1d94940f",
+ "relay-fixture.mjs": "9856e17d83b812fb6b6717cf8207ccc808165c517df8d5c76bc020e0e6f51079",
+ "scenario.test.mjs": "7a619c631403d0ab03610171fc6109a9b52cde2d23b9d022354c3d6bb1b154af",
+ "vitest.config.mjs": "4ef63c6eba6d8e443f18f787bceb0b1f40b90ee750d63a3b27239ed05bf5d849",
+ "before.config.mjs": "a0a8ec50388d194d60cdf7019bba18fffb2c4691404924c3675757d3b3984962",
+ "fix.patch": "9681d47063d4b76bc4f9567eacf5dddb3ec221b715ce0bedddfcb493e0558fc6",
+ "main-context.patch": "4ef0bf173e6575a548b1d217248432fedbcfd68bcb350980e73987df3aba81e9",
+ "source-versions.json": "7df5afb4523280364b1eecaf465131ac94822fbb868dc4aaddb42586dff9f21d"
+ }
+}
diff --git a/docs/audits/ssh-file-metadata-retention/main-fixed-node-results.json b/docs/audits/ssh-file-metadata-retention/main-fixed-node-results.json
new file mode 100644
index 00000000000..6e0629f9a29
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/main-fixed-node-results.json
@@ -0,0 +1,140 @@
+{
+ "variant": "fixed",
+ "graph": "main",
+ "runtime": {
+ "node": "26.6.0",
+ "electron": null
+ },
+ "sources": {
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "3e5fe7a1e3537505baf42869449193fc0448339d851254a49527ec2a1c7cbb50",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "observedReaderSha256": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "controls": [
+ {
+ "name": "held-metadata-foreign-history",
+ "readers": 4,
+ "entries": [0, 0, 0, 0],
+ "wrappers": 0,
+ "uniqueParams": 0,
+ "logicalBase64BytesByUniqueParams": 0,
+ "sharedAcrossReaders": false,
+ "decodedTransferBytes": 33554432,
+ "peakRegisteredStreams": 1,
+ "maxConcurrentStreams": 16,
+ "ackWindow": 4,
+ "ackCount": 128,
+ "observedHeapDelta": -669752,
+ "released": true
+ },
+ {
+ "name": "ordinary-completion",
+ "passed": true
+ },
+ {
+ "name": "transport-disposal",
+ "passed": true
+ },
+ {
+ "name": "metadata-request-deadline",
+ "milliseconds": 30000,
+ "relayContextAborted": true,
+ "released": true
+ },
+ {
+ "name": "unpaced-relay",
+ "passed": true
+ },
+ {
+ "name": "real-pump-credit-window",
+ "chunksBeforeAck": 4,
+ "totalChunks": 6
+ },
+ {
+ "name": "actual-stream-capacity",
+ "slots": 16,
+ "rejectedSeventeenth": true,
+ "admittedAfterCompletion": true
+ },
+ {
+ "name": "saturated-writer-metadata-order",
+ "wireOrder": ["probe.prime", "response", "fs.streamChunk", "fs.streamChunk", "fs.streamEnd"]
+ },
+ {
+ "name": "same-turn-response-and-own-frames",
+ "passed": true
+ },
+ {
+ "name": "canonical-crlf-source-control",
+ "reads": 66,
+ "passed": true
+ }
+ ],
+ "artifactHashes": {
+ "sources.cjs": "790ef573e61fbb7f68741d1e1cfb0e4b4c79a2dde4292e7ec9dc8dcf1d94940f",
+ "relay-fixture.mjs": "9856e17d83b812fb6b6717cf8207ccc808165c517df8d5c76bc020e0e6f51079",
+ "scenario.test.mjs": "7a619c631403d0ab03610171fc6109a9b52cde2d23b9d022354c3d6bb1b154af",
+ "vitest.config.mjs": "4ef63c6eba6d8e443f18f787bceb0b1f40b90ee750d63a3b27239ed05bf5d849",
+ "before.config.mjs": "a0a8ec50388d194d60cdf7019bba18fffb2c4691404924c3675757d3b3984962",
+ "fix.patch": "9681d47063d4b76bc4f9567eacf5dddb3ec221b715ce0bedddfcb493e0558fc6",
+ "main-context.patch": "4ef0bf173e6575a548b1d217248432fedbcfd68bcb350980e73987df3aba81e9",
+ "source-versions.json": "7df5afb4523280364b1eecaf465131ac94822fbb868dc4aaddb42586dff9f21d"
+ }
+}
diff --git a/docs/audits/ssh-file-metadata-retention/relay-fixture.mjs b/docs/audits/ssh-file-metadata-retention/relay-fixture.mjs
new file mode 100644
index 00000000000..2c545e5df89
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/relay-fixture.mjs
@@ -0,0 +1,226 @@
+import { afterEach, beforeEach, expect, vi } from 'vitest'
+import { mkdtemp, writeFile, rm } from 'node:fs/promises'
+import { tmpdir } from 'node:os'
+import { join } from 'node:path'
+import { createHash, randomBytes } from 'node:crypto'
+import { writeFileSync, readFileSync } from 'node:fs'
+import { SshChannelMultiplexer } from '../../../src/main/ssh/ssh-channel-multiplexer'
+import { readFileViaStream } from '../../../src/main/ssh/ssh-filesystem-stream-reader'
+import { RelayDispatcher } from '../../../src/relay/dispatcher'
+import { RelayStreamRegistry } from '../../../src/relay/fs-stream-registry'
+import { readRelayFileStreamMetadata } from '../../../src/relay/fs-handler-file-read'
+
+import { createRequire } from 'node:module'
+const { loadSources } = createRequire(import.meta.url)('./sources.cjs')
+const sourceInfo = loadSources()
+const gates = new Map()
+const candidate = process.env.ORCA_SSH_READER_VARIANT !== 'before'
+const graph = process.env.ORCA_SSH_READER_GRAPH ?? 'worktree'
+const artifactNames = [
+ 'sources.cjs',
+ 'relay-fixture.mjs',
+ 'scenario.test.mjs',
+ 'vitest.config.mjs',
+ 'before.config.mjs',
+ 'fix.patch',
+ 'main-context.patch',
+ 'source-versions.json'
+]
+const report = {
+ variant: candidate ? 'fixed' : 'before',
+ graph,
+ runtime: { node: process.versions.node, electron: process.versions.electron ?? null },
+ sources: sourceInfo.hashes,
+ observedReaderSha256: sourceInfo.observedReaderSha256,
+ controls: []
+}
+const nextTurn = () => new Promise((resolve) => setImmediate(resolve))
+let directory
+let fixtures
+let heldPaths
+function gate(path) {
+ let release
+ const promise = new Promise((resolve) => {
+ release = resolve
+ })
+ gates.set(path, { promise, release })
+}
+async function heldFiles(count) {
+ const paths = []
+ for (let i = 0; i < count; i++) {
+ const path = join(directory, `held-${i}.png`)
+ await writeFile(path, '')
+ gate(path)
+ paths.push(path)
+ heldPaths.push(path)
+ }
+ return paths
+}
+function connect({ pacing = true, passAcks = true, blockFirstWrite = false } = {}) {
+ let receive
+ let drain
+ let blocked = blockFirstWrite
+ const registry = new RelayStreamRegistry()
+ const stats = { peakStreams: 0, chunks: 0, ends: 0, acks: 0, contexts: [], wireOrder: [] }
+ const dispatcher = new RelayDispatcher(
+ (data) => {
+ if (data[0] === 1) {
+ const message = JSON.parse(data.subarray(13).toString())
+ stats.wireOrder.push(message.method ?? 'response')
+ }
+ receive(data)
+ if (blocked) {
+ blocked = false
+ return false
+ }
+ },
+ {
+ waitWriteDrain(callback) {
+ drain = callback
+ return () => {}
+ }
+ }
+ )
+ const mux = new SshChannelMultiplexer({
+ write(data) {
+ dispatcher.feed(data)
+ },
+ onData(callback) {
+ receive = callback
+ },
+ onClose() {}
+ })
+ dispatcher.onRequest('fs.readFileStream', async (params, context) => {
+ stats.contexts.push(context)
+ await gates.get(params.filePath)?.promise
+ const result = await readRelayFileStreamMetadata(
+ params.filePath,
+ dispatcher,
+ registry,
+ context,
+ { clientId: context.clientId, paceWithAcks: pacing && params.flowControl === 'ack' }
+ )
+ stats.peakStreams = Math.max(stats.peakStreams, registry.size())
+ return result
+ })
+ dispatcher.onNotification('fs.streamAck', (params) => {
+ stats.acks++
+ if (passAcks) {
+ registry.recordAck(params.streamId, params.seq)
+ }
+ })
+ dispatcher.onNotification('fs.cancelStream', (params) => registry.abort(params.streamId))
+ mux.onNotificationByMethod('fs.streamChunk', () => {
+ stats.chunks++
+ })
+ mux.onNotificationByMethod('fs.streamEnd', () => {
+ stats.ends++
+ })
+ const fixture = {
+ mux,
+ dispatcher,
+ registry,
+ stats,
+ drain() {
+ drain?.()
+ }
+ }
+ fixtures.push(fixture)
+ return fixture
+}
+function snapshot(paths) {
+ const rows = paths.map((path) => globalThis.__sshPendingReaders.get(path)?.deref() ?? [])
+ const unique = new Set(rows.flatMap((row) => row.map((frame) => frame.params)))
+ const bytes = [...unique].reduce(
+ (sum, params) => sum + (typeof params.data === 'string' ? params.data.length : 0),
+ 0
+ )
+ return {
+ readers: paths.length,
+ entries: rows.map((row) => row.length),
+ wrappers: rows.reduce((sum, row) => sum + row.length, 0),
+ uniqueParams: unique.size,
+ logicalBase64BytesByUniqueParams: bytes,
+ sharedAcrossReaders:
+ rows.length > 1 &&
+ rows[0].length > 0 &&
+ rows.every((row) => row.every((frame, index) => frame.params === rows[0][index]?.params))
+ }
+}
+async function collect() {
+ for (let i = 0; i < 5; i++) {
+ await nextTurn()
+ global.gc()
+ }
+ await nextTurn()
+}
+async function assertReleased(paths) {
+ await collect()
+ for (const path of paths) {
+ expect(globalThis.__sshPendingReaders.get(path)?.deref()).toBeUndefined()
+ }
+}
+async function makePayload(size) {
+ const path = join(directory, 'payload.png')
+ const bytes = randomBytes(size)
+ await writeFile(path, bytes)
+ return { path, hash: createHash('sha256').update(bytes).digest('hex'), size }
+}
+async function successfulRead(mux, payload) {
+ const result = await readFileViaStream(mux, payload.path)
+ expect(result.isImage).toBe(true)
+ const bytes = Buffer.from(result.content, 'base64')
+ expect(bytes.length).toBe(payload.size)
+ expect(createHash('sha256').update(bytes).digest('hex')).toBe(payload.hash)
+}
+beforeEach(async () => {
+ expect(process.env.ORCA_BACKGROUND_LAUNCH).toBe('1')
+ directory = await mkdtemp(join(tmpdir(), 'orca-ssh-reader-'))
+ fixtures = []
+ heldPaths = []
+ globalThis.__sshPendingReaders = new Map()
+})
+afterEach(async () => {
+ vi.useRealTimers()
+ for (const entry of gates.values()) {
+ entry.release()
+ }
+ gates.clear()
+ for (const fixture of fixtures) {
+ fixture.mux.dispose()
+ fixture.dispatcher.dispose()
+ await fixture.registry.disposeAll()
+ }
+ await nextTurn()
+ await rm(directory, { recursive: true, force: true })
+ report.artifactHashes = Object.fromEntries(
+ artifactNames.map((name) => [
+ name,
+ createHash('sha256')
+ .update(readFileSync(new URL(name, import.meta.url)))
+ .digest('hex')
+ ])
+ )
+ writeFileSync(
+ process.env.ORCA_SSH_READER_OUTPUT ??
+ new URL(
+ `./${graph}-${report.variant}-${process.versions.electron ? 'electron' : 'node'}-results.json`,
+ import.meta.url
+ ),
+ `${JSON.stringify(report, null, 2)}\n`
+ )
+})
+
+export {
+ candidate,
+ report,
+ nextTurn,
+ gates,
+ heldFiles,
+ connect,
+ snapshot,
+ collect,
+ assertReleased,
+ makePayload,
+ successfulRead
+}
diff --git a/docs/audits/ssh-file-metadata-retention/scenario.test.mjs b/docs/audits/ssh-file-metadata-retention/scenario.test.mjs
new file mode 100644
index 00000000000..5e5c9455200
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/scenario.test.mjs
@@ -0,0 +1,267 @@
+import { readFileSync } from 'node:fs'
+import { createRequire } from 'node:module'
+import { describe, expect, it, vi } from 'vitest'
+import { SshChannelMultiplexer } from '../../../src/main/ssh/ssh-channel-multiplexer'
+import { readFileViaStream } from '../../../src/main/ssh/ssh-filesystem-stream-reader'
+import {
+ encodeJsonRpcFrame,
+ MAX_CONCURRENT_STREAMS,
+ STREAM_ACK_WINDOW_CHUNKS,
+ STREAM_CHUNK_SIZE,
+ RelayErrorCode
+} from '../../../src/relay/protocol'
+import {
+ candidate,
+ report,
+ nextTurn,
+ gates,
+ heldFiles,
+ connect,
+ snapshot,
+ collect,
+ assertReleased,
+ makePayload,
+ successfulRead
+} from './relay-fixture.mjs'
+describe('actual SSH mux, relay dispatcher and file producer ownership', () => {
+ it('retains shared foreign frames while four metadata request handlers are deliberately held', async () => {
+ const paths = await heldFiles(4)
+ const { mux, stats } = connect()
+ const pending = paths.map((path) => readFileViaStream(mux, path))
+ const payload = await makePayload(2 * 1024 * 1024)
+ await collect()
+ const startHeap = process.memoryUsage().heapUsed
+ for (let i = 0; i < 16; i++) {
+ await successfulRead(mux, payload)
+ }
+ await collect()
+ const retained = snapshot(paths)
+ expect(stats.chunks).toBe(128)
+ expect(stats.ends).toBe(16)
+ expect(stats.acks).toBe(128)
+ expect(stats.peakStreams).toBe(1)
+ expect(retained.entries).toEqual(Array(4).fill(candidate ? 0 : 144))
+ expect(retained.uniqueParams).toBe(candidate ? 0 : 144)
+ expect(retained.logicalBase64BytesByUniqueParams).toBe(
+ candidate ? 0 : 128 * Math.ceil(STREAM_CHUNK_SIZE / 3) * 4
+ )
+ expect(retained.sharedAcrossReaders).toBe(!candidate)
+ const heapDelta = process.memoryUsage().heapUsed - startHeap
+ for (const path of paths) {
+ gates.get(path).release()
+ }
+ expect(await Promise.all(pending)).toEqual(
+ Array.from({ length: 4 }, () => ({
+ content: '',
+ isBinary: true,
+ isImage: true,
+ mimeType: 'image/png'
+ }))
+ )
+ await assertReleased(paths)
+ report.controls.push({
+ name: 'held-metadata-foreign-history',
+ ...retained,
+ decodedTransferBytes: 16 * payload.size,
+ peakRegisteredStreams: stats.peakStreams,
+ maxConcurrentStreams: MAX_CONCURRENT_STREAMS,
+ ackWindow: STREAM_ACK_WINDOW_CHUNKS,
+ ackCount: stats.acks,
+ observedHeapDelta: heapDelta,
+ released: true
+ })
+ })
+ it('finishes normally without a held metadata request and releases reader state', async () => {
+ const { mux } = connect()
+ const payload = await makePayload(STREAM_CHUNK_SIZE + 17)
+ for (let i = 0; i < 3; i++) {
+ await successfulRead(mux, payload)
+ }
+ await assertReleased([payload.path])
+ report.controls.push({ name: 'ordinary-completion', passed: true })
+ })
+ it('cleans up all pending metadata listeners when transport is disposed', async () => {
+ const paths = await heldFiles(2)
+ const { mux } = connect()
+ const pending = paths.map((path) =>
+ readFileViaStream(mux, path).catch((error) => {
+ void error.stack
+ return error.code
+ })
+ )
+ await successfulRead(mux, await makePayload(STREAM_CHUNK_SIZE + 1))
+ expect(snapshot(paths).wrappers).toBe(candidate ? 0 : 6)
+ mux.dispose('connection_lost')
+ const results = await Promise.all(pending)
+ expect(results).toEqual(['CONNECTION_LOST', 'CONNECTION_LOST'])
+ await assertReleased(paths)
+ report.controls.push({ name: 'transport-disposal', passed: true })
+ })
+ it('retains no reader history after the 30 second request deadline while relay work remains pending', async () => {
+ const paths = await heldFiles(1)
+ vi.useFakeTimers({
+ toFake: ['setTimeout', 'clearTimeout', 'setInterval', 'clearInterval', 'Date']
+ })
+ const { mux, stats } = connect()
+ const pending = readFileViaStream(mux, paths[0]).catch((error) => error)
+ await successfulRead(mux, await makePayload(STREAM_CHUNK_SIZE))
+ expect(snapshot(paths).wrappers).toBe(candidate ? 0 : 2)
+ // Keep the actual mux/relay health timers active on the fake clock as well.
+ for (let i = 0; i < 6; i++) {
+ await vi.advanceTimersByTimeAsync(5000)
+ }
+ expect((await pending).code).toBe('SSH_MUX_REQUEST_TIMEOUT')
+ expect(stats.contexts[0].signal.aborted).toBe(true)
+ vi.useRealTimers()
+ await assertReleased(paths)
+ report.controls.push({
+ name: 'metadata-request-deadline',
+ milliseconds: 30000,
+ relayContextAborted: true,
+ released: true
+ })
+ })
+ it('supports a relay that ignores optional chunk pacing', async () => {
+ const paths = await heldFiles(1)
+ const { mux, stats } = connect({ pacing: false })
+ const pending = readFileViaStream(mux, paths[0])
+ await successfulRead(mux, await makePayload(2 * STREAM_CHUNK_SIZE + 7))
+ expect(stats.chunks).toBe(3)
+ expect(snapshot(paths).wrappers).toBe(candidate ? 0 : 4)
+ gates.get(paths[0]).release()
+ await pending
+ await assertReleased(paths)
+ report.controls.push({ name: 'unpaced-relay', passed: true })
+ })
+ it('actually stops the pump after four chunks until acknowledgements resume', async () => {
+ const { mux, registry, stats } = connect({ passAcks: false })
+ const payload = await makePayload(6 * STREAM_CHUNK_SIZE)
+ const pending = successfulRead(mux, payload)
+ for (let i = 0; i < 200 && stats.chunks < 4; i++) {
+ await new Promise((resolve) => setTimeout(resolve, 2))
+ }
+ expect(stats.chunks).toBe(4)
+ await new Promise((resolve) => setTimeout(resolve, 25))
+ expect(stats.chunks).toBe(4)
+ registry.recordAck(1, 3)
+ await pending
+ expect(stats.chunks).toBe(6)
+ report.controls.push({ name: 'real-pump-credit-window', chunksBeforeAck: 4, totalChunks: 6 })
+ })
+ it('enforces the real 16 slot limit and admits another file after completion', async () => {
+ const { mux, registry, stats } = connect({ passAcks: false })
+ const payload = await makePayload(5 * STREAM_CHUNK_SIZE)
+ const pending = Array.from({ length: 16 }, () => successfulRead(mux, payload))
+ for (let i = 0; i < 500 && stats.chunks < 64; i++) {
+ await new Promise((resolve) => setTimeout(resolve, 2))
+ }
+ expect(registry.size()).toBe(16)
+ expect(stats.chunks).toBe(64)
+ const error = await readFileViaStream(mux, payload.path).catch((error) => error)
+ expect(error.code).toBe(RelayErrorCode.TooManyStreams)
+ for (let id = 1; id <= 16; id++) {
+ registry.recordAck(id, 3)
+ }
+ await Promise.all(pending)
+ expect(registry.size()).toBe(0)
+ const small = await makePayload(1)
+ await successfulRead(mux, small)
+ report.controls.push({
+ name: 'actual-stream-capacity',
+ slots: 16,
+ rejectedSeventeenth: true,
+ admittedAfterCompletion: true
+ })
+ })
+ it('writes metadata before own chunks when the relay writer resumes from saturation', async () => {
+ const fixture = connect({ blockFirstWrite: true })
+ fixture.dispatcher.notifyClient(1, 'probe.prime')
+ const payload = await makePayload(STREAM_CHUNK_SIZE + 1)
+ const pending = successfulRead(fixture.mux, payload)
+ for (let i = 0; i < 100 && fixture.stats.peakStreams < 1; i++) {
+ await new Promise((resolve) => setTimeout(resolve, 2))
+ }
+ await nextTurn()
+ expect(fixture.stats.peakStreams).toBe(1)
+ expect(fixture.stats.wireOrder).toEqual(['probe.prime'])
+ fixture.drain()
+ await pending
+ expect(fixture.stats.wireOrder).toEqual([
+ 'probe.prime',
+ 'response',
+ 'fs.streamChunk',
+ 'fs.streamChunk',
+ 'fs.streamEnd'
+ ])
+ report.controls.push({
+ name: 'saturated-writer-metadata-order',
+ wireOrder: fixture.stats.wireOrder
+ })
+ })
+ it('handles response and own chunk/end in one decoder dispatch turn', async () => {
+ let receive
+ let requestId
+ const mux = new SshChannelMultiplexer({
+ write(data) {
+ if (data[0] === 1) {
+ const message = JSON.parse(data.subarray(13).toString())
+ if (message.method === 'fs.readFileStream') {
+ requestId = message.id
+ }
+ }
+ },
+ onData(callback) {
+ receive = callback
+ },
+ onClose() {}
+ })
+ const pending = readFileViaStream(mux, 'coalesced.png')
+ const data = Buffer.from('adjacent\0frame')
+ receive(
+ Buffer.concat([
+ encodeJsonRpcFrame(
+ {
+ jsonrpc: '2.0',
+ id: requestId,
+ result: { streamId: 7, totalSize: data.length, isBinary: true }
+ },
+ 1,
+ 0
+ ),
+ encodeJsonRpcFrame(
+ {
+ jsonrpc: '2.0',
+ method: 'fs.streamChunk',
+ params: { streamId: 7, seq: 0, data: data.toString('base64') }
+ },
+ 2,
+ 0
+ ),
+ encodeJsonRpcFrame(
+ { jsonrpc: '2.0', method: 'fs.streamEnd', params: { streamId: 7 } },
+ 3,
+ 0
+ )
+ ])
+ )
+ expect(await pending).toEqual({ content: data.toString('base64'), isBinary: true })
+ mux.dispose()
+ await assertReleased(['coalesced.png'])
+ report.controls.push({ name: 'same-turn-response-and-own-frames', passed: true })
+ })
+})
+
+it('reconstructs both sources identically from synthetic CRLF checkout and patch reads', () => {
+ const { loadSources } = createRequire(import.meta.url)('./sources.cjs')
+ let reads = 0
+ const observed = loadSources({
+ read(filename) {
+ reads += 1
+ return readFileSync(filename, 'utf8').replace(/\r?\n/g, '\r\n')
+ }
+ })
+ const ordinary = loadSources()
+ expect(observed.hashes).toEqual(ordinary.hashes)
+ expect([...observed.sources]).toEqual([...ordinary.sources])
+ report.controls.push({ name: 'canonical-crlf-source-control', reads, passed: true })
+})
diff --git a/docs/audits/ssh-file-metadata-retention/source-versions.json b/docs/audits/ssh-file-metadata-retention/source-versions.json
new file mode 100644
index 00000000000..66f6a28a3d4
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/source-versions.json
@@ -0,0 +1,225 @@
+{
+ "sourcePath": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "baselineSha256": "b8586de1412df98428939a0a4870c5f8ccab22f506a188b2eb1c7a38c317b1ef",
+ "fixedSha256": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "contextPath": "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts",
+ "worktreeGraph": {
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "6173ddd6640a930d0fa586fed91c1adc0d865a33f81af9a1ed5a0817c08e90cc",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "mainGraph": {
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "3e5fe7a1e3537505baf42869449193fc0448339d851254a49527ec2a1c7cbb50",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "callerHashes": {
+ "src/main/providers/ssh-filesystem-provider.ts": "de6051f43ea272fe0a15b7ef5c6df5c8caedfa7adaada205386c4f19be7f04f2",
+ "src/main/ipc/filesystem/filesystem-read-handlers.ts": "cf012e6a7049f803936c75a32619cf1f209053d4b8951f67f7e4e39218448a6a",
+ "src/main/runtime/runtime-file-commands-mobile-file-list-limit.ts": "27c4b20397471fe036f8fdfe0f76f089bf6bbf9e6d4ae9f23b41bc49359bc8bc",
+ "src/main/ai-vault/remote-session-scan-concurrency.ts": "1b7147a2b5d793d7f78059c2ae67c41f531ebfa37a9bd292091401d21143e36a",
+ "src/relay/fs-handler.ts": "bc8c57bdf91e5d34b2fb42d8fd00260873224c7b04d69e5aafae149a377c4235"
+ },
+ "mainRef": "291b4ddd6f1c1af480169885e0fda7f9c78ff053",
+ "mainOriginalSourceHashes": {
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "b8586de1412df98428939a0a4870c5f8ccab22f506a188b2eb1c7a38c317b1ef",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "3e5fe7a1e3537505baf42869449193fc0448339d851254a49527ec2a1c7cbb50",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "reportedVersionComparison": {
+ "commit": "e0826956fcfc532f5a1e55b5e081f2e57e553c43",
+ "sourceHashes": {
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "b8586de1412df98428939a0a4870c5f8ccab22f506a188b2eb1c7a38c317b1ef",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "480c722b27dd1ffb8c70bfca8fb3568294ff2777b7b02607548df93bb280f6ae",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "4a73e2194f15ec0604802fe6810742f34930fc55e542458b6d8ab7344ee841a2",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/providers/ssh-filesystem-provider.ts": "03d53c8be02737024f5c5f4f08d614a276a8d03f0e599c331be9d0eaa85c2d80",
+ "src/main/ipc/filesystem/filesystem-read-handlers.ts": "2491d39f0576a961a249ebbf94e563f2eefe7a0cf899bbb6bc77b7a9e7a2aa30",
+ "src/main/runtime/runtime-file-commands-mobile-file-list-limit.ts": "27c4b20397471fe036f8fdfe0f76f089bf6bbf9e6d4ae9f23b41bc49359bc8bc",
+ "src/main/ai-vault/remote-session-scan-concurrency.ts": "175944c836a683a41c7d6446d45794eb9e0dd021414926370c64bc5fd574ad34",
+ "src/relay/fs-handler.ts": "b4f4121c3081b8c98749c4d1cb45fd3355f0c053c9cc078f539cb71210976533",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/relay/protocol.ts": "678f9d6dac998385ca10e94da9864fe3451c82fcc88b9c28490dfb42e99606a4",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34"
+ }
+ }
+}
diff --git a/docs/audits/ssh-file-metadata-retention/sources.cjs b/docs/audits/ssh-file-metadata-retention/sources.cjs
new file mode 100644
index 00000000000..08a2f0424ed
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/sources.cjs
@@ -0,0 +1,84 @@
+const assert = require('node:assert/strict')
+const { readFileSync } = require('node:fs')
+const { createHash } = require('node:crypto')
+const path = require('node:path')
+const { applyPatch, parsePatch, reversePatch } = require('diff')
+const root = path.resolve(__dirname, '../../..')
+const canonicalLf = (text) => text.replaceAll('\r\n', '\n')
+const sha256 = (text) => createHash('sha256').update(text).digest('hex')
+const readText = (filename) => canonicalLf(readFileSync(filename, 'utf8'))
+const versions = JSON.parse(readText(path.join(__dirname, 'source-versions.json')))
+
+function checkedPatch(name, expectedPath, read) {
+ const patches = parsePatch(canonicalLf(read(path.join(__dirname, name))))
+ assert.equal(patches.length, 1)
+ assert.equal(patches[0].newFileName, `b/${expectedPath}`)
+ assert.equal(patches[0].oldFileName, `a/${expectedPath}`)
+ return patches[0]
+}
+
+function observePending(source) {
+ return source.replace(
+ ' const pending: PendingFrame[] = []',
+ ' const pending: PendingFrame[] = []; globalThis.__sshPendingReaders.set(filePath, new WeakRef(pending))'
+ )
+}
+
+function loadSources({
+ graph = process.env.ORCA_SSH_READER_GRAPH ?? 'worktree',
+ variant = process.env.ORCA_SSH_READER_VARIANT ?? 'fixed',
+ read = readText
+} = {}) {
+ assert.ok(graph === 'worktree' || graph === 'main')
+ assert.ok(variant === 'before' || variant === 'fixed')
+ const targetPatch = checkedPatch('fix.patch', versions.sourcePath, read)
+ const contextPatch = checkedPatch('main-context.patch', versions.contextPath, read)
+ const sources = new Map()
+ const hashes = {}
+ const selected = graph === 'main' ? versions.mainGraph : versions.worktreeGraph
+ for (const [relative, expected] of Object.entries(selected)) {
+ const filename = path.join(root, relative)
+ let text = canonicalLf(read(filename))
+ if (relative === versions.sourcePath) {
+ assert.equal(sha256(text), versions.fixedSha256, 'Fixed reader drift')
+ if (variant === 'before') {
+ text = applyPatch(text, reversePatch(targetPatch))
+ assert.notEqual(text, false, 'Reader patch no longer reverses')
+ assert.equal(sha256(text), versions.baselineSha256)
+ }
+ } else if (relative === versions.contextPath) {
+ const actual = sha256(text)
+ assert.ok(
+ actual === versions.worktreeGraph[relative] || actual === versions.mainGraph[relative],
+ 'Unaudited writer context'
+ )
+ if (actual !== expected) {
+ text = applyPatch(text, graph === 'main' ? contextPatch : reversePatch(contextPatch))
+ assert.notEqual(text, false, 'Writer context no longer reconstructs')
+ }
+ assert.equal(sha256(text), expected)
+ } else {
+ assert.equal(sha256(text), expected, `Graph source drift: ${relative}`)
+ }
+ hashes[relative] = sha256(text)
+ sources.set(filename, text)
+ }
+ for (const [relative, expected] of Object.entries(versions.callerHashes)) {
+ assert.equal(
+ sha256(canonicalLf(read(path.join(root, relative)))),
+ expected,
+ `Caller drift: ${relative}`
+ )
+ }
+ const reader = sources.get(path.join(root, versions.sourcePath))
+ return {
+ root,
+ sources,
+ hashes,
+ observedReaderSha256: sha256(observePending(reader)),
+ graph,
+ variant
+ }
+}
+
+module.exports = { loadSources, observePending, readText, versions }
diff --git a/docs/audits/ssh-file-metadata-retention/validation.json b/docs/audits/ssh-file-metadata-retention/validation.json
new file mode 100644
index 00000000000..862ccc5d497
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/validation.json
@@ -0,0 +1,264 @@
+{
+ "productTests": {
+ "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-filesystem-stream-retention.test.ts src/main/providers/ssh-filesystem-provider-stream.test.ts src/main/providers/ssh-filesystem-provider.test.ts src/main/ssh/ssh-channel-multiplexer.test.ts src/relay/fs-handler-stream.test.ts",
+ "passed": 124,
+ "files": 5,
+ "newTests": 9,
+ "exitCode": 0
+ },
+ "baselineOverlay": {
+ "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config docs/audits/ssh-file-metadata-retention/before.config.mjs src/main/ssh/ssh-filesystem-stream-retention.test.ts src/main/providers/ssh-filesystem-provider-stream.test.ts",
+ "passed": 22,
+ "expectedFailed": 1,
+ "failure": "64 foreign frame params objects remain reachable before this reader receives metadata.",
+ "exitCode": 1
+ },
+ "transportIntegration": {
+ "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/relay/fs-stream-pty-echo-backpressure.integration.test.ts",
+ "passed": 3,
+ "exitCode": 0
+ },
+ "typecheck": {
+ "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm tc:node",
+ "exitCode": 0
+ },
+ "portableProof": {
+ "cases": 80,
+ "reports": [
+ {
+ "file": "worktree-before-node-results.json",
+ "controls": 10,
+ "runtime": {
+ "node": "26.6.0",
+ "electron": null
+ },
+ "heapDelta": 45478552
+ },
+ {
+ "file": "worktree-before-electron-results.json",
+ "controls": 10,
+ "runtime": {
+ "node": "24.21.0",
+ "electron": "43.7.0"
+ },
+ "heapDelta": 45298880
+ },
+ {
+ "file": "worktree-fixed-node-results.json",
+ "controls": 10,
+ "runtime": {
+ "node": "26.6.0",
+ "electron": null
+ },
+ "heapDelta": -663256
+ },
+ {
+ "file": "worktree-fixed-electron-results.json",
+ "controls": 10,
+ "runtime": {
+ "node": "24.21.0",
+ "electron": "43.7.0"
+ },
+ "heapDelta": 520252
+ },
+ {
+ "file": "main-before-node-results.json",
+ "controls": 10,
+ "runtime": {
+ "node": "26.6.0",
+ "electron": null
+ },
+ "heapDelta": 45477336
+ },
+ {
+ "file": "main-before-electron-results.json",
+ "controls": 10,
+ "runtime": {
+ "node": "24.21.0",
+ "electron": "43.7.0"
+ },
+ "heapDelta": 45298640
+ },
+ {
+ "file": "main-fixed-node-results.json",
+ "controls": 10,
+ "runtime": {
+ "node": "26.6.0",
+ "electron": null
+ },
+ "heapDelta": -669752
+ },
+ {
+ "file": "main-fixed-electron-results.json",
+ "controls": 10,
+ "runtime": {
+ "node": "24.21.0",
+ "electron": "43.7.0"
+ },
+ "heapDelta": 513692
+ }
+ ],
+ "sourceGraphModules": 59,
+ "additionalCallerSources": 5,
+ "canonicalCrLfReads": 66
+ },
+ "quality": [
+ {
+ "label": "ordinary lint",
+ "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec oxlint --no-ignore --deny-warnings src/main/ssh/ssh-filesystem-stream-reader.ts src/main/ssh/ssh-filesystem-stream-retention.test.ts src/main/providers/ssh-filesystem-provider-stream.test.ts docs/audits/ssh-file-metadata-retention/sources.cjs docs/audits/ssh-file-metadata-retention/relay-fixture.mjs docs/audits/ssh-file-metadata-retention/scenario.test.mjs docs/audits/ssh-file-metadata-retention/vitest.config.mjs docs/audits/ssh-file-metadata-retention/before.config.mjs",
+ "exitCode": 0
+ },
+ {
+ "label": "casting",
+ "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec oxlint --no-ignore --deny-warnings --config config/oxlint-code-quality-casting.json src/main/ssh/ssh-filesystem-stream-reader.ts src/main/ssh/ssh-filesystem-stream-retention.test.ts src/main/providers/ssh-filesystem-provider-stream.test.ts docs/audits/ssh-file-metadata-retention/sources.cjs docs/audits/ssh-file-metadata-retention/relay-fixture.mjs docs/audits/ssh-file-metadata-retention/scenario.test.mjs docs/audits/ssh-file-metadata-retention/vitest.config.mjs docs/audits/ssh-file-metadata-retention/before.config.mjs",
+ "exitCode": 1
+ },
+ {
+ "label": "type-aware",
+ "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec oxlint --no-ignore --deny-warnings --type-aware --config config/oxlint-code-quality-type-aware.json src/main/ssh/ssh-filesystem-stream-reader.ts src/main/ssh/ssh-filesystem-stream-retention.test.ts src/main/providers/ssh-filesystem-provider-stream.test.ts docs/audits/ssh-file-metadata-retention/sources.cjs docs/audits/ssh-file-metadata-retention/relay-fixture.mjs docs/audits/ssh-file-metadata-retention/scenario.test.mjs docs/audits/ssh-file-metadata-retention/vitest.config.mjs docs/audits/ssh-file-metadata-retention/before.config.mjs",
+ "exitCode": 0
+ },
+ {
+ "label": "native code quality",
+ "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec oxlint --no-ignore --deny-warnings --config config/oxlint-code-quality-native-plugins.json src/main/ssh/ssh-filesystem-stream-reader.ts src/main/ssh/ssh-filesystem-stream-retention.test.ts src/main/providers/ssh-filesystem-provider-stream.test.ts docs/audits/ssh-file-metadata-retention/sources.cjs docs/audits/ssh-file-metadata-retention/relay-fixture.mjs docs/audits/ssh-file-metadata-retention/scenario.test.mjs docs/audits/ssh-file-metadata-retention/vitest.config.mjs docs/audits/ssh-file-metadata-retention/before.config.mjs",
+ "exitCode": 0
+ },
+ {
+ "label": "anti-slop",
+ "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec oxlint --no-ignore --deny-warnings --config config/oxlint-anti-slop.json src/main/ssh/ssh-filesystem-stream-reader.ts src/main/ssh/ssh-filesystem-stream-retention.test.ts src/main/providers/ssh-filesystem-provider-stream.test.ts docs/audits/ssh-file-metadata-retention/sources.cjs docs/audits/ssh-file-metadata-retention/relay-fixture.mjs docs/audits/ssh-file-metadata-retention/scenario.test.mjs docs/audits/ssh-file-metadata-retention/vitest.config.mjs docs/audits/ssh-file-metadata-retention/before.config.mjs",
+ "exitCode": 0
+ }
+ ],
+ "inheritedCasting": {
+ "baselineFindings": 15,
+ "currentFindings": 15,
+ "sameRuleAndExactAssertionSpans": true,
+ "findings": [
+ {
+ "path": "src/main/providers/ssh-filesystem-provider-stream.test.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["mux as never"]
+ },
+ {
+ "path": "src/main/providers/ssh-filesystem-provider-stream.test.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["new Error('Method not found') as Error & { code: number }"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["err as Error"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["err as Error"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["err as { code?: unknown }"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["new Error(message) as Error & { code: string }"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["new Error(message) as Error & { code: string }"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["params.code as string | undefined"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["params.data as string"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["params.message as string | undefined"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["params.seq as number"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["params.streamId as number | undefined"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["params.streamId as number | undefined"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["params.streamId as number | undefined"]
+ },
+ {
+ "path": "src/main/ssh/ssh-filesystem-stream-reader.ts",
+ "rule": "typescript(consistent-type-assertions)",
+ "spans": ["rawMetadata as StreamMetadataResponse"]
+ }
+ ],
+ "baselineSourceHashes": {
+ "src/main/providers/ssh-filesystem-provider-stream.test.ts": "422bcaa7293925217f9c61197599f26e9f0f0993cb562ec004a48a1b27d43fa3",
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "b8586de1412df98428939a0a4870c5f8ccab22f506a188b2eb1c7a38c317b1ef"
+ }
+ },
+ "changedCodeGate": {
+ "command": "ORCA_BACKGROUND_LAUNCH=1 pnpm run check:code-quality:changed",
+ "exitCode": 0,
+ "newFindings": 0,
+ "observedGlobalChangedFiles": 392,
+ "baseline": "2fccacadbe23",
+ "scope": "Primary worktree including concurrent global evidence changes"
+ },
+ "whitespace": {
+ "fullContentsChecked": true,
+ "zeroContextPatches": true,
+ "diagnostics": 0
+ },
+ "formatting": {
+ "idempotent": true
+ },
+ "emptyFileFixtureCiCorrection": {
+ "failedHead": "458e11e9f3f5981a85fc1006083c19738a8b26e3",
+ "jobUrl": "https://github.com/stablyai/orca/actions/runs/35186075669/job/105088389138",
+ "cause": "General provider test double resolved empty metadata without invoking the synchronous beforeResolve callback. Real-mux empty metadata cases already passed.",
+ "correction": "Move the existing empty-file control to the existing streaming fixture, which models beforeResolve; also assert all stream/disposal listeners are released. No product change.",
+ "localCounterexample": {
+ "failed": 1,
+ "skipped": 53,
+ "timeoutMs": 1000,
+ "logSha256": "a53af8ea05b06fabf918ea12f5c81f635dbfec97709688ce1139f9efc619a438"
+ },
+ "fixedFiveSuites": {
+ "passed": 124,
+ "exitCode": 0,
+ "logSha256": "bab1beb5ed50ff0611b67eda8a96b1176a86442baa50abc07516402e987e31db"
+ },
+ "baselineOverlay": {
+ "expectedFailed": 1,
+ "passed": 22,
+ "exitCode": 1,
+ "logSha256": "044aaae5fd3943263616d32eafafbfbb0fc4fb742f754feb233a8e6b49160b6b"
+ },
+ "otherCiFailure": {
+ "jobUrl": "https://github.com/stablyai/orca/actions/runs/35186075669/job/105088388326",
+ "path": "src/main/windows/windows-pty-job.win32.test.ts",
+ "failure": "ConPTY job ownership: grandchild never reported its pid",
+ "mainAndPublishedBlob": "c5f408f73115a11821b06fafe04ca28eaa15acb7",
+ "scope": "Untouched Windows native test; missing PID cause not established. No retry or timing-threshold change."
+ }
+ }
+}
diff --git a/docs/audits/ssh-file-metadata-retention/vitest.config.mjs b/docs/audits/ssh-file-metadata-retention/vitest.config.mjs
new file mode 100644
index 00000000000..b1f6975e0df
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/vitest.config.mjs
@@ -0,0 +1,31 @@
+import { resolve, sep } from 'node:path'
+import { createRequire } from 'node:module'
+import base from '../../../config/vitest.config.ts'
+const { loadSources, observePending } = createRequire(import.meta.url)('./sources.cjs')
+const loaded = loadSources()
+export default {
+ ...base,
+ test: {
+ ...base.test,
+ setupFiles: [],
+ include: ['docs/audits/ssh-file-metadata-retention/scenario.test.mjs'],
+ maxWorkers: 1
+ },
+ plugins: [
+ {
+ name: 'ssh-file-metadata-source-graph',
+ enforce: 'pre',
+ transform(_source, id) {
+ const absolute = resolve(id.split('?')[0])
+ const source = loaded.sources.get(absolute)
+ if (source !== undefined) {
+ return { code: observePending(source), map: null }
+ }
+ if (absolute.startsWith(resolve(loaded.root, 'src') + sep) && absolute.endsWith('.ts')) {
+ throw new Error(`Unreviewed source import: ${absolute}`)
+ }
+ return null
+ }
+ }
+ ]
+}
diff --git a/docs/audits/ssh-file-metadata-retention/worktree-before-electron-results.json b/docs/audits/ssh-file-metadata-retention/worktree-before-electron-results.json
new file mode 100644
index 00000000000..1bec84156d8
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/worktree-before-electron-results.json
@@ -0,0 +1,140 @@
+{
+ "variant": "before",
+ "graph": "worktree",
+ "runtime": {
+ "node": "24.21.0",
+ "electron": "43.7.0"
+ },
+ "sources": {
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "b8586de1412df98428939a0a4870c5f8ccab22f506a188b2eb1c7a38c317b1ef",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "6173ddd6640a930d0fa586fed91c1adc0d865a33f81af9a1ed5a0817c08e90cc",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "observedReaderSha256": "7a5c9c14faf63197765fc5a2900e1d3488f94aaab6757425b7ef87597479e963",
+ "controls": [
+ {
+ "name": "held-metadata-foreign-history",
+ "readers": 4,
+ "entries": [144, 144, 144, 144],
+ "wrappers": 576,
+ "uniqueParams": 144,
+ "logicalBase64BytesByUniqueParams": 44739584,
+ "sharedAcrossReaders": true,
+ "decodedTransferBytes": 33554432,
+ "peakRegisteredStreams": 1,
+ "maxConcurrentStreams": 16,
+ "ackWindow": 4,
+ "ackCount": 128,
+ "observedHeapDelta": 45298880,
+ "released": true
+ },
+ {
+ "name": "ordinary-completion",
+ "passed": true
+ },
+ {
+ "name": "transport-disposal",
+ "passed": true
+ },
+ {
+ "name": "metadata-request-deadline",
+ "milliseconds": 30000,
+ "relayContextAborted": true,
+ "released": true
+ },
+ {
+ "name": "unpaced-relay",
+ "passed": true
+ },
+ {
+ "name": "real-pump-credit-window",
+ "chunksBeforeAck": 4,
+ "totalChunks": 6
+ },
+ {
+ "name": "actual-stream-capacity",
+ "slots": 16,
+ "rejectedSeventeenth": true,
+ "admittedAfterCompletion": true
+ },
+ {
+ "name": "saturated-writer-metadata-order",
+ "wireOrder": ["probe.prime", "response", "fs.streamChunk", "fs.streamChunk", "fs.streamEnd"]
+ },
+ {
+ "name": "same-turn-response-and-own-frames",
+ "passed": true
+ },
+ {
+ "name": "canonical-crlf-source-control",
+ "reads": 66,
+ "passed": true
+ }
+ ],
+ "artifactHashes": {
+ "sources.cjs": "790ef573e61fbb7f68741d1e1cfb0e4b4c79a2dde4292e7ec9dc8dcf1d94940f",
+ "relay-fixture.mjs": "9856e17d83b812fb6b6717cf8207ccc808165c517df8d5c76bc020e0e6f51079",
+ "scenario.test.mjs": "7a619c631403d0ab03610171fc6109a9b52cde2d23b9d022354c3d6bb1b154af",
+ "vitest.config.mjs": "4ef63c6eba6d8e443f18f787bceb0b1f40b90ee750d63a3b27239ed05bf5d849",
+ "before.config.mjs": "a0a8ec50388d194d60cdf7019bba18fffb2c4691404924c3675757d3b3984962",
+ "fix.patch": "9681d47063d4b76bc4f9567eacf5dddb3ec221b715ce0bedddfcb493e0558fc6",
+ "main-context.patch": "4ef0bf173e6575a548b1d217248432fedbcfd68bcb350980e73987df3aba81e9",
+ "source-versions.json": "7df5afb4523280364b1eecaf465131ac94822fbb868dc4aaddb42586dff9f21d"
+ }
+}
diff --git a/docs/audits/ssh-file-metadata-retention/worktree-before-node-results.json b/docs/audits/ssh-file-metadata-retention/worktree-before-node-results.json
new file mode 100644
index 00000000000..b16ca49d1c6
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/worktree-before-node-results.json
@@ -0,0 +1,140 @@
+{
+ "variant": "before",
+ "graph": "worktree",
+ "runtime": {
+ "node": "26.6.0",
+ "electron": null
+ },
+ "sources": {
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "b8586de1412df98428939a0a4870c5f8ccab22f506a188b2eb1c7a38c317b1ef",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "6173ddd6640a930d0fa586fed91c1adc0d865a33f81af9a1ed5a0817c08e90cc",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "observedReaderSha256": "7a5c9c14faf63197765fc5a2900e1d3488f94aaab6757425b7ef87597479e963",
+ "controls": [
+ {
+ "name": "held-metadata-foreign-history",
+ "readers": 4,
+ "entries": [144, 144, 144, 144],
+ "wrappers": 576,
+ "uniqueParams": 144,
+ "logicalBase64BytesByUniqueParams": 44739584,
+ "sharedAcrossReaders": true,
+ "decodedTransferBytes": 33554432,
+ "peakRegisteredStreams": 1,
+ "maxConcurrentStreams": 16,
+ "ackWindow": 4,
+ "ackCount": 128,
+ "observedHeapDelta": 45478552,
+ "released": true
+ },
+ {
+ "name": "ordinary-completion",
+ "passed": true
+ },
+ {
+ "name": "transport-disposal",
+ "passed": true
+ },
+ {
+ "name": "metadata-request-deadline",
+ "milliseconds": 30000,
+ "relayContextAborted": true,
+ "released": true
+ },
+ {
+ "name": "unpaced-relay",
+ "passed": true
+ },
+ {
+ "name": "real-pump-credit-window",
+ "chunksBeforeAck": 4,
+ "totalChunks": 6
+ },
+ {
+ "name": "actual-stream-capacity",
+ "slots": 16,
+ "rejectedSeventeenth": true,
+ "admittedAfterCompletion": true
+ },
+ {
+ "name": "saturated-writer-metadata-order",
+ "wireOrder": ["probe.prime", "response", "fs.streamChunk", "fs.streamChunk", "fs.streamEnd"]
+ },
+ {
+ "name": "same-turn-response-and-own-frames",
+ "passed": true
+ },
+ {
+ "name": "canonical-crlf-source-control",
+ "reads": 66,
+ "passed": true
+ }
+ ],
+ "artifactHashes": {
+ "sources.cjs": "790ef573e61fbb7f68741d1e1cfb0e4b4c79a2dde4292e7ec9dc8dcf1d94940f",
+ "relay-fixture.mjs": "9856e17d83b812fb6b6717cf8207ccc808165c517df8d5c76bc020e0e6f51079",
+ "scenario.test.mjs": "7a619c631403d0ab03610171fc6109a9b52cde2d23b9d022354c3d6bb1b154af",
+ "vitest.config.mjs": "4ef63c6eba6d8e443f18f787bceb0b1f40b90ee750d63a3b27239ed05bf5d849",
+ "before.config.mjs": "a0a8ec50388d194d60cdf7019bba18fffb2c4691404924c3675757d3b3984962",
+ "fix.patch": "9681d47063d4b76bc4f9567eacf5dddb3ec221b715ce0bedddfcb493e0558fc6",
+ "main-context.patch": "4ef0bf173e6575a548b1d217248432fedbcfd68bcb350980e73987df3aba81e9",
+ "source-versions.json": "7df5afb4523280364b1eecaf465131ac94822fbb868dc4aaddb42586dff9f21d"
+ }
+}
diff --git a/docs/audits/ssh-file-metadata-retention/worktree-fixed-electron-results.json b/docs/audits/ssh-file-metadata-retention/worktree-fixed-electron-results.json
new file mode 100644
index 00000000000..c40cf2fe652
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/worktree-fixed-electron-results.json
@@ -0,0 +1,140 @@
+{
+ "variant": "fixed",
+ "graph": "worktree",
+ "runtime": {
+ "node": "24.21.0",
+ "electron": "43.7.0"
+ },
+ "sources": {
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "6173ddd6640a930d0fa586fed91c1adc0d865a33f81af9a1ed5a0817c08e90cc",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "observedReaderSha256": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "controls": [
+ {
+ "name": "held-metadata-foreign-history",
+ "readers": 4,
+ "entries": [0, 0, 0, 0],
+ "wrappers": 0,
+ "uniqueParams": 0,
+ "logicalBase64BytesByUniqueParams": 0,
+ "sharedAcrossReaders": false,
+ "decodedTransferBytes": 33554432,
+ "peakRegisteredStreams": 1,
+ "maxConcurrentStreams": 16,
+ "ackWindow": 4,
+ "ackCount": 128,
+ "observedHeapDelta": 520252,
+ "released": true
+ },
+ {
+ "name": "ordinary-completion",
+ "passed": true
+ },
+ {
+ "name": "transport-disposal",
+ "passed": true
+ },
+ {
+ "name": "metadata-request-deadline",
+ "milliseconds": 30000,
+ "relayContextAborted": true,
+ "released": true
+ },
+ {
+ "name": "unpaced-relay",
+ "passed": true
+ },
+ {
+ "name": "real-pump-credit-window",
+ "chunksBeforeAck": 4,
+ "totalChunks": 6
+ },
+ {
+ "name": "actual-stream-capacity",
+ "slots": 16,
+ "rejectedSeventeenth": true,
+ "admittedAfterCompletion": true
+ },
+ {
+ "name": "saturated-writer-metadata-order",
+ "wireOrder": ["probe.prime", "response", "fs.streamChunk", "fs.streamChunk", "fs.streamEnd"]
+ },
+ {
+ "name": "same-turn-response-and-own-frames",
+ "passed": true
+ },
+ {
+ "name": "canonical-crlf-source-control",
+ "reads": 66,
+ "passed": true
+ }
+ ],
+ "artifactHashes": {
+ "sources.cjs": "790ef573e61fbb7f68741d1e1cfb0e4b4c79a2dde4292e7ec9dc8dcf1d94940f",
+ "relay-fixture.mjs": "9856e17d83b812fb6b6717cf8207ccc808165c517df8d5c76bc020e0e6f51079",
+ "scenario.test.mjs": "7a619c631403d0ab03610171fc6109a9b52cde2d23b9d022354c3d6bb1b154af",
+ "vitest.config.mjs": "4ef63c6eba6d8e443f18f787bceb0b1f40b90ee750d63a3b27239ed05bf5d849",
+ "before.config.mjs": "a0a8ec50388d194d60cdf7019bba18fffb2c4691404924c3675757d3b3984962",
+ "fix.patch": "9681d47063d4b76bc4f9567eacf5dddb3ec221b715ce0bedddfcb493e0558fc6",
+ "main-context.patch": "4ef0bf173e6575a548b1d217248432fedbcfd68bcb350980e73987df3aba81e9",
+ "source-versions.json": "7df5afb4523280364b1eecaf465131ac94822fbb868dc4aaddb42586dff9f21d"
+ }
+}
diff --git a/docs/audits/ssh-file-metadata-retention/worktree-fixed-node-results.json b/docs/audits/ssh-file-metadata-retention/worktree-fixed-node-results.json
new file mode 100644
index 00000000000..e3a75af6824
--- /dev/null
+++ b/docs/audits/ssh-file-metadata-retention/worktree-fixed-node-results.json
@@ -0,0 +1,140 @@
+{
+ "variant": "fixed",
+ "graph": "worktree",
+ "runtime": {
+ "node": "26.6.0",
+ "electron": null
+ },
+ "sources": {
+ "src/relay/dispatcher.ts": "6dca32ec33e410fa9226d6c0a4a548ed06fc5bbf1a65ccdbcae7cc43a9328d18",
+ "src/main/ssh/ssh-channel-multiplexer.ts": "9ecd88963fec72901596bd25d2cb4c8666ef41d3c8a968242c6eef52095ee108",
+ "src/main/ssh/ssh-filesystem-stream-reader.ts": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "src/relay/fs-handler-file-read.ts": "2d70577839cb150ad0977981d54904b1a25bd8b5de7cfe19e018c08c36f41cd2",
+ "src/relay/protocol.ts": "faebaded7e8c8b98f021c791b4519d78d58be3879937fe2ed2cef68b22404060",
+ "src/relay/fs-stream-registry.ts": "d723dd0b6419a7937225bdacbc572ef004c49d850cbc616e9168e48f5e63b8fd",
+ "src/relay/dispatcher-notification-publication.ts": "d21c8575f5f4694a806b0e05cce4a1595f7116220f48d9068eba7c23aed7a546",
+ "src/relay/fs-handler-utils.ts": "12c54b9647ddc9e4ae9924f65aadf0d00e9553050858beae232c02077a94d93a",
+ "src/relay/relay-frame-decoder.ts": "7044cd142b21f847ee0dc4aee085fe18434b4bcb34ba1eb8bc1fb48a0ed7919e",
+ "src/main/ssh/ssh-file-stream-inactivity-deadline.ts": "0554419b22356efa60065b15640d8bf0d8d166bf345e30b492b2305767ea603a",
+ "src/main/ssh/ssh-file-stream-read-cap.ts": "83b714af0c87da4c855762ffb827f529302ebc426ab5cde59458206a64cb07b1",
+ "src/main/ssh/relay-protocol.ts": "644aa6f2087b5867d41006bfdcec78ffba693157a2912feb8f82b120f5647b34",
+ "src/main/ssh/ssh-multiplexer-transport-writer.ts": "433a2cc400b5ed9743871ca03aac06d31a079ef23c42c2a2759f78967312d071",
+ "src/shared/relay-frame-decoder-contract.ts": "f58279099fe4dbbdfde9e3e038a916ae077e71d8ac6aa871b59a64c6fbaeaad8",
+ "src/relay/dispatcher-pty-publication.ts": "2a91aeab16069e4d053c453947c5cd5d24c9e9ac4d36f19d23377689313cc851",
+ "src/main/system-power-lifecycle.ts": "cdeb82463a530123be4d42374925a0b349446437c02bff2c287786864515de11",
+ "src/relay/dispatcher-contract.ts": "7c397f9d51c0e3eca604e9075cddb6609a5e114284999009e8a86146e766c081",
+ "src/shared/relay-frame-decoder.ts": "88c0ecbc06b93efe6733094b8c9e4509ab1cbd139f8cb3257e9fb74a0ed39194",
+ "src/main/ssh/ssh-multiplexer-writer-lane-scheduler.ts": "6173ddd6640a930d0fa586fed91c1adc0d865a33f81af9a1ed5a0817c08e90cc",
+ "src/shared/pty-write-settlement.ts": "0726aba75f2ef127d41f47a0685fb42daab34fc139d5b9f727079aec88b702e6",
+ "src/shared/search-subprocess-lines.ts": "b860de84a4081fb86515bb31910f0f1d4b0a6606370490c4f60aa9d2e9d5eee3",
+ "src/relay/fs-handler-list-files.ts": "cca88ec47512840837c84c63baf7ddfc7c216810cb2a5f63fa2babbeef3ff189",
+ "src/shared/text-search.ts": "c291574e05874440601a6a043b5d065ca172072f4146568d9c9818829abbc185",
+ "src/shared/ripgrep-process-availability.ts": "2a8e21ae2c9af146f1f226bdfad1e45916cfb2671fb11aa4586d6a337b8cdec2",
+ "src/shared/image-file-extensions.ts": "8460080a80e2a09fd64466faee1b87df4d8e4803e33bc2f9dd8b3b031a54d536",
+ "src/relay/dispatcher-producer-capacity.ts": "ae201a7e09acbcc013410b92868df1e964f95952f8ab3a462d177f488292965b",
+ "src/relay/dispatcher-producer-transport.ts": "c48087ed5f330311fb438ae3df75ff03bf34df83156f3987b8905598e21780e5",
+ "src/shared/relay-frame-buffer.ts": "f89fcd33489894c34f79ba8fd5e5634487555a7c34fc8e7c054229ae1c20e0be",
+ "src/shared/quick-open-path-search.ts": "2556d6c34f50e573b2fe046f7c64f782362b3bda1241098772bd360975910a98",
+ "src/shared/quick-open-filter.ts": "9a09a02764d15622932083a3e550fc7215c066d30a2868f5d548b9105b780d81",
+ "src/shared/file-listing-cancellation.ts": "c9e1eed636fa2140071fbc2089ce02f738cce725de5069f04bf307fea611b63d",
+ "src/relay/dispatcher-rpc-routing.ts": "c11b3ff9096bd4877bba0ebc8a70a63092a00015fde3d8f81f3b8fb54087479b",
+ "src/relay/dispatcher-client-writer.ts": "9ed3ee7ad2758f2d10cd0a0ba06bf77dc3318317b8e24f0eaa6cfe235fd34be4",
+ "src/shared/text-search-match-accumulator.ts": "1229c755abc94608e211c6e403d529905f577a991871eadfed5eb18821d6e88b",
+ "src/shared/json-text-structure-limit.ts": "29ded95f7e054d839dc82d118cb324d2144c70267f293d6b54f188159ada5eb9",
+ "src/shared/text-search-paths.ts": "a977e1b1591b38d7f08652e3d0a64c95b9379e8339ab9d26d6325f7ec90fcda3",
+ "src/shared/text-search-glob-patterns.ts": "b34072078cf81813e37c37228b830c974dfadb5284ba608538deb56594d64a69",
+ "src/shared/search-match-count.ts": "6fde43e886fe142c23aff2b80b3f1ebdf613a083051a11e19d7813363db88f62",
+ "src/shared/string-utils.ts": "fdb48c18f2f7272ed25949eb74beca182c3336d32681191c4b0a4a077db02c22",
+ "src/shared/file-name-sort.ts": "5aafddf218c453276dcf1afdccf9cd7f82c50160f5df2dd6d1b2779ce0c0cc4a",
+ "src/shared/clipboard-text.ts": "50f3155063244d6d12ac1493c80029a75df256c031f986f76da64a94152d0c38",
+ "src/shared/cross-platform-path.ts": "d72a91065f535824b17f2d3285f45f6d2f40ec2a2ac7ffb4ae17edaa4f9a97f3",
+ "src/shared/event-loop-yield.ts": "d291b71f09eb88f24a849d0ae310f946deb7f93b0b6b490b6ea5a605ab7a53cf",
+ "src/shared/utf8-byte-limits.ts": "01574b287b2d6ab0758112887e356c0d270b25db1b72651925ba8329eb4224e6",
+ "src/relay/dispatcher-frame-codec.ts": "2728b1e9e8465350c23cede5b64287db77a3d90488d8f8b1e5721bc69d7af7a9",
+ "src/shared/timer-delay.ts": "7e529ed30d1b25521f5d72d7c2a6d05d16efe66faf2619b859d67b330cca767f",
+ "src/shared/skill-install-failure.ts": "571ffbaad47304bbdef294e6445d70d179db40495005fdd0ce385491666ec4eb",
+ "src/shared/terminal-unavailable-cause.ts": "b6ce6d4b5b666ef72d8403883d2cc167f2998c524a17155638c261000c424e91",
+ "src/relay/dispatcher-writer-sink.ts": "12931e899bd882347b72cd03f3690e8d0e94bf2aa1ce9a560112f52cfdc14405",
+ "src/relay/dispatcher-writer-lane-scheduler.ts": "8b54b850f8aa88944160b796e3b357fbbc618c782590b4baf6444eda77bd5e5e",
+ "src/relay/dispatcher-writer-drain-arm.ts": "c9f1582197d0bb9ea30793f0c792a176ada3f25fb79e03474a70d084920d0416",
+ "src/relay/dispatcher-writer-admission.ts": "12e05ba04de5687c0a0db1e44eddf342cb0c21b9653eef2aeff7b5ccd2039797",
+ "src/shared/wsl-paths.ts": "1d9dcf5a1ff6693c02ff60a6b074eb2ebb7e83bda12aceba7e0b208d410b6d1a",
+ "src/relay/dispatcher-capacity-signals.ts": "125a94f04f8b3102956231dc800281ed7ee9bb538b2b93f005825c2dd59e5c63",
+ "src/shared/runtime-capability-degradation.ts": "fc9a5d3814c390c1296ecf72d5ef317b8b8624ea2578e4ceb2b32ee642b13a3f",
+ "src/relay/dispatcher-client-lifecycle.ts": "6884223ddb2be888cfd437ca1490e14a4c95655c5c831e6812ce4a7876e9c18b",
+ "src/relay/dispatcher-client-state.ts": "8cdabcb8df6b16b7cc84d8a33f5171cca1807b6d9dea4b374e3c2bb4fc10bfdb",
+ "src/relay/legacy-relay-publication-ledger.ts": "153926b90d370669d91fd9a59d246f63ed0c01f2aec6e8b7a890a0d0ad7378ba",
+ "src/relay/client-request-aborts.ts": "a4f458ce767c5315aa01fa9cc8c0a3008dcb445481a401462f14ec3dbbd9e20c"
+ },
+ "observedReaderSha256": "333b0ba796edbd0a07b483cc65fb9f0c46f6f5488361bce08c488ea72543825a",
+ "controls": [
+ {
+ "name": "held-metadata-foreign-history",
+ "readers": 4,
+ "entries": [0, 0, 0, 0],
+ "wrappers": 0,
+ "uniqueParams": 0,
+ "logicalBase64BytesByUniqueParams": 0,
+ "sharedAcrossReaders": false,
+ "decodedTransferBytes": 33554432,
+ "peakRegisteredStreams": 1,
+ "maxConcurrentStreams": 16,
+ "ackWindow": 4,
+ "ackCount": 128,
+ "observedHeapDelta": -663256,
+ "released": true
+ },
+ {
+ "name": "ordinary-completion",
+ "passed": true
+ },
+ {
+ "name": "transport-disposal",
+ "passed": true
+ },
+ {
+ "name": "metadata-request-deadline",
+ "milliseconds": 30000,
+ "relayContextAborted": true,
+ "released": true
+ },
+ {
+ "name": "unpaced-relay",
+ "passed": true
+ },
+ {
+ "name": "real-pump-credit-window",
+ "chunksBeforeAck": 4,
+ "totalChunks": 6
+ },
+ {
+ "name": "actual-stream-capacity",
+ "slots": 16,
+ "rejectedSeventeenth": true,
+ "admittedAfterCompletion": true
+ },
+ {
+ "name": "saturated-writer-metadata-order",
+ "wireOrder": ["probe.prime", "response", "fs.streamChunk", "fs.streamChunk", "fs.streamEnd"]
+ },
+ {
+ "name": "same-turn-response-and-own-frames",
+ "passed": true
+ },
+ {
+ "name": "canonical-crlf-source-control",
+ "reads": 66,
+ "passed": true
+ }
+ ],
+ "artifactHashes": {
+ "sources.cjs": "790ef573e61fbb7f68741d1e1cfb0e4b4c79a2dde4292e7ec9dc8dcf1d94940f",
+ "relay-fixture.mjs": "9856e17d83b812fb6b6717cf8207ccc808165c517df8d5c76bc020e0e6f51079",
+ "scenario.test.mjs": "7a619c631403d0ab03610171fc6109a9b52cde2d23b9d022354c3d6bb1b154af",
+ "vitest.config.mjs": "4ef63c6eba6d8e443f18f787bceb0b1f40b90ee750d63a3b27239ed05bf5d849",
+ "before.config.mjs": "a0a8ec50388d194d60cdf7019bba18fffb2c4691404924c3675757d3b3984962",
+ "fix.patch": "9681d47063d4b76bc4f9567eacf5dddb3ec221b715ce0bedddfcb493e0558fc6",
+ "main-context.patch": "4ef0bf173e6575a548b1d217248432fedbcfd68bcb350980e73987df3aba81e9",
+ "source-versions.json": "7df5afb4523280364b1eecaf465131ac94822fbb868dc4aaddb42586dff9f21d"
+ }
+}
diff --git a/src/main/providers/ssh-filesystem-provider-stream.test.ts b/src/main/providers/ssh-filesystem-provider-stream.test.ts
index dd3e004b362..82defb9d0cc 100644
--- a/src/main/providers/ssh-filesystem-provider-stream.test.ts
+++ b/src/main/providers/ssh-filesystem-provider-stream.test.ts
@@ -1,10 +1,12 @@
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import type { SshMultiplexerRequestOptions } from '../ssh/ssh-channel-multiplexer'
import { SshFilesystemProvider } from './ssh-filesystem-provider'
import { SSH_FILE_STREAM_INACTIVITY_TIMEOUT_MS } from '../ssh/ssh-file-stream-inactivity-deadline'
import { publishSystemResume, publishSystemSuspend } from '../system-power-lifecycle'
type MockMultiplexer = {
request: ReturnType
+ _response: ReturnType
notify: ReturnType
onNotification: ReturnType
onNotificationByMethod: ReturnType
@@ -16,10 +18,22 @@ type MockMultiplexer = {
}
function createMockMux(): MockMultiplexer {
+ const response = vi.fn().mockResolvedValue(undefined)
const methodHandlers = new Map) => void>>()
const disposeHandlers = new Set<(reason: 'shutdown' | 'connection_lost') => void>()
return {
- request: vi.fn().mockResolvedValue(undefined),
+ _response: response,
+ request: vi.fn(
+ async (
+ method: string,
+ params?: Record,
+ options?: SshMultiplexerRequestOptions
+ ) => {
+ const result: unknown = await response(method, params)
+ options?.beforeResolve?.(result)
+ return result
+ }
+ ),
notify: vi.fn(),
onNotification: vi.fn(),
onNotificationByMethod: vi.fn(
@@ -69,15 +83,21 @@ describe('SshFilesystemProvider readFile streaming', () => {
vi.useRealTimers()
})
+ it('returns empty metadata and releases its stream listeners', async () => {
+ mux._response.mockResolvedValue({ totalSize: 0, isBinary: false, empty: true })
+ const result = await provider.readFile('/home/user/empty.txt')
+ expect(result).toEqual({ content: '', isBinary: false })
+ expect(mux._listenerCount()).toBe(0)
+ })
+
it('streams via fs.readFileStream and reassembles utf-8 text', async () => {
const text = 'hello world'
const totalSize = Buffer.byteLength(text, 'utf-8')
- mux.request.mockImplementation(async (method: string) => {
+ mux._response.mockImplementation(async (method: string) => {
if (method !== 'fs.readFileStream') {
throw new Error(`unexpected method ${method}`)
}
- // Why: setImmediate fires after the metadata-resolution .then has set
- // streamIdRef, ensuring subscribed handlers see a matching streamId.
+ // The relay schedules chunks after publishing metadata.
setImmediate(() => {
mux._emitMethod('fs.streamChunk', {
streamId: 1,
@@ -96,16 +116,19 @@ describe('SshFilesystemProvider readFile streaming', () => {
})
const result = await provider.readFile('/home/user/file.txt')
- expect(mux.request).toHaveBeenCalledWith('fs.readFileStream', {
- filePath: '/home/user/file.txt',
- flowControl: 'ack'
- })
+ expect(mux.request.mock.calls[0]?.slice(0, 2)).toEqual([
+ 'fs.readFileStream',
+ {
+ filePath: '/home/user/file.txt',
+ flowControl: 'ack'
+ }
+ ])
expect(result).toEqual({ content: text, isBinary: false })
})
it('falls back to legacy fs.readFile on -32601 method-not-found', async () => {
const legacyResult = { content: 'legacy', isBinary: false }
- mux.request.mockImplementation(async (method: string) => {
+ mux._response.mockImplementation(async (method: string) => {
if (method === 'fs.readFileStream') {
const err = new Error('Method not found') as Error & { code: number }
err.code = -32601
@@ -124,7 +147,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
it('rejects when chunk arrives out of order', async () => {
const totalSize = 256 * 1024 * 2
- mux.request.mockImplementation(async () => {
+ mux._response.mockImplementation(async () => {
setImmediate(() => {
mux._emitMethod('fs.streamChunk', {
streamId: 1,
@@ -144,7 +167,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
})
it('rejects when totalSize exceeds client cap without allocating', async () => {
- mux.request.mockResolvedValue({
+ mux._response.mockResolvedValue({
streamId: 1,
totalSize: 51 * 1024 * 1024,
isBinary: true,
@@ -156,7 +179,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
})
it('applies a caller binary cap before allocating the stream buffer', async () => {
- mux.request.mockResolvedValue({
+ mux._response.mockResolvedValue({
streamId: 2,
totalSize: 2,
isBinary: true,
@@ -172,7 +195,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
it('rejects on fs.streamError notification', async () => {
const totalSize = 1024
- mux.request.mockImplementation(async () => {
+ mux._response.mockImplementation(async () => {
setImmediate(() => {
mux._emitMethod('fs.streamError', {
streamId: 7,
@@ -193,7 +216,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
it('cancels and cleans up a stream that stalls after metadata', async () => {
vi.useFakeTimers()
- mux.request.mockResolvedValue({
+ mux._response.mockResolvedValue({
streamId: 9,
totalSize: 1,
isBinary: false,
@@ -213,7 +236,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
it('keeps a long stream alive while chunks continue arriving', async () => {
vi.useFakeTimers()
const chunkSize = 256 * 1024
- mux.request.mockResolvedValue({
+ mux._response.mockResolvedValue({
streamId: 10,
totalSize: chunkSize + 1,
isBinary: true,
@@ -246,7 +269,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
it('grants an active stream a fresh inactivity window after system resume', async () => {
vi.useFakeTimers()
- mux.request.mockResolvedValue({
+ mux._response.mockResolvedValue({
streamId: 11,
totalSize: 1,
isBinary: false,
@@ -276,7 +299,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
it('keeps metadata received during suspend paused until resume', async () => {
vi.useFakeTimers()
- mux.request.mockResolvedValue({
+ mux._response.mockResolvedValue({
streamId: 12,
totalSize: 1,
isBinary: false,
@@ -310,7 +333,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
it('rejects on chunk count mismatch at streamEnd', async () => {
const totalSize = 256 * 1024 * 3
- mux.request.mockImplementation(async () => {
+ mux._response.mockImplementation(async () => {
setImmediate(() => {
mux._emitMethod('fs.streamChunk', {
streamId: 1,
@@ -335,7 +358,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
// count matches (2), so the old code resolved with a zero-filled tail. The
// exact-length check must reject this.
const totalSize = 256 * 1024 * 2
- mux.request.mockImplementation(async () => {
+ mux._response.mockImplementation(async () => {
setImmediate(() => {
mux._emitMethod('fs.streamChunk', {
streamId: 1,
@@ -362,7 +385,7 @@ describe('SshFilesystemProvider readFile streaming', () => {
it('rejects a short non-final chunk before later chunks arrive', async () => {
const totalSize = 256 * 1024 * 2
- mux.request.mockImplementation(async () => {
+ mux._response.mockImplementation(async () => {
setImmediate(() => {
mux._emitMethod('fs.streamChunk', {
streamId: 1,
diff --git a/src/main/providers/ssh-filesystem-provider.test.ts b/src/main/providers/ssh-filesystem-provider.test.ts
index b9cb21c3354..a20dfb98d9b 100644
--- a/src/main/providers/ssh-filesystem-provider.test.ts
+++ b/src/main/providers/ssh-filesystem-provider.test.ts
@@ -77,14 +77,6 @@ describe('SshFilesystemProvider', () => {
})
})
- describe('readFile', () => {
- it('short-circuits on empty:true metadata without subscribing to chunks', async () => {
- mux.request.mockResolvedValue({ totalSize: 0, isBinary: false, empty: true })
- const result = await provider.readFile('/home/user/empty.txt')
- expect(result).toEqual({ content: '', isBinary: false })
- })
- })
-
describe('readTerminalArtifact', () => {
it('sends fs.readTerminalArtifact request with verification metadata', async () => {
mux.request.mockResolvedValue({ content: '{}', isBinary: false })
diff --git a/src/main/ssh/ssh-filesystem-stream-reader.ts b/src/main/ssh/ssh-filesystem-stream-reader.ts
index 568ab195dc8..8c5b8632fa7 100644
--- a/src/main/ssh/ssh-filesystem-stream-reader.ts
+++ b/src/main/ssh/ssh-filesystem-stream-reader.ts
@@ -74,13 +74,7 @@ export async function readFileViaStream(
let bytesReceived = 0
let settled = false
- // Why: chunk/end/error frames may arrive in the same dispatch tick as the
- // metadata response. Queue them until streamIdRef is set, then drain.
- type PendingFrame =
- | { kind: 'chunk'; params: Record }
- | { kind: 'end'; params: Record }
- | { kind: 'error'; params: Record }
- const pending: PendingFrame[] = []
+ // Install metadata during response dispatch, before adjacent stream frames.
let metadataReady = false
const inactivity = createSshFileStreamInactivityDeadline(() => {
@@ -229,23 +223,9 @@ export async function readFileViaStream(
fail(err)
}
- const drainPending = (): void => {
- while (!settled && pending.length > 0) {
- const frame = pending.shift()!
- if (frame.kind === 'chunk') {
- handleChunk(frame.params)
- } else if (frame.kind === 'end') {
- handleEnd(frame.params)
- } else {
- handleStreamError(frame.params)
- }
- }
- }
-
unsubscribers.push(
mux.onNotificationByMethod('fs.streamChunk', (params) => {
if (!metadataReady) {
- pending.push({ kind: 'chunk', params })
return
}
handleChunk(params)
@@ -254,7 +234,6 @@ export async function readFileViaStream(
unsubscribers.push(
mux.onNotificationByMethod('fs.streamEnd', (params) => {
if (!metadataReady) {
- pending.push({ kind: 'end', params })
return
}
handleEnd(params)
@@ -263,7 +242,6 @@ export async function readFileViaStream(
unsubscribers.push(
mux.onNotificationByMethod('fs.streamError', (params) => {
if (!metadataReady) {
- pending.push({ kind: 'error', params })
return
}
handleStreamError(params)
@@ -284,56 +262,67 @@ export async function readFileViaStream(
void mux
// Why: flowControl declares this client acks each chunk, letting a new
// relay pace the pump. Old relays ignore the extra param and flood.
- .request('fs.readFileStream', { filePath, flowControl: 'ack' })
- .then((rawMetadata) => {
- if (settled) {
- return
- }
- const metadata = rawMetadata as StreamMetadataResponse
- isBinary = metadata.isBinary
- isImage = metadata.isImage
- mimeType = metadata.mimeType
- resultEncoding = metadata.resultEncoding ?? RESULT_ENCODING_BASE64
+ .request(
+ 'fs.readFileStream',
+ { filePath, flowControl: 'ack' },
+ {
+ beforeResolve: (rawMetadata) => {
+ if (settled) {
+ return
+ }
+ const metadata = rawMetadata as StreamMetadataResponse
+ isBinary = metadata.isBinary
+ isImage = metadata.isImage
+ mimeType = metadata.mimeType
+ resultEncoding = metadata.resultEncoding ?? RESULT_ENCODING_BASE64
- if (metadata.empty) {
- succeed({
- content: '',
- isBinary: metadata.isBinary,
- ...(metadata.isImage !== undefined ? { isImage: metadata.isImage } : {}),
- ...(metadata.mimeType !== undefined ? { mimeType: metadata.mimeType } : {})
- })
- return
- }
+ if (metadata.empty) {
+ succeed({
+ content: '',
+ isBinary: metadata.isBinary,
+ ...(metadata.isImage !== undefined ? { isImage: metadata.isImage } : {}),
+ ...(metadata.mimeType !== undefined ? { mimeType: metadata.mimeType } : {})
+ })
+ return
+ }
- if (typeof metadata.streamId !== 'number') {
- fail(new StreamProtocolError('Metadata missing streamId for non-empty stream'))
- return
- }
+ if (typeof metadata.streamId !== 'number') {
+ fail(new StreamProtocolError('Metadata missing streamId for non-empty stream'))
+ return
+ }
- const cap = sshFileStreamReadCap(metadata.isBinary, limits)
- if (metadata.totalSize < 0 || metadata.totalSize > cap) {
- streamIdRef.current = metadata.streamId
- fail(
- new FileReadCapExceededError(
- `Reported totalSize ${metadata.totalSize} exceeds client cap ${cap}`
- )
- )
- return
- }
+ const cap = sshFileStreamReadCap(metadata.isBinary, limits)
+ if (metadata.totalSize < 0 || metadata.totalSize > cap) {
+ streamIdRef.current = metadata.streamId
+ fail(
+ new FileReadCapExceededError(
+ `Reported totalSize ${metadata.totalSize} exceeds client cap ${cap}`
+ )
+ )
+ return
+ }
- totalSize = metadata.totalSize
- totalChunks = totalSize === 0 ? 0 : Math.ceil(totalSize / STREAM_CHUNK_SIZE)
- try {
- buffer = Buffer.alloc(totalSize)
- } catch (err) {
- streamIdRef.current = metadata.streamId
- fail(new Error(`Failed to allocate ${totalSize} bytes: ${(err as Error).message}`))
- return
+ totalSize = metadata.totalSize
+ totalChunks = totalSize === 0 ? 0 : Math.ceil(totalSize / STREAM_CHUNK_SIZE)
+ try {
+ buffer = Buffer.alloc(totalSize)
+ } catch (err) {
+ streamIdRef.current = metadata.streamId
+ fail(new Error(`Failed to allocate ${totalSize} bytes: ${(err as Error).message}`))
+ return
+ }
+ streamIdRef.current = metadata.streamId
+ metadataReady = true
+ inactivity.reset()
+ }
+ }
+ )
+ // Why: beforeResolve is an optional hook; if a mux ever resolves without running
+ // it, metadata never installs and no deadline is armed. Fail instead of hanging.
+ .then(() => {
+ if (!settled && !metadataReady) {
+ fail(new StreamProtocolError('Metadata response resolved without stream identity'))
}
- streamIdRef.current = metadata.streamId
- metadataReady = true
- inactivity.reset()
- drainPending()
})
.catch((err) => {
fail(err as Error)
diff --git a/src/main/ssh/ssh-filesystem-stream-retention.test.ts b/src/main/ssh/ssh-filesystem-stream-retention.test.ts
new file mode 100644
index 00000000000..15400212f78
--- /dev/null
+++ b/src/main/ssh/ssh-filesystem-stream-retention.test.ts
@@ -0,0 +1,221 @@
+import { afterEach, expect, it, vi } from 'vitest'
+import { SshChannelMultiplexer } from './ssh-channel-multiplexer'
+import {
+ FileReadCapExceededError,
+ readFileViaStream,
+ StreamProtocolError
+} from './ssh-filesystem-stream-reader'
+import { SshFilesystemProvider } from '../providers/ssh-filesystem-provider'
+import {
+ encodeJsonRpcFrame,
+ MessageType,
+ parseJsonRpcMessage,
+ type JsonRpcMessage
+} from './relay-protocol'
+
+const muxes: SshChannelMultiplexer[] = []
+afterEach(() => {
+ for (const mux of muxes.splice(0)) {
+ mux.dispose()
+ }
+})
+
+function createConnection() {
+ let receive = (_data: Buffer): void => {}
+ let sequence = 1
+ const sent: JsonRpcMessage[] = []
+ const mux = new SshChannelMultiplexer({
+ write(data) {
+ if (data[0] === MessageType.Regular) {
+ sent.push(parseJsonRpcMessage(data.subarray(13)))
+ }
+ },
+ onData(callback) {
+ receive = callback
+ },
+ onClose() {}
+ })
+ muxes.push(mux)
+ return {
+ mux,
+ sent,
+ feed(...messages: JsonRpcMessage[]) {
+ receive(Buffer.concat(messages.map((message) => encodeJsonRpcFrame(message, sequence++, 0))))
+ }
+ }
+}
+
+async function collect(): Promise {
+ if (!global.gc) {
+ throw new Error('Retention test requires --expose-gc')
+ }
+ for (let turn = 0; turn < 8; turn += 1) {
+ await new Promise((resolve) => setImmediate(resolve))
+ global.gc()
+ }
+}
+
+function sendForeignFrames(connection: ReturnType): WeakRef