diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index b7832ba2d9e..6b1deaa72ec 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -888,6 +888,8 @@ jobs: src/shared/child-process/windows-cmd-shim-resolution.win32.test.ts src/main/agent-hooks/windows-hook-payload-delivery.test.ts src/main/agent-hooks/windows-direct-cmd-hook-command.test.ts + src/main/codex/windows-hook-command.test.ts + src/main/codex/windows-hook-upgrade.test.ts src/main/windows/windows-pty-job.win32.test.ts src/main/windows/windows-msys-job.win32.test.ts src/main/windows/windows-host-job.win32.test.ts diff --git a/config/scripts/pr-code-change-scope.mjs b/config/scripts/pr-code-change-scope.mjs index 3b39bb34275..3d412df7ba8 100644 --- a/config/scripts/pr-code-change-scope.mjs +++ b/config/scripts/pr-code-change-scope.mjs @@ -1,3 +1,5 @@ +import { readFileSync } from 'node:fs' +import { join } from 'node:path' import process from 'node:process' import { pathToFileURL } from 'node:url' @@ -223,6 +225,8 @@ const WINDOWS_PACKAGE_TESTS = [ 'src/shared/child-process/windows-cmd-shim-resolution.win32.test.ts', 'src/main/agent-hooks/windows-hook-payload-delivery.test.ts', 'src/main/agent-hooks/windows-direct-cmd-hook-command.test.ts', + 'src/main/codex/windows-hook-command.test.ts', + 'src/main/codex/windows-hook-upgrade.test.ts', 'src/main/windows/windows-pty-job.win32.test.ts', 'src/main/windows/windows-msys-job.win32.test.ts', 'src/main/windows/windows-host-job.win32.test.ts', @@ -259,6 +263,49 @@ const DESKTOP_IRRELEVANT_PREFIXES = [ '.github/workflows/mobile-android-release.yml' ] +const STATIC_ANALYSIS_AUDIT_SCRIPTS = [ + 'audit:code-quality:native', + 'audit:code-quality:type-aware', + 'audit:anti-slop' +] + +// Positional arguments of an oxlint invocation are the trees it lints. `--config` consumes the +// next token; every other flag here is valueless. +function oxlintScanRoots(command) { + const roots = [] + for (const segment of command.split('&&')) { + const tokens = segment.trim().split(/\s+/).filter(Boolean) + if (tokens[0] !== 'oxlint') { + continue + } + for (let index = 1; index < tokens.length; index += 1) { + if (tokens[index] === '--config') { + index += 1 + } else if (!tokens[index].startsWith('-')) { + roots.push(tokens[index]) + } + } + } + return roots +} + +// Why derived from the commands rather than listed here: `mobile/` is desktop-irrelevant for every +// other job, yet these audits lint it. A second, hand-maintained copy of "which trees the gate +// reads" is what let #20702 land violations no PR check ran, so read it off the argv instead. +function readStaticAnalysisScanRoots() { + const manifest = join(import.meta.dirname, '../../package.json') + const { scripts = {} } = JSON.parse(readFileSync(manifest, 'utf8')) + return [ + ...new Set( + STATIC_ANALYSIS_AUDIT_SCRIPTS.flatMap((name) => oxlintScanRoots(scripts[name] ?? '')) + ) + ] +} + +export const STATIC_ANALYSIS_SCAN_ROOTS = readStaticAnalysisScanRoots() + +const STATIC_ANALYSIS_SCAN_PREFIXES = STATIC_ANALYSIS_SCAN_ROOTS.map((root) => `${root}/`) + export function isDocsOnlyPath(file) { if (DOCS_ONLY_FILES.has(file)) { return true @@ -296,10 +343,15 @@ export function classifyPrJobs(changedFiles) { shouldRun && (forceAll || ALWAYS_ON_CODE_JOBS.has(job) || jobDetector(job)(changedFiles)) ]) ) + // Why outside should_run: a mobile-only diff is desktop-irrelevant and skips every job above, + // but the repo-wide audits lint mobile/, and skipping them lands the violation on main, where + // it then fails this same gate on every later PR's merge ref. + jobs.static_analysis = jobs.static_analysis || changedFiles.some(isStaticAnalysisScannedPath) return { should_run: shouldRun, native_cache_changed: shouldRun && (emptyDiff || changedFiles.some(isNativeCacheInputPath)), - mobile_dependencies: shouldRun && needsMobileDependencies(changedFiles), + mobile_dependencies: + (shouldRun || jobs.static_analysis) && needsMobileDependencies(changedFiles), ...jobs } } @@ -356,6 +408,13 @@ function isDesktopIrrelevantPath(file) { return matchesPrefix(file, DESKTOP_IRRELEVANT_PREFIXES) } +function isStaticAnalysisScannedPath(file) { + // Fail closed: roots we failed to parse must keep the gate, not silently drop it. + return ( + STATIC_ANALYSIS_SCAN_PREFIXES.length === 0 || matchesPrefix(file, STATIC_ANALYSIS_SCAN_PREFIXES) + ) +} + function isNativeCacheInputPath(file) { return NATIVE_CACHE_FILES.has(file) || matchesPrefix(file, NATIVE_CACHE_PREFIXES) } diff --git a/config/scripts/pr-code-change-scope.test.mjs b/config/scripts/pr-code-change-scope.test.mjs index e622dd8603a..6e39bd9b20a 100644 --- a/config/scripts/pr-code-change-scope.test.mjs +++ b/config/scripts/pr-code-change-scope.test.mjs @@ -7,7 +7,8 @@ import { classifyPrJobs, isDocsOnlyPath, PR_CHECK_JOBS, - shouldRunPrChecks + shouldRunPrChecks, + STATIC_ANALYSIS_SCAN_ROOTS } from './pr-code-change-scope.mjs' const projectDir = resolve(import.meta.dirname, '../..') @@ -327,11 +328,41 @@ describe('per-job path classification', () => { expect( classifyPrJobs(['src/main/index.ts', 'mobile/src/session/a.test.ts']).mobile_dependencies ).toBe(true) - // Why false: a mobile-only diff skips every desktop job, so the install step's own - // job never runs and claiming the install is needed contradicts should_run. - expect(classifyPrJobs(['mobile/package.json']).mobile_dependencies).toBe(false) + // Why true: a mobile-only diff still skips the desktop suite, but the repo-wide audits lint + // mobile/, so static analysis runs and its changed-code pass needs the mobile types. + expect(classifyPrJobs(['mobile/package.json']).mobile_dependencies).toBe(true) expect(classifyPrJobs(['mobile/package.json']).should_run).toBe(false) - expect(classifyPrJobs(['README.md', 'mobile/src/a.ts']).mobile_dependencies).toBe(false) + expect(classifyPrJobs(['README.md', 'mobile/src/a.ts']).mobile_dependencies).toBe(true) + }) + + // Why: `mobile/` is desktop-irrelevant for every other job, so a mobile-only diff used to skip + // the audits that do lint it. That is how #20702 landed two duplicate imports which then failed + // this gate on every later PR's merge ref until #20895 swept them. + it('runs static analysis for a mobile-only diff without dragging in the desktop suite', () => { + const result = classifyPrJobs([ + 'mobile/src/test-support/rpc-recording/adapters/push-registration-mount-adapters.ts' + ]) + expect(result.static_analysis).toBe(true) + expect(result.mobile_dependencies).toBe(true) + expect(result.should_run).toBe(false) + for (const job of ['typecheck', 'test', 'package', 'package_windows', 'git_compatibility']) { + expect(result[job], job).toBe(false) + } + }) + + // The ratchet: adding a tree to an audit command has to widen this trigger on its own. + it('runs static analysis for every tree the audit commands scan', () => { + expect(STATIC_ANALYSIS_SCAN_ROOTS).toEqual( + expect.arrayContaining(['src', 'config', 'tests', 'mobile']) + ) + for (const root of STATIC_ANALYSIS_SCAN_ROOTS) { + expect(classifyPrJobs([`${root}/changed-file.ts`]).static_analysis, root).toBe(true) + } + }) + + it('leaves diffs the audits never read out of static analysis', () => { + expect(classifyPrJobs(['README.md']).static_analysis).toBe(false) + expect(classifyPrJobs(['cloud/apps/relay/src/index.ts']).static_analysis).toBe(false) }) it('keeps unit-test-only diffs out of packaging', () => { diff --git a/docs/reference/agent-status-store.md b/docs/reference/agent-status-store.md index 2b3801008f6..343f2810ea7 100644 --- a/docs/reference/agent-status-store.md +++ b/docs/reference/agent-status-store.md @@ -2,8 +2,13 @@ ## Status -Proposed on 2026-09-09 as the follow-up to #19217. It lands in four steps, in -this order, each independently shippable: +The current boundary is PR 2A: structured sessions use the hook server's fully +scoped canonical store; unbound PTY/relay evidence remains in an isolated legacy +adapter. Do not remove the renderer bridge or its publication filters in this +slice: they still carry native-chat child rows. + +The sections below record the original 2026-09-09 rollout. Its PR 1a and PR 1b +have landed; its proposed PR 2/3 sequence is superseded by that boundary: 1. main-only: every producer writes into one store and `worktree ps` reads it, split into 1a (structured sessions join the store) and 1b (the runtime's @@ -11,9 +16,6 @@ this order, each independently shippable: 2. renderer: the sidebar becomes a subscriber and stops re-deriving rows; 3. shared: one worktree-status rollup and one freshness rule for every reader. -The PR that carries this document is PR 1a. Sections below are grouped under -the step that delivers them; PR 1a and PR 1b have landed. - ## The problem this solves Orca shows "what is this agent doing" in four places: the desktop sidebar, the diff --git a/docs/site/content/docs/editing/monaco.mdx b/docs/site/content/docs/editing/monaco.mdx index e5998c904e3..2baf82fdfaf 100644 --- a/docs/site/content/docs/editing/monaco.mdx +++ b/docs/site/content/docs/editing/monaco.mdx @@ -16,7 +16,7 @@ Files save on blur and after short idle periods. There is no "dirty" dot because ## Changes view mode -Toggle **Changes view mode** in any editor tab to flip the file into an in-tab HEAD-vs-working-tree diff without leaving your cursor position. Same shortcuts as the [Diff viewer](/docs/review/diff-viewer) — `n`/`p` to walk hunks, `s` to stage. Toggle again to return to the regular file view. +Toggle **Changes view mode** in any editor tab to flip the file into an in-tab HEAD-vs-working-tree diff without leaving your cursor position. Toggle again to return to the regular file view. ## Word wrap diff --git a/docs/site/content/docs/recipes/review-ai-diff.mdx b/docs/site/content/docs/recipes/review-ai-diff.mdx index 98aaa1db998..38ec8b52a73 100644 --- a/docs/site/content/docs/recipes/review-ai-diff.mdx +++ b/docs/site/content/docs/recipes/review-ai-diff.mdx @@ -7,8 +7,8 @@ Reviewing an AI diff well is the difference between shipping fast and shipping b ## Steps 1. Open the worktree's diff view. -1. Go file-by-file with `j` / `k`. For each hunk, ask: is the change necessary? is it minimal? does it match the rest of the file? -1. Drop comments with `c` on anything you want changed — full sentences work best. +1. Review each changed file. For each hunk, ask: is the change necessary? is it minimal? does it match the rest of the file? +1. Use **Annotate AI Diff** to leave comments on anything you want changed — full sentences work best. 1. When you've been through the whole diff, click **Send to agent**. Orca batches all comments into one prompt. 1. Watch the agent revise. The state dot will go yellow (waiting for more input) or green (working). 1. When it's idle, re-open the diff. Your comments are pinned; resolve the ones that are fixed and leave follow-ups on the rest. diff --git a/docs/site/content/docs/review/commit-push.mdx b/docs/site/content/docs/review/commit-push.mdx index 7afbcb813c6..4fbc09df4dd 100644 --- a/docs/site/content/docs/review/commit-push.mdx +++ b/docs/site/content/docs/review/commit-push.mdx @@ -6,7 +6,7 @@ You can commit, push, and open the review without leaving Orca. The commit panel ## Commit -1. Stage changes by hunk or by file from the diff. +1. Stage changed files from the Source Control panel. 1. Write a commit message in the bottom panel, or use **Generate with AI** when you want Orca to draft one from the staged changes. 1. Hit **Commit** (`Cmd-Enter` on macOS, `Ctrl-Enter` on Windows / Linux) when focus is in Source Control and the primary action is Commit. diff --git a/docs/site/content/docs/review/diff-viewer.mdx b/docs/site/content/docs/review/diff-viewer.mdx index 00f5f92660c..75925f078c6 100644 --- a/docs/site/content/docs/review/diff-viewer.mdx +++ b/docs/site/content/docs/review/diff-viewer.mdx @@ -11,7 +11,7 @@ Orca's diff viewer is designed for serious review of AI-generated code — not a - **Image diffs** — side-by-side, swipe, and onion-skin modes for binary images. - **HTML preview** — in **View all** / combined diffs, HTML sections that still exist in the working tree show **Open Preview to the Side** (eye) next to the always-visible open-file control. Preview opens the working-tree HTML in a side browser split. Deleted HTML and commit-only combined surfaces skip the eye. - **Merge-conflict UI** with three-way view and inline resolution. -- **Staging by hunk or line** — same as `git add -p` but visual. +- **File staging** from the Source Control panel. ## Scoping @@ -27,8 +27,4 @@ Combined diffs can show a collapsible file tree beside the hunks. Drag the tree' ## Keyboard shortcuts -- `j` / `k` — next / previous changed file. -- `n` / `p` — next / previous hunk. - `F7` / `Shift+F7` — next / previous change in the active editor. -- `s` — stage the hunk under the cursor. -- `c` — start a comment ([Annotate AI Diff](/docs/review/annotate-ai-diff)). diff --git a/mobile/rpc-foundation/goldens/aivault-history-scan-fulfilled.json b/mobile/rpc-foundation/goldens/aivault-history-scan-fulfilled.json index 326d896138b..57074c70d81 100644 --- a/mobile/rpc-foundation/goldens/aivault-history-scan-fulfilled.json +++ b/mobile/rpc-foundation/goldens/aivault-history-scan-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7add46922ba5486e56c8acd99a53d083b605f5d98f3cc44ee3cb350ec0406080", "scenarioSha256": "0431ac82cbb8c60b16f4432fd0da7cff665485d668e512b20fc1168ec63db3fe", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/aivault-history-scan-unsupported.json b/mobile/rpc-foundation/goldens/aivault-history-scan-unsupported.json index f933f5e5ebc..2960405c67d 100644 --- a/mobile/rpc-foundation/goldens/aivault-history-scan-unsupported.json +++ b/mobile/rpc-foundation/goldens/aivault-history-scan-unsupported.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7add46922ba5486e56c8acd99a53d083b605f5d98f3cc44ee3cb350ec0406080", "scenarioSha256": "e97c6db772a70ee1912419ac67835b6074aaf9a341d4360389a11465f08092c5", "platform": "darwin", 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 376d17d14ba..357b72daf89 100644 --- a/mobile/rpc-foundation/goldens/aivault-history-scan-worktrees-late.json +++ b/mobile/rpc-foundation/goldens/aivault-history-scan-worktrees-late.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7add46922ba5486e56c8acd99a53d083b605f5d98f3cc44ee3cb350ec0406080", "scenarioSha256": "10011c7c75e74d9c2e880c5458c9156264ae07e91956a80946ede1d4e684952a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/aivault-history-screen-listed.json b/mobile/rpc-foundation/goldens/aivault-history-screen-listed.json index 5a3a0e261eb..184afdfc7fa 100644 --- a/mobile/rpc-foundation/goldens/aivault-history-screen-listed.json +++ b/mobile/rpc-foundation/goldens/aivault-history-screen-listed.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "694e6a331a7b0a742059ac6575ee8fd5cdeb3ba80abe58cbd216f6bc4a24e400", "scenarioSha256": "d52d3c5858298a4a6a90bd9a8986b780004477de105fe93f6303d9c303ffea38", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/aivault-history-screen-worktrees.json b/mobile/rpc-foundation/goldens/aivault-history-screen-worktrees.json index 2a7fd8cb954..de4e12dab52 100644 --- a/mobile/rpc-foundation/goldens/aivault-history-screen-worktrees.json +++ b/mobile/rpc-foundation/goldens/aivault-history-screen-worktrees.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "694e6a331a7b0a742059ac6575ee8fd5cdeb3ba80abe58cbd216f6bc4a24e400", "scenarioSha256": "f50f63c4e2a69793b3d322ed16089c4241ff6169d8f9549106480230fb8dd5e7", "platform": "darwin", 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 2e7646be211..5372c3778c5 100644 --- a/mobile/rpc-foundation/goldens/aivault-resume-launch-create-refused.json +++ b/mobile/rpc-foundation/goldens/aivault-resume-launch-create-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "ebf1bbc01ad7704fe79eff0969fcc2d4af8ebfa7c2410d2ed9d3ae8c6976b434", "platform": "darwin", 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 af441c0f6af..6d38c8bef80 100644 --- a/mobile/rpc-foundation/goldens/aivault-resume-launch-invalid-tab.json +++ b/mobile/rpc-foundation/goldens/aivault-resume-launch-invalid-tab.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "281ccf5a082f3788ae8bf19f742ea4baf35c20c78bc91d7d91873845583e1a91", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/aivault-resume-launch-locked.json b/mobile/rpc-foundation/goldens/aivault-resume-launch-locked.json index c1c71716023..67b1aa4f9a3 100644 --- a/mobile/rpc-foundation/goldens/aivault-resume-launch-locked.json +++ b/mobile/rpc-foundation/goldens/aivault-resume-launch-locked.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "941fcf202417c94ef546f5ee331983689d8b72397dac6f61dda944ca24abed9e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/aivault-resume-launch-sent.json b/mobile/rpc-foundation/goldens/aivault-resume-launch-sent.json index 7145918ca41..937314a6446 100644 --- a/mobile/rpc-foundation/goldens/aivault-resume-launch-sent.json +++ b/mobile/rpc-foundation/goldens/aivault-resume-launch-sent.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "f0ac1c996e5b1b4043e0a081978476c6c2dd8a5d517d5752857721205a588fb0", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/aivault-resume-prepare-refused.json b/mobile/rpc-foundation/goldens/aivault-resume-prepare-refused.json index 346df8229cc..591fd8f9fee 100644 --- a/mobile/rpc-foundation/goldens/aivault-resume-prepare-refused.json +++ b/mobile/rpc-foundation/goldens/aivault-resume-prepare-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "dc9926f95475413627315e1f1c96740ececa697c6a0a5e3c42e18cfd4d58448a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/aivault-resume-prepare-repin.json b/mobile/rpc-foundation/goldens/aivault-resume-prepare-repin.json index 26325d09eb4..4ddf2dadadb 100644 --- a/mobile/rpc-foundation/goldens/aivault-resume-prepare-repin.json +++ b/mobile/rpc-foundation/goldens/aivault-resume-prepare-repin.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "6719aea706086a68709894546f9595264407db2df94fa56180cb3c68b08aaa69", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/aivault-resume-prepare-skipped.json b/mobile/rpc-foundation/goldens/aivault-resume-prepare-skipped.json index ee4691d8355..e0f49c552a5 100644 --- a/mobile/rpc-foundation/goldens/aivault-resume-prepare-skipped.json +++ b/mobile/rpc-foundation/goldens/aivault-resume-prepare-skipped.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "3afaf2807506f5bde2159b367f34c6b777739d6aad564796d54ac0da05b5bd02", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/aivault-resume-prepare-unavailable.json b/mobile/rpc-foundation/goldens/aivault-resume-prepare-unavailable.json index 5e92416f32b..c61fcd8f6c5 100644 --- a/mobile/rpc-foundation/goldens/aivault-resume-prepare-unavailable.json +++ b/mobile/rpc-foundation/goldens/aivault-resume-prepare-unavailable.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "a5eedea5f551e0ca0e143292f1d9aa8920dd7af62a02d8e8777666ab3779c019", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/b1.json b/mobile/rpc-foundation/goldens/b1.json index ba10ea97012..9762c8e5ff5 100644 --- a/mobile/rpc-foundation/goldens/b1.json +++ b/mobile/rpc-foundation/goldens/b1.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca", "scenarioSha256": "23ffc912a432dcd3ff70be1903a8d518cf85634f27a2be6d21585963e338e7e3", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/b2.json b/mobile/rpc-foundation/goldens/b2.json index 15690be0114..2e163cf7b71 100644 --- a/mobile/rpc-foundation/goldens/b2.json +++ b/mobile/rpc-foundation/goldens/b2.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab", "scenarioSha256": "b31992be2f91bd61fbe1b8a5400da3b7a56753564b0b0b2b38bc5d549812d693", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/b3.json b/mobile/rpc-foundation/goldens/b3.json index 8cd636faa25..145b0fa8021 100644 --- a/mobile/rpc-foundation/goldens/b3.json +++ b/mobile/rpc-foundation/goldens/b3.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab", "scenarioSha256": "130e493fcd7765e037405f59e6cc78a0cc1793b1ae092cad933ff9d5a9df8b7a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/browser-dialog-accepted.json b/mobile/rpc-foundation/goldens/browser-dialog-accepted.json index bcafd502daa..2324dbf85a8 100644 --- a/mobile/rpc-foundation/goldens/browser-dialog-accepted.json +++ b/mobile/rpc-foundation/goldens/browser-dialog-accepted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "95f377bc4d8bf1248cafed26b2e9f425ad37e8d3c99e354bd6a8c67eb9bd9b1b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/browser-dialog-dismissed.json b/mobile/rpc-foundation/goldens/browser-dialog-dismissed.json index 077dc1ece0f..8e9fb59493c 100644 --- a/mobile/rpc-foundation/goldens/browser-dialog-dismissed.json +++ b/mobile/rpc-foundation/goldens/browser-dialog-dismissed.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "5071188ee492a4ced5be793b2dab32baa9750ee6535128635f274fd79198e2f1", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/browser-keyboard-input.json b/mobile/rpc-foundation/goldens/browser-keyboard-input.json index 3f67ecead74..5a7b176dac7 100644 --- a/mobile/rpc-foundation/goldens/browser-keyboard-input.json +++ b/mobile/rpc-foundation/goldens/browser-keyboard-input.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "eb2294c30af70ebc2bac092dc5105249ae8cf1941f750406622f7ff6dd70cc1b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/browser-pointer-click-accepted.json b/mobile/rpc-foundation/goldens/browser-pointer-click-accepted.json index f3fb255e09a..3fd5a4a6ef4 100644 --- a/mobile/rpc-foundation/goldens/browser-pointer-click-accepted.json +++ b/mobile/rpc-foundation/goldens/browser-pointer-click-accepted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "73faa87b359a11959543542016295bb6b36a10934dd99ad5c1a77a4290a608cd", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/browser-pointer-click-fallback.json b/mobile/rpc-foundation/goldens/browser-pointer-click-fallback.json index e235a455769..80bc7ec3ee9 100644 --- a/mobile/rpc-foundation/goldens/browser-pointer-click-fallback.json +++ b/mobile/rpc-foundation/goldens/browser-pointer-click-fallback.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "20779e28880cf62340bc34cef8f40a49311e11262ac069df909743da9b5500ff", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/browser-wheel-scrolled.json b/mobile/rpc-foundation/goldens/browser-wheel-scrolled.json index e7a97f34f91..f4a658ae6c7 100644 --- a/mobile/rpc-foundation/goldens/browser-wheel-scrolled.json +++ b/mobile/rpc-foundation/goldens/browser-wheel-scrolled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "e1bc21248ccff45ff217e385a51618b6f5724c037bfbefa03bb76a48dd4d793b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/clipboard-image-attachment-anonymous.json b/mobile/rpc-foundation/goldens/clipboard-image-attachment-anonymous.json index da4d2d0a95d..4deb7cf3955 100644 --- a/mobile/rpc-foundation/goldens/clipboard-image-attachment-anonymous.json +++ b/mobile/rpc-foundation/goldens/clipboard-image-attachment-anonymous.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "d4031721b16d7c281c544e7b2eef774fd20dda1890d7ebaadcbbb1eda4d276fd", "platform": "darwin", 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 18c69a92794..7f712f04a12 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "ea04d03c15d3cb94be7fe111a8a6219c4e0304095679bbae62af623f5b36c9f4", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/clipboard-image-attachment-cancelled.json b/mobile/rpc-foundation/goldens/clipboard-image-attachment-cancelled.json index 0b3b629db1e..53b1b977821 100644 --- a/mobile/rpc-foundation/goldens/clipboard-image-attachment-cancelled.json +++ b/mobile/rpc-foundation/goldens/clipboard-image-attachment-cancelled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "e6be7d5dd6b4f5083627a3ba864b1b040d71bf72b60ad940b7d0d575964a7b80", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/clipboard-image-attachment-pasted.json b/mobile/rpc-foundation/goldens/clipboard-image-attachment-pasted.json index 7afa7a329af..f3d23f0e23d 100644 --- a/mobile/rpc-foundation/goldens/clipboard-image-attachment-pasted.json +++ b/mobile/rpc-foundation/goldens/clipboard-image-attachment-pasted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "60273f74d8fe869723cbbd1a459d7d789a92e07a0f1e9444b42e2d7767e5bec1", "platform": "darwin", 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 889c693ee63..b86ac2409f1 100644 --- a/mobile/rpc-foundation/goldens/clipboard-image-attachment-upload-refused.json +++ b/mobile/rpc-foundation/goldens/clipboard-image-attachment-upload-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "e7f492523421873f045726e15ec95eac26d43f7e971a33fd89ec1a9749492987", "platform": "darwin", 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 eac8ff687f3..cd5bd5f611c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "195c2f15d81c70012ea88750ab3f84bfe512f7e422f7d2d09fb7919bd9cfd85a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/clipboard-image-upload-chunked.json b/mobile/rpc-foundation/goldens/clipboard-image-upload-chunked.json index 742ff76673b..e99f7c21079 100644 --- a/mobile/rpc-foundation/goldens/clipboard-image-upload-chunked.json +++ b/mobile/rpc-foundation/goldens/clipboard-image-upload-chunked.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "160101326d39705c2036c12646ff6b13d997a1cf91bdc86e5e29279ba31867e4", "platform": "darwin", 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 71cbd280a63..3f8f2b14d97 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "89ffa843d08ee27dd44b7bba507ce84661b0df73c35f7a8c273e004604710dc9", "platform": "darwin", 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 e1d04a5943e..377c54e31c9 100644 --- a/mobile/rpc-foundation/goldens/clipboard-image-upload-start-refused.json +++ b/mobile/rpc-foundation/goldens/clipboard-image-upload-start-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "bf0227939c2d41d6a1ebc5b07a31196043e78f1580811bd32ec6fc5f447f5934", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/codex-reset-credit-consumed.json b/mobile/rpc-foundation/goldens/codex-reset-credit-consumed.json index 540a5d5f380..d8fb61a198a 100644 --- a/mobile/rpc-foundation/goldens/codex-reset-credit-consumed.json +++ b/mobile/rpc-foundation/goldens/codex-reset-credit-consumed.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "76b53dea504a688493843e23e8e7d052fc196f559bb1e2579d0fd38bf3156d0e", "scenarioSha256": "00260be9809576607ac91bfacd9fa6cc4f8a190c6b88804c977ea07d36d7162e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/codex-reset-credit-resumed.json b/mobile/rpc-foundation/goldens/codex-reset-credit-resumed.json index 6dbb5b74a2a..ce834ec5693 100644 --- a/mobile/rpc-foundation/goldens/codex-reset-credit-resumed.json +++ b/mobile/rpc-foundation/goldens/codex-reset-credit-resumed.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "76b53dea504a688493843e23e8e7d052fc196f559bb1e2579d0fd38bf3156d0e", "scenarioSha256": "d85a4031b701e563941afcdd7375cf78a1ee1487a0dab722f8516c2bc8d3dcee", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/components-codex-capability.json b/mobile/rpc-foundation/goldens/components-codex-capability.json index 562910e3da3..461021da56d 100644 --- a/mobile/rpc-foundation/goldens/components-codex-capability.json +++ b/mobile/rpc-foundation/goldens/components-codex-capability.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", "scenarioSha256": "88570b9d2376863c7f88d7ed8c745a5fb771deddbc7409f8944fa861dd4bdce9", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/components-setup-ask.json b/mobile/rpc-foundation/goldens/components-setup-ask.json index 619eaabdedc..9c2d9ee45a6 100644 --- a/mobile/rpc-foundation/goldens/components-setup-ask.json +++ b/mobile/rpc-foundation/goldens/components-setup-ask.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", "scenarioSha256": "d4052f119c7ed68dc922c8beeb0074701f1532b10e48e284fb71aa165a17e437", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/components-target-local.json b/mobile/rpc-foundation/goldens/components-target-local.json index bf634188855..c1fd65677b8 100644 --- a/mobile/rpc-foundation/goldens/components-target-local.json +++ b/mobile/rpc-foundation/goldens/components-target-local.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", "scenarioSha256": "2e0d3021621698b63117e250dd5e9762b5bfb3dc1911e27c510e9539bd2ee6c9", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/components-target-ssh.json b/mobile/rpc-foundation/goldens/components-target-ssh.json index a7570e3b837..1bb8e62824b 100644 --- a/mobile/rpc-foundation/goldens/components-target-ssh.json +++ b/mobile/rpc-foundation/goldens/components-target-ssh.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", "scenarioSha256": "82b891c7a7a2f255e2d22a372ee6112c9cc1f650259244e87f2e8c1356e97e5f", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/diff-review-branch-compare.json b/mobile/rpc-foundation/goldens/diff-review-branch-compare.json index 6f604b37b8a..85179948930 100644 --- a/mobile/rpc-foundation/goldens/diff-review-branch-compare.json +++ b/mobile/rpc-foundation/goldens/diff-review-branch-compare.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "b7579013e65f0f5fe503c10cf2294cb9d4ac1938108275de001db6e02cf2cc21", "platform": "darwin", 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 bef96f7774c..b5b4a6441dc 100644 --- a/mobile/rpc-foundation/goldens/diff-review-branch-file-diff.json +++ b/mobile/rpc-foundation/goldens/diff-review-branch-file-diff.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "6c71b0f217a464dffbc6f5736605b840edac74ebaf0664edc0ab85984bb64328", "platform": "darwin", 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 d06160685b9..17f6daead41 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "3e7fa054f77587b9ac24b6732a9926273b0f2ff35a266e633d0ccd1dada932cc", "platform": "darwin", 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 9b2d93aa602..19014e07dfb 100644 --- a/mobile/rpc-foundation/goldens/diff-review-refused-file-diff.json +++ b/mobile/rpc-foundation/goldens/diff-review-refused-file-diff.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "d1b04fe2945a2799ac8465d8fd9e45ab790ae29b401a0cf4fef68ebc5fa3cc76", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/diff-review-snapshot.json b/mobile/rpc-foundation/goldens/diff-review-snapshot.json index 3cfad461b90..05c684147a1 100644 --- a/mobile/rpc-foundation/goldens/diff-review-snapshot.json +++ b/mobile/rpc-foundation/goldens/diff-review-snapshot.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "fa0a81462196458fdded5b7c00aa4e73975c2111afdd8dac115871490a481da2", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/diff-review-status-unavailable.json b/mobile/rpc-foundation/goldens/diff-review-status-unavailable.json index 30f605b401d..a224d17e26d 100644 --- a/mobile/rpc-foundation/goldens/diff-review-status-unavailable.json +++ b/mobile/rpc-foundation/goldens/diff-review-status-unavailable.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "182f37fbe6ae7c0694b50d603ecd4a03bc9a8c7c9738ebb775b47eb5f3b9660f", "platform": "darwin", 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 c90d7f54229..529ab03bbb3 100644 --- a/mobile/rpc-foundation/goldens/diff-review-worktree-file-diff.json +++ b/mobile/rpc-foundation/goldens/diff-review-worktree-file-diff.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "538b68485a2268d311fcc7e13ff1a3e446ba4aa010bc18633af8e938a6688257", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/file-tap-open-refused.json b/mobile/rpc-foundation/goldens/file-tap-open-refused.json index ad0c1e4244e..acc0e421420 100644 --- a/mobile/rpc-foundation/goldens/file-tap-open-refused.json +++ b/mobile/rpc-foundation/goldens/file-tap-open-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b", "scenarioSha256": "a927e85c3ae58cd3b017955fe28aeffec6a5471b51d782f116639a3aaf4af77d", "platform": "darwin", 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 7274b0584b8..9eee6cc7d48 100644 --- a/mobile/rpc-foundation/goldens/file-tap-opens-worktree-file.json +++ b/mobile/rpc-foundation/goldens/file-tap-opens-worktree-file.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b", "scenarioSha256": "297ea4075333e178ca20247eb0abf6600efb44fe2b33f5142d1c1cabffb5a2d3", "platform": "darwin", 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 d9c9906171e..15b8441b365 100644 --- a/mobile/rpc-foundation/goldens/file-tap-previews-absolute-artifact.json +++ b/mobile/rpc-foundation/goldens/file-tap-previews-absolute-artifact.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b", "scenarioSha256": "f1844c2608ce90250fddfc78c0b35bb1bf3647598a5ab2914eca0d8cb4403a38", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/file-tap-resolve-miss.json b/mobile/rpc-foundation/goldens/file-tap-resolve-miss.json index df491e24be7..f5db14383f0 100644 --- a/mobile/rpc-foundation/goldens/file-tap-resolve-miss.json +++ b/mobile/rpc-foundation/goldens/file-tap-resolve-miss.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b", "scenarioSha256": "0f76b96408081737b3d630ee837dbb80bcce6670b6acc4f1f7c033a69bd40533", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/file-tap-resolve-refused.json b/mobile/rpc-foundation/goldens/file-tap-resolve-refused.json index 7623d7fbe01..d28e8031a60 100644 --- a/mobile/rpc-foundation/goldens/file-tap-resolve-refused.json +++ b/mobile/rpc-foundation/goldens/file-tap-resolve-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b", "scenarioSha256": "1ada35966dfb65afbb9b3dc8139961b8f042e2d53241b9608a080d0e655a5987", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-explorer-legacy-fallback.json b/mobile/rpc-foundation/goldens/files-explorer-legacy-fallback.json index 7be60558a5b..47bd29253d5 100644 --- a/mobile/rpc-foundation/goldens/files-explorer-legacy-fallback.json +++ b/mobile/rpc-foundation/goldens/files-explorer-legacy-fallback.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "160421b989563424531fc893a115b95b399d1524ebaf1c91caa8b2862b52eb07", "scenarioSha256": "ec02d3f76085619fad35231e12654ec6e926e423c6799fd0df53708743000612", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-explorer-readdir.json b/mobile/rpc-foundation/goldens/files-explorer-readdir.json index 10cd4701af9..ee89991a073 100644 --- a/mobile/rpc-foundation/goldens/files-explorer-readdir.json +++ b/mobile/rpc-foundation/goldens/files-explorer-readdir.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "160421b989563424531fc893a115b95b399d1524ebaf1c91caa8b2862b52eb07", "scenarioSha256": "0b87a230cf1c4219e415c840a088502c8bda7cd2fb525bde1a83a5903d6fd96b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-ownership-local.json b/mobile/rpc-foundation/goldens/files-ownership-local.json index 66414330bb8..a4af6c96ec1 100644 --- a/mobile/rpc-foundation/goldens/files-ownership-local.json +++ b/mobile/rpc-foundation/goldens/files-ownership-local.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "8d24f52eb4194c3bc5d9f0dcabade6d7a09c066f79f911657647ed21dbecb3b1", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-ownership-ssh.json b/mobile/rpc-foundation/goldens/files-ownership-ssh.json index a0d5a2eb280..b43c556c81d 100644 --- a/mobile/rpc-foundation/goldens/files-ownership-ssh.json +++ b/mobile/rpc-foundation/goldens/files-ownership-ssh.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "4cd0be3a1c338b4b68211c717fd10738653c553fdb3b072db6706ff8175a8bd1", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json b/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json index ca17ac46f55..be2f16799e0 100644 --- a/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json +++ b/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "dd8b7a0916a84c7d763a163759c02210ae99f8fbccfccaa98796b8610c5da97c", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-preview-artifact-image.json b/mobile/rpc-foundation/goldens/files-preview-artifact-image.json index 4df06735ddb..861a977d94f 100644 --- a/mobile/rpc-foundation/goldens/files-preview-artifact-image.json +++ b/mobile/rpc-foundation/goldens/files-preview-artifact-image.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "d15c1f4e0f95b5c49a8f889d2d37458225293d7306c8439690d972d2df4c29c0", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json b/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json index f59e424e048..ff2e9a59240 100644 --- a/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json +++ b/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "055f3b45442c1736f10ee98c493e2ece1885fdb68d925ee627e2ba20853537e0", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-preview-worktree-image.json b/mobile/rpc-foundation/goldens/files-preview-worktree-image.json index 83f15493103..1ea43971fb9 100644 --- a/mobile/rpc-foundation/goldens/files-preview-worktree-image.json +++ b/mobile/rpc-foundation/goldens/files-preview-worktree-image.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "0ffaffb472b663e08a42317d799a2a000211dda5b127fb21cc64f04f73800130", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-preview-worktree.json b/mobile/rpc-foundation/goldens/files-preview-worktree.json index fb95b4e2668..7078d4fe368 100644 --- a/mobile/rpc-foundation/goldens/files-preview-worktree.json +++ b/mobile/rpc-foundation/goldens/files-preview-worktree.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "bcba4a7d9d929078c5ed80fc7e1acd45859d0b4c559767a919b0396dc6a70a3e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-save-blind.json b/mobile/rpc-foundation/goldens/files-save-blind.json index ff3f64f6409..d388094c768 100644 --- a/mobile/rpc-foundation/goldens/files-save-blind.json +++ b/mobile/rpc-foundation/goldens/files-save-blind.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "8b5c3e87d989966d7b252f19a537040cd5078ba9355a824e7e49af3424390a3e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-save-verified.json b/mobile/rpc-foundation/goldens/files-save-verified.json index eb3e439e468..804ec52d4a8 100644 --- a/mobile/rpc-foundation/goldens/files-save-verified.json +++ b/mobile/rpc-foundation/goldens/files-save-verified.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "6e124d16173074d851d58593b20b25889ed13a3d8021c08fbed53b85a7d3196e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json b/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json index 8ef9e8f23ef..4796e376e9b 100644 --- a/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json +++ b/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "b636221f719dae19a3af6772b687b0bcb300c9910645d23e98c309578ec1c5c5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/home-host-accounts.json b/mobile/rpc-foundation/goldens/home-host-accounts.json index 25ebd7840ab..891cc037827 100644 --- a/mobile/rpc-foundation/goldens/home-host-accounts.json +++ b/mobile/rpc-foundation/goldens/home-host-accounts.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c632fdbc4b730777ecb09f08bec14cca0586042b01ed99d40d0228806c7def4a", "scenarioSha256": "366426641e25542fcc6fcd351ece6a1ee897c8b3974c08eb7557eadfa4d3b06f", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/home-host-stats.json b/mobile/rpc-foundation/goldens/home-host-stats.json index 4b784c79548..8018778824f 100644 --- a/mobile/rpc-foundation/goldens/home-host-stats.json +++ b/mobile/rpc-foundation/goldens/home-host-stats.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b", "scenarioSha256": "bd5f4e5f24a29d96c4c98950691c6571918332f71ebb1f29ee97a9abc857ac29", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/host-view-settings-sync.json b/mobile/rpc-foundation/goldens/host-view-settings-sync.json index 433d5a6acff..34f517eacb0 100644 --- a/mobile/rpc-foundation/goldens/host-view-settings-sync.json +++ b/mobile/rpc-foundation/goldens/host-view-settings-sync.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b", "scenarioSha256": "1ee6031227fa3efd5b36841afa60f7b2264eacdd9c6126e5851d5acb39ffaadd", "platform": "darwin", 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 1a40ef839e9..69917559af3 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639", "scenarioSha256": "720add498c79425ca8efc9764fd5d8307fe33bc891842604cfc899f770b79811", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json b/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json index 249857e02be..e387a60cee5 100644 --- a/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json +++ b/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639", "scenarioSha256": "5dd5e7eabaabba1e471b13958f59891c3b28f553087c96315598c83a14ded7e7", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/host-worktree-refresh-stream.json b/mobile/rpc-foundation/goldens/host-worktree-refresh-stream.json index c3b29f06c24..2ae704d8dd2 100644 --- a/mobile/rpc-foundation/goldens/host-worktree-refresh-stream.json +++ b/mobile/rpc-foundation/goldens/host-worktree-refresh-stream.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "6ac11f1ab42fea3b718d9714e512a4e8a344aea66ae170fbe9ef2b5ae82dbe0a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/interruptions-inventory-lifecycle.json b/mobile/rpc-foundation/goldens/interruptions-inventory-lifecycle.json index 453d527bb60..381ab236251 100644 --- a/mobile/rpc-foundation/goldens/interruptions-inventory-lifecycle.json +++ b/mobile/rpc-foundation/goldens/interruptions-inventory-lifecycle.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca", "scenarioSha256": "d6c57a5153d915f0a0c0fd9e305cac70b41b7eb8be226fc865227ebf1821e5d1", "platform": "darwin", 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 429688c615e..92ac726083a 100644 --- a/mobile/rpc-foundation/goldens/interruptions-settings-bot-overrides-fulfilled.json +++ b/mobile/rpc-foundation/goldens/interruptions-settings-bot-overrides-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "2d5c6dea28aa1a7bb9e4aa14a4c8441527d9ad401ad30161f05ea1f8da836bb2", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/inventory-lifecycle.json b/mobile/rpc-foundation/goldens/inventory-lifecycle.json index 56104881fe3..bf3a9513d13 100644 --- a/mobile/rpc-foundation/goldens/inventory-lifecycle.json +++ b/mobile/rpc-foundation/goldens/inventory-lifecycle.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca", "scenarioSha256": "3471f5bcd6923c7b8ba3a737bb45b5239689deb78c00e85a828f38a6d6d68a05", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/inventory-repeat-query.json b/mobile/rpc-foundation/goldens/inventory-repeat-query.json index 9077f526229..c1f2823be02 100644 --- a/mobile/rpc-foundation/goldens/inventory-repeat-query.json +++ b/mobile/rpc-foundation/goldens/inventory-repeat-query.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca", "scenarioSha256": "73a468d5c7a51c2dbb7af2642f0050d05d861fce29295460c48d7c51f86bf57f", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/lifecycle-b3.json b/mobile/rpc-foundation/goldens/lifecycle-b3.json index fad1cbd80ed..5faf5b2cf2e 100644 --- a/mobile/rpc-foundation/goldens/lifecycle-b3.json +++ b/mobile/rpc-foundation/goldens/lifecycle-b3.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab", "scenarioSha256": "8be12d116865d27e8dfd37921d2c723d63da101ec1197b1f5b2d9510838e1943", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/lifecycle-inventory-lifecycle.json b/mobile/rpc-foundation/goldens/lifecycle-inventory-lifecycle.json index 6e5565492ea..e7874c88467 100644 --- a/mobile/rpc-foundation/goldens/lifecycle-inventory-lifecycle.json +++ b/mobile/rpc-foundation/goldens/lifecycle-inventory-lifecycle.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca", "scenarioSha256": "46bbafcc57fe2e3aee41a14bc26a0375b7b56e58030705fe4c28841a272b2560", "platform": "darwin", 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 c8a77bd38d2..e7905ab0174 100644 --- a/mobile/rpc-foundation/goldens/lifecycle-settings-bot-overrides-fulfilled.json +++ b/mobile/rpc-foundation/goldens/lifecycle-settings-bot-overrides-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "eb80283956c93849778f23cbabf1dbf83b72744197af4f6f50335b2fc1590d87", "platform": "darwin", 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 8f31197cae4..ef0c3b4286a 100644 --- a/mobile/rpc-foundation/goldens/lifecycle-settings-task-hydration-fulfilled.json +++ b/mobile/rpc-foundation/goldens/lifecycle-settings-task-hydration-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "3a8eab831602443d320ca0aa0f35dc269d8d511e76bdae8fd025c433561d068d", "platform": "darwin", 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 07f792808b1..6a1fa60b985 100644 --- a/mobile/rpc-foundation/goldens/lifecycle-settings-workspace-context-fulfilled.json +++ b/mobile/rpc-foundation/goldens/lifecycle-settings-workspace-context-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "136fb1d8d5925ad12ba22f4dd6c72573a9ad03b6a6ec8308668f0d9cd71aa36d", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/linear-select-workspace.json b/mobile/rpc-foundation/goldens/linear-select-workspace.json index 53cfe7cf4fe..ad0aa4626bb 100644 --- a/mobile/rpc-foundation/goldens/linear-select-workspace.json +++ b/mobile/rpc-foundation/goldens/linear-select-workspace.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b65996c152b632d553a31e07e31ea5c76f998eada42cf0966923d730da21908f", "scenarioSha256": "b6eb40d9a91c89179483afec93fbc121b99ef679d3b2433575b26694d0c577d5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/live-worktree-name-stream.json b/mobile/rpc-foundation/goldens/live-worktree-name-stream.json index 76fb3256322..e554eeb4ebe 100644 --- a/mobile/rpc-foundation/goldens/live-worktree-name-stream.json +++ b/mobile/rpc-foundation/goldens/live-worktree-name-stream.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "056abf42b34537025fed30a4401bd465c93bc21558babb826f21b5c803b487eb", "platform": "darwin", 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 a8c6a7e1d22..132eca4b8df 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6", "scenarioSha256": "211e3780edc0ff5fa0529c0de0e8bc2fd746a19c8a6b4e49900f6c4e56d53f7c", "platform": "darwin", 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 9195bdf4f80..6b5e0823d57 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7add46922ba5486e56c8acd99a53d083b605f5d98f3cc44ee3cb350ec0406080", "scenarioSha256": "efb8d1cd2a2ff0ade4cdc48a1aacec565e33b405bbe95c100b86534cdde49740", "platform": "darwin", 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 27d10f033be..ed60962db84 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "694e6a331a7b0a742059ac6575ee8fd5cdeb3ba80abe58cbd216f6bc4a24e400", "scenarioSha256": "30e00c0d94413aab61b164fb9a658e526448addc4c42fd8892b1c28335d30beb", "platform": "darwin", 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 8b93ecd28d6..e20a56dc2f4 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "694e6a331a7b0a742059ac6575ee8fd5cdeb3ba80abe58cbd216f6bc4a24e400", "scenarioSha256": "b146be741484f2a6dca25e97f52b9ed10f8a2b28bd00e6b56acffbcd82136b2f", "platform": "darwin", 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 26f939f28ce..2ef1f3bb057 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "694e6a331a7b0a742059ac6575ee8fd5cdeb3ba80abe58cbd216f6bc4a24e400", "scenarioSha256": "5365449c24d789c6c01604b520b795502d0bec352032686efecd121fc4497f96", "platform": "darwin", 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 761a8727752..503a13222c9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7add46922ba5486e56c8acd99a53d083b605f5d98f3cc44ee3cb350ec0406080", "scenarioSha256": "a5698ca720dad08561a509c9c18f7586611fc68c58bd86791f4fcefc7915ab1f", "platform": "darwin", 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 bce7b0d6ca2..18c5d90b86b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "f721ab4438c4183927ce5ebc5fd6f1f18414701a5fa3b2807c359785829962a3", "platform": "darwin", 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 b321931a613..fbdfe949600 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "aa812132ede83e4aced73a644e996df82a38bfc70ead70a5db2e9af8a8b1bfff", "platform": "darwin", 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 2b992405563..0301ddf3e1d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2f43211e4084c0493bd02ec98868acf53a4c748f89a70cd9657c9c3ee87b12fb", "scenarioSha256": "c3b400967b0b1c7bd3f82a278f4b10855ade72d384922ec4d34795c7bb20084d", "platform": "darwin", 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 8a72be96d22..ebc30c2a092 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "9cae732e4227d4c2fe874a5fb2e104552c16cbc91b59523de8fd46454660cde8", "platform": "darwin", 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 80556e3b814..21c017f65fb 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "fc3411f3f4cb58b6a1338ea943f59446fda7819931814e9ab002e35e2de42462", "platform": "darwin", 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 4159ab764fc..012f94d3f65 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "c1df871e84d4399e9a447caaff244241933c0dfc7c3d5e114d022e54b0ed7ed4", "platform": "darwin", 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 96b833f3feb..03d07ca7053 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "74adcaa668164bc7430e9984f100988bf72975dc8ebbe6b52fac34367cf31a4d", "platform": "darwin", 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 f5c32a17b07..defbbb6d38d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "db84000f262c6812db55b5f735ab7fe32c914e9ab52b9a7ccc0c21386b782298", "platform": "darwin", 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 4b90ce6892b..7df09816530 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "35ef15037791fa2e87456ee4585ddaaa00fbf5cde578d7c0b5df143cd40dd9a1", "platform": "darwin", 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 ea4c98e955a..a88d90a5d65 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "47868afdd6d593526ea6f0a0a1e19377ee8306ab70636f2dace0da9ef2454397", "platform": "darwin", 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 0d78a824372..d32aa6afc24 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "c1283bbfb340e968bbd4c86ac63489995d6191290751316228d27779dc6a2c55", "platform": "darwin", 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 0ff8b9bac9d..d16d64b3641 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55971752f963202d30160851197a301089b0f3ebd0c46725af1a461d8310d658", "scenarioSha256": "092777c9ce457dcae95eafbe083c70510580569ac74e31c0d4224ac94b9fad76", "platform": "darwin", 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 292836ca503..ed3653c3f60 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "fc690a2ac59a6fbcdc08f9b91e769cd793f5a48d9034a50c2d587ce0d0fca3d9", "platform": "darwin", 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 62ab5bb249f..5a2bdc2ba02 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "fa69748b6d0e29abc37757b48bcb22dac07af1686554200ceaf18b4e3d62e4ac", "platform": "darwin", 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 bd897e4be8c..62d078e9cf3 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "a4bea606723da4d4a86db6e04c46266801149a852a8861b15e637d5c0855c679", "platform": "darwin", 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 71f48dfb04f..45e1fcf91f4 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", "scenarioSha256": "06c2ad6d4b464f889a640be7a238f6d0ff7c54b0e93fb5ea22aaa856dadb0336", "platform": "darwin", 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 a9039d1eeff..9644633ae87 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "76b53dea504a688493843e23e8e7d052fc196f559bb1e2579d0fd38bf3156d0e", "scenarioSha256": "cc6de73be00be072f9a3b7fd63459fd1a529c45d0916a67d5fe6d90dbee61e91", "platform": "darwin", 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 a51a65b8ca4..67134b88e97 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", "scenarioSha256": "f88ee2f5d19b19cc53dca5180a9b5936a13a00a82e8a4636a5e895262b669dec", "platform": "darwin", 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 cd954415448..caf6ce5964b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", "scenarioSha256": "79a49cddf66935007afb9be8a30593b778f02237894e5fd4d2898b526fc125df", "platform": "darwin", 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 51e9d009a6c..238a8d43256 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", "scenarioSha256": "8b8f7fe7227d44330e216e0bf5d366c41b54d9bf76acfb24df2c1770984b9f27", "platform": "darwin", 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 e065550aebe..3335aa8d099 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", "scenarioSha256": "6832d23c6500e4fcb20abe7c53bc4f5abe72180dc0ad747a4907b82d99bc75d0", "platform": "darwin", 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 9e99666217b..0cf070e97c4 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "64c1772f0f95a3c43fbb14398a8804b2b4784f7f18874e4fd79767ae634c7faa", "scenarioSha256": "95f7dbb11bca7203d29bd13230d4a286f49ff20596535163094e1bff73e7f3cb", "platform": "darwin", 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 76aa62d959e..16d7cb719d9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", "scenarioSha256": "a844134d7bad3c7c12107d60dbd298f5cfba778703fb9dd0f7ad454615d26b07", "platform": "darwin", 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 478f4ce7785..f78fd1b026e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "160421b989563424531fc893a115b95b399d1524ebaf1c91caa8b2862b52eb07", "scenarioSha256": "38b5590173c1f6791d1b35c0f036e2f844ed4b0e39c880e8e376c5f314adaade", "platform": "darwin", 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 388c58477ed..487adf6577c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "160421b989563424531fc893a115b95b399d1524ebaf1c91caa8b2862b52eb07", "scenarioSha256": "8c1fa604104c5551b8418af225c9420b1292f0c55b392f847985947c66749959", "platform": "darwin", 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 94998b1d9b7..80070c5cab7 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "5815450e8d07f463423ca0bd8237830791c220234201abffc6fa13e698913516", "platform": "darwin", 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 a20cb69cf68..5665f930a65 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "b9cfb187224a4b42efe8ccfcd96145833730d135c4fffa345716f95991a4700f", "platform": "darwin", 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 585c3a04739..67fc5f95fd8 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "0bf3b17048bceb0bc8592405facd99cb8086274509206d9e55cd589a05d7415f", "platform": "darwin", 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 584b91171e6..09ce9040154 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "dbd20e271999641affbd4b52635c8864e25f08aa6db820a46d0773faa09770c6", "platform": "darwin", 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 acc92a4c3f2..a238bb5918d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "c4a09003352ba4e97a17ec4109cc125298cf7123b317265cc5eca06e8dcc0615", "platform": "darwin", 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 6fd223b127c..a49f6c57470 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "ecdeff2713e454925158dde09782713d76f39455729bb25688a6ffcfff154f30", "platform": "darwin", 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 a55e6ab88b1..99f7b57a5c7 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "1a4f7dff351be244712bedb8f495c83a531cfbfc5b5923267d1ed46bf2d6d11b", "platform": "darwin", 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 e84be78c0ea..ec8b4787e6a 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "8d443bda91fe5a1fa74910d525bb2ec40f639109bc71afbd42bccd949b3d463f", "platform": "darwin", 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 ddc821cf2dd..241c0482e9e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "65895c028637185238baf4fd4f1297c11f528a289fe8173a41c48dc5a0b37c26", "platform": "darwin", 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 c9c58f0ee3a..9994c1f7bd2 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "2ceca0ecd901fd78838fcbdc789cbb6b96f04674b850a0994c7611f5db804915", "platform": "darwin", 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 f2de9ebe86a..41b8a5c6d77 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", "scenarioSha256": "c4db2424b8a35fd97b3fea00b4dd91a3c8d50c6fb73795811ef5402e3d14f8df", "platform": "darwin", 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 9b173e3ee73..b2f40c033da 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b", "scenarioSha256": "73dbbb8b96662af57240194be4af5726697d402b624a807d003ab56fea04dbd7", "platform": "darwin", 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 fbc2246388c..1c2c55c0d31 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e20a76ecd5e820dc4797fb25307810af68b5ced996dba2b9599464a21b5cbe1b", "scenarioSha256": "ba8728e890e0e9c10ea163bd16f4f99fbc9727cd2f9c4ed69c56436d8bc29f89", "platform": "darwin", 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 208f70fe86f..c7428386ee3 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "5605a2984d7692aa80e5e38f804bdfed4b1ce8ac2102def5dc728b1a79dc1acf", "platform": "darwin", 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 1a5c427de53..19ccc099efc 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "ed0e97ead1aad0b45bdfc48f5fe4e498810d0cfee88f07d3c6228db56fda1dd9", "platform": "darwin", 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 96a2f500584..30fdc53c76d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "1db6919b94df3b8548838ff4c206fafa3a09ea096b17c04483f78f9321ccb1ba", "platform": "darwin", 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 384c3d25184..8f77f01910d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "22ea5279155ecf749aaab521ffd570221ac3169b177fc1daf85ef93a49d38260", "platform": "darwin", 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 ab3be703975..1f2064397c0 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "86254ed87ad3427d6ee4631d7348075039ba2d4d7496d59f27f03f78580f35a1", "platform": "darwin", 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 a6541f88294..dbe03d02c4b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "5009c22df7e74a850bcea41fc110ea7d7eb4bdada623837279f32eaa5149a9b8", "platform": "darwin", 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 b9a18ca60cd..26db7f186f3 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "485b2751006ee8fb4df28b228ea7adda85779feae83974eb0f7e795e31c500a1", "platform": "darwin", 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 658a0fa4fcc..22f93aa5bfc 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "0c8f09683408a919dd3ac2b7cd12197d8745882627134cde95ecee209575b027", "platform": "darwin", 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 2989bf6ef12..b61e1387d24 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "4f2b61df5e59d2efe81d467214a78132654035cbcb4d929385410b53f735c9fe", "platform": "darwin", 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 1609993ca39..cf206ef665e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "04b2052cce6f24d9e208c992f204355639409ddc9793b3044b394c0e38d3c284", "platform": "darwin", 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 0f5a6ee302d..0609d1a90a8 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "8f849437158296753a84a75dfdbaf69852bcdb6cdc6e8205496961ec16e4be21", "platform": "darwin", 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 af18b89509f..22b8717fa27 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "77eba7deff3f15e64795cdcbefd009abfcf2379e7293eefb1f154ca1e99f4d5d", "platform": "darwin", 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 4026f70e77d..b47ffc25632 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "2235d05e0d2c6f1a9518cfdd76870e303cccd35289d6a44334147b6a5b6b675e", "platform": "darwin", 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 711fb0f4356..f36af990a72 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "2cea87c339b35daf62c963092c01c6379db43f2ee4ca5cb2b5f817975b0caf65", "platform": "darwin", 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 4675a7765c2..2d16fe85652 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "78de11de556c91782590725819b22821732a12d3769f493d165c80bc7fcc1f53", "platform": "darwin", 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 15df994b9c4..502c90baab9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "ac7e91b4d35021eca63af8ce01f9a2c7959109e4cb824009881437cb94dbfe82", "platform": "darwin", 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 2521f2c66e0..6d5da052ecd 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "a85682e5009d634bf468b8dbe4f35a957988754ed9c2b07d57ad475c1590d1f6", "platform": "darwin", 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 701a31e1a38..c139f3e2877 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "30f321fcbfaf09505bc6e18e64c09ca49c0dcdb7c5e12c4e27c2429b3e1066ca", "platform": "darwin", 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 efbc0534666..a124ab763ed 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "507743a5925a37be32156b3d8df83ddb8e08c262d2c2f44bbd117dee4672bbc5", "platform": "darwin", 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 4f479638fed..51bb4d4bfde 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "6efca320cf31a1de988110004a9fb7b67fdad279a789e046ad6b5141b66e5bf1", "platform": "darwin", 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 8e572261143..b56649d29bb 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "c77d7c7a05ecb9b27180ef28ca63a28e1c1ca42db2bb54a468699da77281ae35", "platform": "darwin", 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 75007945cf0..0b84f378c63 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "3b3d3032b992fc7461b13de8a42512affa12fb018ad583898179a9934c13b414", "platform": "darwin", 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 a6dea343bc8..43729d664e8 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "4ebe865f874b0b4a813860ec7356b8dc214ea02f0a9036cb003efe863d89b83e", "platform": "darwin", 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 fd1da424274..274ac73f5c8 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "bc3350efc030f824fc21046aea8c6dc9a46993b6c75613c66874fde59af9171a", "platform": "darwin", 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 ae94ce1cc4e..02fded5e1e1 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "9171e982babc4e56852fe35bafa7a9f3aeda2be5bd4648f29aaa04ca7119d5d2", "platform": "darwin", 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 b1412bcfec4..e04f31e1cae 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "fe91d5518501a078dff3010e74c4b9d70122f88a629e384336cd1b6a84de36a8", "platform": "darwin", 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 c3f9053f93e..6533fce4341 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c632fdbc4b730777ecb09f08bec14cca0586042b01ed99d40d0228806c7def4a", "scenarioSha256": "047e4c8fb2c4b374406658ec3954ac00fda96928bdd999a33ab9867284ffb4a4", "platform": "darwin", 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 9e5534e1fa1..4682235ac53 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b", "scenarioSha256": "5518e08c1b20f0ddd4cb6bc81ff9af032b1a38daf24f3d3497bac5df8b2d0ec5", "platform": "darwin", 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 3840c03a2bd..401df9974a0 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "0604294e541a4b2c73e0501cfc393c84384342ffcae286211a657ca5bc5892b7", "platform": "darwin", 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 1b59bc3bcc5..749fe66be29 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "6d03d17a5711db33473611858b225e2ac42fe33d2a982fbb0defdbd1dce037d6", "platform": "darwin", 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 29715a89a6d..1901b9ad222 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "f36f11b3d69397bd98651fdad4614a4115098e23667e4dfc397c1d9ff2dc3186", "platform": "darwin", 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 ce32c9e01a0..3b70ea9aaf9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "a70fa323de86b706f05818f321095349ed55b265804ec0ebb54419314a3ca612", "platform": "darwin", 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 6363c2338f4..a8320771f06 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b", "scenarioSha256": "a9a3191e2e8c36870ce2769a7bb972813f435267fdc6ed9e42632a57a227bbd6", "platform": "darwin", 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 4557dd17f66..9a245a19d7f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b", "scenarioSha256": "30cbeff90a845ab5dd576e302156e859338357b608e87e9fadeddf18ae93d9ca", "platform": "darwin", 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 ddf211503aa..87ac752e06c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639", "scenarioSha256": "7e842584620018d5ec5560711d63a472302e8da80cfe65dfcd2952aebb509af2", "platform": "darwin", 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 aadf359b355..548f1ff45e3 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639", "scenarioSha256": "c47656a4ca21762e4b5a247ddf9a96efb746bec81e942ffa308a774bab1449e2", "platform": "darwin", 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 c6aaa82cf5a..74251ad0bcc 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639", "scenarioSha256": "054f1b1380fc6cfd4b0f4a85d6f143822a12a0a732d550dd85eef64a6556b3ba", "platform": "darwin", 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 d00d84bed21..712d8240e8c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "fcf5cdc7388457156dd81fe28a470f42fbabac7435ec5572cb19e209f410ca84", "platform": "darwin", 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 052949d8947..711bbdedbe5 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "26e666a57805f354602a5b3906a691b10c8d6db66c77acc96c67153279c515a7", "platform": "darwin", 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 664c7ea0121..66fa54f35c9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "08c25b6cb5bc12a7f67e858f229d15cf66b98b2ad4601b11f18c4c03f4a59669", "platform": "darwin", 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 2c64b2fa368..28dd0398916 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "ff9d1bfd6337607f3d3e8162692b589ecea4a32ae01b5ebb3c602f8f0a55642c", "platform": "darwin", 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 66420cc8988..46cd9cb8074 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "efeb9b248aeb98fac71c043d50afe0036cf804d3c11edfccd4e050fe8f3d8f9b", "platform": "darwin", 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 ec6a194e7de..36474b37f07 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "7b0d9ddcb8df83fc4e465aa6b0dcf05aa0d8f266cd4bb8651969cb8321bcf549", "platform": "darwin", 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 0214089c08c..6aa629c1d36 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "72c1f08739db1c0dfcd48adffaca582a3596116c1c377f95f7dab8b08b7e6cdc", "platform": "darwin", 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 90d2b757f65..474ebc39df5 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "1f002f900c1a3c92e8f7c72261579ee5015ec1529c003a1b32bcf3eaf98b672d", "platform": "darwin", 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 0bab2c91a6b..96cd5e25ecd 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "3a6487a07457e0e5aa6fc3fccfa43687acfb06d94334e621081728de937e4e8d", "platform": "darwin", 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 99783ab96e3..220102cef84 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "7355c45a707fa8a31f0999c4805a5b1dace4c65b727e711231f784b2f92c05ff", "platform": "darwin", 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 ea9adec43ac..cbe071bf71d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "45cda6757b76399d282d4b07992dab21bbb8236faadedba5e92eab8818e886bf", "platform": "darwin", 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 b05fb442173..e121d66672e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "0ca08d5e70e1780a6ee5c919491dcddb062a22623f803e9960a329825f274cbe", "platform": "darwin", 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 b751e0c144d..9f04ff2b422 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "658eb7bbf63b3a4b38eca0b1733e523962b6b6943644d65aab6f5c7e62534d6a", "platform": "darwin", 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 3bbb4176c79..cb7e6d525aa 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "75ba135731290bf734a5eef0b65f9ad8b7cac453c4e2006faac88a5da9dbe3a3", "platform": "darwin", 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 ed0436d69b3..d871f002d38 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "beb1161b98ffde8c5f1128e843766a1da3182d195f1f0a9012e12e5318ae01bc", "platform": "darwin", 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 7de59a77ecc..955a4844b81 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "6c4de90e2617d204e82ca5e65eb17fc397acbcbb9dc0ec18594d2a7739e3528b", "platform": "darwin", 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 8d156c22b6a..a1a3ce848bd 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca", "scenarioSha256": "4f6472fb7add960be9bcc8596a748264d7cb0755a782ebe9e85753ab1d1d5710", "platform": "darwin", 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 4c83a60da43..de1cdbcd1e2 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca", "scenarioSha256": "048c3ec55ec67d09d9b02e17822f1154adca577e57ffe6d3059102d552d2f759", "platform": "darwin", 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 89d5369a0f3..7a02545e263 100644 --- a/mobile/rpc-foundation/goldens/matrix-legacy-inventory-fresh-inventory.json +++ b/mobile/rpc-foundation/goldens/matrix-legacy-inventory-fresh-inventory.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca", "scenarioSha256": "ad458a3407e3f1303343b46a1308b43535abef2c9ed2f68db59157db5b91daa1", "platform": "darwin", 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 f756c9566b4..986d1c87c79 100644 --- a/mobile/rpc-foundation/goldens/matrix-legacy-inventory-old-inventory.json +++ b/mobile/rpc-foundation/goldens/matrix-legacy-inventory-old-inventory.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "262eaad263a45aa13ec5b27c12b59946b12c202474229fff7a5727dba6d702ca", "scenarioSha256": "52742d894d0ea53db89729101664a393b10794d9c2d2fe7b40b020643a13af81", "platform": "darwin", 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 37d08acff60..a5d9af66153 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab", "scenarioSha256": "8e00afc85e5b82d75bedecea0c748a3c8658cfc8545650e755c03f51fdc932d6", "platform": "darwin", 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 3873bd33021..6d0973038a7 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab", "scenarioSha256": "40289acce4a3542773f74681d255d67cfddadf6c42317928d6728f26a76f6cfb", "platform": "darwin", 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 a8848410173..e1a00e99e09 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b65996c152b632d553a31e07e31ea5c76f998eada42cf0966923d730da21908f", "scenarioSha256": "c7de1f6fc0895d4ddf1b87a83859da46c583f098e058f14c8f85d48120c80c40", "platform": "darwin", 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 12758a3a4fc..358927b8d8c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "f3fa2738875e15b640f21e56d3a0628333cd5b271242314b9c328822eec01d34", "platform": "darwin", 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 4354dac9e19..0874819ee2d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "24b9ef7c06386b8af8303cfb196d2f652e46759b40aadb7b6af5144c964ea179", "platform": "darwin", 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 6c39d463582..ea343e0935f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "e13633e6b76dce4aec343c391359adfd39430e91af1b183140fe4423316c81e1", "platform": "darwin", 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 8b8f09030cf..7a271fd2d8e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "0bbbff1a914ba146777515d6d971144cc62f29f2d484a264513a1ce0f48be96a", "platform": "darwin", 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 b137e72d4b0..56246753a70 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "2ed321bfdc419635734c37b0a1cc4f85d6d92766846e25a37bd547dfa3af8f72", "platform": "darwin", 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 23a925bcab9..e21079ffc6f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8e41c8624b9b6185e447cee3590a851ab88b6b1ee1d632af90e3a771a90310be", "scenarioSha256": "ab7efe1dc6ef2ddfffa69c88bcc936f43393968a2281bc0ebfc864be650e7af1", "platform": "darwin", 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 d404b5a4bca..d1fe1af271d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "88da63e9f56e02dbe8404471e23251f9b13fd00b1ab10c19aa15b3a73128a53e", "platform": "darwin", 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 008663cd1dd..f69c95f757e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "89023bb3ad07d59dba75f227addac9d6a138e52b11e8ed6a64515f2bb1989367", "platform": "darwin", 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 1bede4a3a26..d500b368feb 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "0478b692709ef0fe3cd75bf0d47fc27fcbb50ebc779e231537ba36638a0125f8", "platform": "darwin", 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 73ee6ed5d58..cf8fe7830c6 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "1305f50c6e838d89d0a9e65d9011d2a532a2f75f7b3aea73f9e33330214f5724", "platform": "darwin", 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 6c11e6ed4b0..2adfbd37322 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "860d3a80815ec68dc3fe2891a69888b80ec60fa205940e31f14643fb1097ead5", "platform": "darwin", 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 bd140db83b0..87583182d2c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "c4193d972250dbe72907dcd32b8300b22986edfa5eeb651268c3838835177c64", "platform": "darwin", 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 new file mode 100644 index 00000000000..6a6cb5a47df --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.getmissedsince-1.json @@ -0,0 +1,1251 @@ +{ + "operation": "notifications.desktop-stream", + "family": "notifications.desktop-stream", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4", + "scenarioSha256": "e13d3072f9a0ff4458ec4231013d29f7131144b52089914cd08914652a2e136b", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "065e1e640278": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-2", + "ok": false + } + } + }, + "268f8de77ee5": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "44703b46d7d2": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "4b3d7f46bc5e": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "5359579cc62d": { + "running": true + }, + "56d53341cbeb": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "736ecc4aaa66": { + "name": "notifications.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.subscribe\",\"params\":{\"includeDesktopSuppressed\":true}}", + "sent": 0 + }, + "75c17556f7cf": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "dismissedPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + } + ] + } + } + } + }, + "77c8cf752494": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "7a2a12ad5565": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-2" + }, + "sent": 1 + }, + "a0b2bcfcde77": { + "running": false + }, + "a315c185b085": { + "name": "notifications.unsubscribe#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.unsubscribe\",\"params\":{\"subscriptionId\":\"sub-1\"}}", + "sent": 2 + }, + "a3ac3c48ff31": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true + } + } + }, + "afe1d0ac708d": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-2", + "ok": false + } + } + }, + "bc35c48c2506": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "bcdd9c902f5e": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-1\\\"]\",\"seq\":7,\"expiresAt\":1767312000000}]" + }, + "sent": 1 + }, + "c83340909a1e": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-1" + }, + "sent": 1 + }, + "d6ca3d9d05d8": { + "name": "notifications.getMissedSince#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.getMissedSince\",\"params\":{\"lastSeenSeq\":9007199254740991,\"deliveredPushes\":[{\"notificationId\":\"note-1\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":7},{\"notificationId\":\"note-2\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":8}]}}", + "sent": 1 + }, + "db7190899748": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-2", + "ok": false + } + } + }, + "de9bc9ed43e5": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-2\\\"]\",\"seq\":8,\"expiresAt\":1767312000000}]" + }, + "sent": 1 + }, + "e2ea442ef86a": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "e662892b594b": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "unsubscribed": true + } + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "efcb1e7d7b74": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "refused" + } + } + } + } + }, + "recording": { + "scenario": "matrix-notifications.desktop-stream-notifications.getmissedsince-1", + "checkpoints": [ + { + "id": "notifications-desktop-stream.prelude:subscribed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.prelude:ready", + "observation": { + "sender": ["4b3d7f46bc5e"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.normal:caught-up", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.normal:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.normal:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.normal:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:caught-up", + "observation": { + "sender": ["a3ac3c48ff31"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.result-absent:dismissed", + "observation": { + "sender": ["a3ac3c48ff31"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:unsubscribing", + "observation": { + "sender": ["a3ac3c48ff31", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:stopped", + "observation": { + "sender": ["a3ac3c48ff31", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.result-null:caught-up", + "observation": { + "sender": ["268f8de77ee5"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.result-null:dismissed", + "observation": { + "sender": ["268f8de77ee5"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.result-null:unsubscribing", + "observation": { + "sender": ["268f8de77ee5", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.result-null:stopped", + "observation": { + "sender": ["268f8de77ee5", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:caught-up", + "observation": { + "sender": ["efcb1e7d7b74"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:dismissed", + "observation": { + "sender": ["efcb1e7d7b74"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:unsubscribing", + "observation": { + "sender": ["efcb1e7d7b74", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:stopped", + "observation": { + "sender": ["efcb1e7d7b74", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:caught-up", + "observation": { + "sender": ["44703b46d7d2"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:dismissed", + "observation": { + "sender": ["44703b46d7d2"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:unsubscribing", + "observation": { + "sender": ["44703b46d7d2", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:stopped", + "observation": { + "sender": ["44703b46d7d2", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:caught-up", + "observation": { + "sender": ["e2ea442ef86a"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:dismissed", + "observation": { + "sender": ["e2ea442ef86a"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:unsubscribing", + "observation": { + "sender": ["e2ea442ef86a", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:stopped", + "observation": { + "sender": ["e2ea442ef86a", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:caught-up", + "observation": { + "sender": ["db7190899748"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:dismissed", + "observation": { + "sender": ["db7190899748"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:unsubscribing", + "observation": { + "sender": ["db7190899748", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:stopped", + "observation": { + "sender": ["db7190899748", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:caught-up", + "observation": { + "sender": ["065e1e640278"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:dismissed", + "observation": { + "sender": ["065e1e640278"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:unsubscribing", + "observation": { + "sender": ["065e1e640278", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:stopped", + "observation": { + "sender": ["065e1e640278", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:caught-up", + "observation": { + "sender": ["afe1d0ac708d"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:dismissed", + "observation": { + "sender": ["afe1d0ac708d"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:unsubscribing", + "observation": { + "sender": ["afe1d0ac708d", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:stopped", + "observation": { + "sender": ["afe1d0ac708d", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.transport-rejection:caught-up", + "observation": { + "sender": ["77c8cf752494"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.transport-rejection:dismissed", + "observation": { + "sender": ["77c8cf752494"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.transport-rejection:unsubscribing", + "observation": { + "sender": ["77c8cf752494", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.transport-rejection:stopped", + "observation": { + "sender": ["77c8cf752494", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.transport-rejection-no-message:caught-up", + "observation": { + "sender": ["bc35c48c2506"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.transport-rejection-no-message:dismissed", + "observation": { + "sender": ["bc35c48c2506"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.transport-rejection-no-message:unsubscribing", + "observation": { + "sender": ["bc35c48c2506", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.transport-rejection-no-message:stopped", + "observation": { + "sender": ["bc35c48c2506", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["de9bc9ed43e5", "7a2a12ad5565"] + } + } + ] + } +} 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 new file mode 100644 index 00000000000..3f9318efc13 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-1.json @@ -0,0 +1,836 @@ +{ + "operation": "notifications.desktop-stream", + "family": "notifications.desktop-stream", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4", + "scenarioSha256": "aca5a21c0928ca5e84aac346f543a6840691c92b124c845cd01e3f2de553ea3d", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "124b5d42e937": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-2" + }, + "sent": 0 + }, + "34b18fa41590": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-2\\\"]\",\"seq\":8,\"expiresAt\":1767312000000}]" + }, + "sent": 0 + }, + "4b3d7f46bc5e": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "5359579cc62d": { + "running": true + }, + "56d53341cbeb": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "736ecc4aaa66": { + "name": "notifications.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.subscribe\",\"params\":{\"includeDesktopSuppressed\":true}}", + "sent": 0 + }, + "75c17556f7cf": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "dismissedPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + } + ] + } + } + } + }, + "7a2a12ad5565": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-2" + }, + "sent": 1 + }, + "a0b2bcfcde77": { + "running": false + }, + "a315c185b085": { + "name": "notifications.unsubscribe#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.unsubscribe\",\"params\":{\"subscriptionId\":\"sub-1\"}}", + "sent": 2 + }, + "ae651d5572a2": { + "name": "stream-listener-crash", + "value": { + "error": { + "category": "TypeError", + "isRpcDeliveryUnknown": false, + "message": "Cannot read properties of null (reading 'type')" + }, + "frame": "notifications.subscribe#1" + }, + "sent": 0 + }, + "bcdd9c902f5e": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-1\\\"]\",\"seq\":7,\"expiresAt\":1767312000000}]" + }, + "sent": 1 + }, + "c83340909a1e": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-1" + }, + "sent": 1 + }, + "d6ca3d9d05d8": { + "name": "notifications.getMissedSince#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.getMissedSince\",\"params\":{\"lastSeenSeq\":9007199254740991,\"deliveredPushes\":[{\"notificationId\":\"note-1\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":7},{\"notificationId\":\"note-2\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":8}]}}", + "sent": 1 + }, + "de9bc9ed43e5": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-2\\\"]\",\"seq\":8,\"expiresAt\":1767312000000}]" + }, + "sent": 1 + }, + "e662892b594b": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "unsubscribed": true + } + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "fb584aec7c1e": { + "name": "stream-listener-crash", + "value": { + "error": { + "category": "TypeError", + "isRpcDeliveryUnknown": false, + "message": "Cannot read properties of undefined (reading 'type')" + }, + "frame": "notifications.subscribe#1" + }, + "sent": 0 + } + }, + "recording": { + "scenario": "matrix-notifications.desktop-stream-notifications.subscribe-1-1", + "checkpoints": [ + { + "id": "notifications-desktop-stream.prelude:subscribed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.normal:ready", + "observation": { + "sender": ["4b3d7f46bc5e"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.normal:caught-up", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.normal:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.normal:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.normal:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:ready", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["fb584aec7c1e"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:caught-up", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["fb584aec7c1e"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:dismissed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["fb584aec7c1e", "34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:unsubscribing", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["fb584aec7c1e", "34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:stopped", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["fb584aec7c1e", "34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.result-null:ready", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["ae651d5572a2"] + } + }, + { + "id": "notifications-desktop-stream.result-null:caught-up", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["ae651d5572a2"] + } + }, + { + "id": "notifications-desktop-stream.result-null:dismissed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["ae651d5572a2", "34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.result-null:unsubscribing", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["ae651d5572a2", "34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.result-null:stopped", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["ae651d5572a2", "34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:ready", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:caught-up", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:dismissed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:unsubscribing", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:stopped", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:ready", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:caught-up", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:dismissed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:unsubscribing", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:stopped", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:ready", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:caught-up", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:dismissed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:unsubscribing", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:stopped", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["34b18fa41590", "124b5d42e937"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:ready", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:caught-up", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:dismissed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:unsubscribing", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:stopped", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:ready", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:caught-up", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:dismissed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:unsubscribing", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:stopped", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:ready", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:caught-up", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:dismissed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:unsubscribing", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:stopped", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": [] + } + } + ] + } +} 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 new file mode 100644 index 00000000000..c0854d4e0ce --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-2.json @@ -0,0 +1,629 @@ +{ + "operation": "notifications.desktop-stream", + "family": "notifications.desktop-stream", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4", + "scenarioSha256": "53c8aa2ecfc045a50180dc707e353e22eef8511c0815ebacd3bda8cfb69d65c0", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "23f5db721ed2": { + "name": "stream-listener-crash", + "value": { + "error": { + "category": "TypeError", + "isRpcDeliveryUnknown": false, + "message": "Cannot read properties of undefined (reading 'type')" + }, + "frame": "notifications.subscribe#1" + }, + "sent": 1 + }, + "27c1d53f9b0a": { + "name": "stream-listener-crash", + "value": { + "error": { + "category": "TypeError", + "isRpcDeliveryUnknown": false, + "message": "Cannot read properties of null (reading 'type')" + }, + "frame": "notifications.subscribe#1" + }, + "sent": 1 + }, + "4b3d7f46bc5e": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "5359579cc62d": { + "running": true + }, + "56d53341cbeb": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "736ecc4aaa66": { + "name": "notifications.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.subscribe\",\"params\":{\"includeDesktopSuppressed\":true}}", + "sent": 0 + }, + "75c17556f7cf": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "dismissedPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + } + ] + } + } + } + }, + "7a2a12ad5565": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-2" + }, + "sent": 1 + }, + "a0b2bcfcde77": { + "running": false + }, + "a315c185b085": { + "name": "notifications.unsubscribe#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.unsubscribe\",\"params\":{\"subscriptionId\":\"sub-1\"}}", + "sent": 2 + }, + "bcdd9c902f5e": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-1\\\"]\",\"seq\":7,\"expiresAt\":1767312000000}]" + }, + "sent": 1 + }, + "c83340909a1e": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-1" + }, + "sent": 1 + }, + "d6ca3d9d05d8": { + "name": "notifications.getMissedSince#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.getMissedSince\",\"params\":{\"lastSeenSeq\":9007199254740991,\"deliveredPushes\":[{\"notificationId\":\"note-1\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":7},{\"notificationId\":\"note-2\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":8}]}}", + "sent": 1 + }, + "de9bc9ed43e5": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-2\\\"]\",\"seq\":8,\"expiresAt\":1767312000000}]" + }, + "sent": 1 + }, + "e662892b594b": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "unsubscribed": true + } + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "matrix-notifications.desktop-stream-notifications.subscribe-1-2", + "checkpoints": [ + { + "id": "notifications-desktop-stream.prelude:subscribed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.prelude:ready", + "observation": { + "sender": ["4b3d7f46bc5e"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.prelude:caught-up", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.normal:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.normal:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.normal:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e", "23f5db721ed2"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "23f5db721ed2"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "23f5db721ed2"] + } + }, + { + "id": "notifications-desktop-stream.result-null:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e", "27c1d53f9b0a"] + } + }, + { + "id": "notifications-desktop-stream.result-null:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "27c1d53f9b0a"] + } + }, + { + "id": "notifications-desktop-stream.result-null:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "27c1d53f9b0a"] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + } + ] + } +} 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 new file mode 100644 index 00000000000..6364a664b86 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.unsubscribe-1.json @@ -0,0 +1,761 @@ +{ + "operation": "notifications.desktop-stream", + "family": "notifications.desktop-stream", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4", + "scenarioSha256": "afd3985ecdc07a1880aaee81739432633a1e87ec2de2c02166f43a6c78cb493b", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0594b6cd55e2": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-3", + "ok": false + } + } + }, + "05cd72b8549c": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "1022b3a96921": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "238f0e461e03": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "3e6a085d3fc5": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-3", + "ok": false + } + } + }, + "4b3d7f46bc5e": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "4c8f933614d9": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "5359579cc62d": { + "running": true + }, + "562e1740f269": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "56d53341cbeb": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "736ecc4aaa66": { + "name": "notifications.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.subscribe\",\"params\":{\"includeDesktopSuppressed\":true}}", + "sent": 0 + }, + "75c17556f7cf": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "dismissedPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + } + ] + } + } + } + }, + "7a2a12ad5565": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-2" + }, + "sent": 1 + }, + "a0b2bcfcde77": { + "running": false + }, + "a315c185b085": { + "name": "notifications.unsubscribe#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.unsubscribe\",\"params\":{\"subscriptionId\":\"sub-1\"}}", + "sent": 2 + }, + "ad14d9d9c706": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-3", + "ok": false + } + } + }, + "aeebdb6c3fd0": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true + } + } + }, + "bcdd9c902f5e": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-1\\\"]\",\"seq\":7,\"expiresAt\":1767312000000}]" + }, + "sent": 1 + }, + "c83340909a1e": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-1" + }, + "sent": 1 + }, + "d6ca3d9d05d8": { + "name": "notifications.getMissedSince#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.getMissedSince\",\"params\":{\"lastSeenSeq\":9007199254740991,\"deliveredPushes\":[{\"notificationId\":\"note-1\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":7},{\"notificationId\":\"note-2\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":8}]}}", + "sent": 1 + }, + "de9bc9ed43e5": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-2\\\"]\",\"seq\":8,\"expiresAt\":1767312000000}]" + }, + "sent": 1 + }, + "e662892b594b": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "unsubscribed": true + } + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "fa5dbfc9130a": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "refused" + } + } + } + } + }, + "recording": { + "scenario": "matrix-notifications.desktop-stream-notifications.unsubscribe-1", + "checkpoints": [ + { + "id": "notifications-desktop-stream.prelude:subscribed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.prelude:ready", + "observation": { + "sender": ["4b3d7f46bc5e"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "notifications-desktop-stream.prelude:caught-up", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "notifications-desktop-stream.prelude:dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.prelude:unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.normal:stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.result-absent:stopped", + "observation": { + "sender": ["75c17556f7cf", "aeebdb6c3fd0"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.result-null:stopped", + "observation": { + "sender": ["75c17556f7cf", "4c8f933614d9"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-ok-missing:stopped", + "observation": { + "sender": ["75c17556f7cf", "fa5dbfc9130a"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-string-error:stopped", + "observation": { + "sender": ["75c17556f7cf", "1022b3a96921"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.inner-false-object-error:stopped", + "observation": { + "sender": ["75c17556f7cf", "05cd72b8549c"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused:stopped", + "observation": { + "sender": ["75c17556f7cf", "ad14d9d9c706"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.outer-refused-no-message:stopped", + "observation": { + "sender": ["75c17556f7cf", "0594b6cd55e2"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.method-not-found:stopped", + "observation": { + "sender": ["75c17556f7cf", "3e6a085d3fc5"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.transport-rejection:stopped", + "observation": { + "sender": ["75c17556f7cf", "238f0e461e03"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "notifications-desktop-stream.transport-rejection-no-message:stopped", + "observation": { + "sender": ["75c17556f7cf", "562e1740f269"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + } + ] + } +} 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 dd616b38eac..cf3ef7a7882 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f5d4dd00cd768a4f8048fccf26851d6bb103f57c43ba75e4e3598e5076ed13b9", "scenarioSha256": "b7a862c0de7dd4efcdf3f4db7c5aeda6b765ab58498f40f3b21232264758b16f", "platform": "darwin", 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 7df983f7f2f..a4a056832e8 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "595a3eb2994d0596b9fcd0707b175b4e978625053dfbc5c541b0350c0cbfb524", "scenarioSha256": "9ab21cda2ac956c70ddd23fe589778bbb46333314508cf92770d668ba59d5a90", "platform": "darwin", 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 31fa2a695f4..4c3fd87b279 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2e3d939dc162dbc5a38d8a7207111688204a825fd70348721917b3016e1c9470", "scenarioSha256": "c77a518d35203370669fea20f7669d7695a2ec851f22b220a8be417c546efeab", "platform": "darwin", 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 2ed071690c5..e0525af230a 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2e3d939dc162dbc5a38d8a7207111688204a825fd70348721917b3016e1c9470", "scenarioSha256": "bb772b4b000644f18b48dcf78b05863b30906bcf588824d94eff086014fa69e8", "platform": "darwin", 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 ce27dca9705..7e20f3d0e7e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197", "scenarioSha256": "a28912c9abb97a227904723ff0de8162de31fce66c056da1813e0c18f6e01ccf", "platform": "darwin", 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 41e3e9500eb..c0cf0a5f1f2 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197", "scenarioSha256": "ccd2ef7c617d13bdf5987f5f89fed6917206205268633b9ef061b92c3580d672", "platform": "darwin", 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 3b9ff6bfcd1..3faa3a2a6da 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197", "scenarioSha256": "399fa8b85d9c2fc341ea2284a54aed278fd1a5b19a84cc9284c29d5a583bc519", "platform": "darwin", 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 f8b13cef0c8..e94f9b874c9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197", "scenarioSha256": "14931cc23cd0e6d850f596c880014c606834898acbeee4abff3dc83a94b0c6c0", "platform": "darwin", 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 f09568f7314..64515fce6ec 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab", "scenarioSha256": "926f0d8c37a33d465bf3a04f056600cfc9f1669b1eca7e968aa1a1f797a74c61", "platform": "darwin", 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 40c982ecb95..c5d3f2e87f0 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2", "scenarioSha256": "042d0f9ef57e2a18bf661b79f2f8f92a12125dbc0fc65dd8605f8cd6f7059d10", "platform": "darwin", 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 704ef9b6bc7..980242152de 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2", "scenarioSha256": "530aa1f2ddc6fce10d485c8a160ae3e695250b2e80e1e7fc3e8dacb9f5117347", "platform": "darwin", 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 cb8a47b2f75..34872233057 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2", "scenarioSha256": "18b1855f354c23cd5bb7af0db698f0a23d28208c3c6b7347f667bf6cd3ed612f", "platform": "darwin", 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 2fe74eb5bfc..a70a22b019e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2", "scenarioSha256": "03355bc2696d02fed125d9f0e24c6c26c8df2f3709c1c5f4412aaf9317cd41d4", "platform": "darwin", 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 eb466cb199e..3ad8761725e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2", "scenarioSha256": "d0c4dd34645308f30c0999ea74c16b53f20e9183832fdf016c3dc21434744b05", "platform": "darwin", 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 be65641b222..9661c82ab72 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2", "scenarioSha256": "0fe163f405373adbb1913dddd79d6d596bf88d69fc27c824ba5a2cd4c1406446", "platform": "darwin", 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 26fc376928a..a7ea0a8101e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197", "scenarioSha256": "5aaa104a652d4f10cd48ab742112cf59fca22f52bbf85ee3716505a9642fbe37", "platform": "darwin", 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 c380bcaf9d7..495f3ff08d5 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "06bf92360e6985770c08a9e53be0f55b6e8ff120d4e6411dacc22e88d08cef32", "platform": "darwin", 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 2ff8b92ed36..e4e82814089 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "17f87233352ff8e452f061f4558d58b44643efe49313162d4aad140343a1ead9", "platform": "darwin", 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 fd3d44bb18f..5d942065db3 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "5100bd674509d1d83b1e2594eee036af21ea14b12226185b44070555d1d43060", "platform": "darwin", 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 fe0f6ef5789..d3f146db7ba 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "b9ca49e401df8710924f200f92a071bac2e120ed43df7be2cfb8a325ab1cd9cb", "platform": "darwin", 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 092b566cb6f..31ac85db12e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "e54684bad13aa8b8b4794e06351c709053b1c4c6d87776ecdbb1dd1b4406a694", "platform": "darwin", 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 97320db54f2..9a912da3e24 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fd443c85a6d2b0c1355e29f6f366e35d330a2033c7ddb90ab6713584ddda2f6f", "scenarioSha256": "c583058382c949e977b7a1287895ed9ccb8cb408b684aef186b629976ff1da4d", "platform": "darwin", 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 0d6c3c2dd7e..ab2aabf9328 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "17e2b30594a2b37e82ff1976377722c2f1c3ae7f01857e50e010a2dd2e89da3a", "platform": "darwin", 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 4981f5469b0..de4a0057b0a 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "b99f51a5527e42a32ea9203ad75b16f9dd3cdcdc2a3ed235f6467ac1c7e3a4f3", "platform": "darwin", 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 848d0866c8f..00f3a205858 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "b4627f9ac9bc090a2b48fd35f32d5dc3d66fefe0fb65abab75597ef2c73510ec", "platform": "darwin", 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 b5fd83721dc..e53a6cdb516 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "c9f720134506b6db71b742c219abe736fca1f90070403d7c96df9396fd048b6f", "platform": "darwin", 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 8566be0b00f..416a5928322 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a8016eb61915cf80a3bdeb622ee67d35be8b4b9862a75e4ef2e8f4ff8e93e7f2", "scenarioSha256": "f17bb817f9a172e776f1814920d58abc7db122da9c49cfe3bbeaf217f82d70d7", "platform": "darwin", 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 e1ea8c85ac6..f414abdac00 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "389c6118f3137b78e88af6b901554b0331c652063a00d8ba3119e0883ce82f25", "platform": "darwin", 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 new file mode 100644 index 00000000000..3376a2910e6 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.readsession-1.json @@ -0,0 +1,1413 @@ +{ + "operation": "session.native-chat-page", + "family": "session.native-chat-page", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "60ce67f66134d6385aa7fb47f2135436a7b3ce0221e3b2514bea65e06dba5518", + "scenarioSha256": "8a6f6d37fd7dbc9e0da081565f24b270949306c47a874568874ec8ce2579076b", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0089ce68936d": { + "name": "nativeChat.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.subscribe\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":40,\"subscriptionId\":\"claude:session-1\",\"capabilities\":{\"transcriptPending\":1},\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 0 + }, + "0943a7b4b434": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "0a15a34ae230": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "197fa03857dd": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": true, + "loadingEarlier": false, + "messageIds": ["m-3", "m-4", "m-5"], + "status": "ready", + "transcriptLoading": false + }, + "295fd9669abd": { + "name": "nativeChat.unsubscribe#1", + "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 1 + }, + "37bc66a9d48a": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-2", + "ok": false + } + } + }, + "3dd3e332ee1a": { + "name": "unhandled-rejection", + "value": { + "category": "Error", + "isRpcDeliveryUnknown": true, + "message": "Connection closed" + }, + "sent": 1 + }, + "45c4057b2335": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true + } + } + }, + "69073f8706af": { + "name": "nativeChat.readSession#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.readSession\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":60,\"beforeOffset\":1200,\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 1 + }, + "6d6767cd9e4e": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "787e19388f6a": { + "name": "unhandled-rejection", + "value": { + "category": "Error", + "isRpcDeliveryUnknown": true, + "message": "" + }, + "sent": 1 + }, + "7b237e9824c8": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": true, + "loadingEarlier": false, + "messageIds": ["m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "7e8788afab15": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": true, + "loadingEarlier": true, + "messageIds": ["m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "810ad17d04f8": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "8f91342d7840": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4", "m-5"], + "status": "ready", + "transcriptLoading": false + }, + "9b20b74db998": { + "name": "nativeChat.unsubscribe#2", + "json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 1 + }, + "9c69a4906cca": { + "name": "nativeChat.unsubscribe#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 1 + }, + "a46f48c3c05d": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "a5ef5c2480d8": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-2", + "ok": false + } + } + }, + "a67af9702696": { + "name": "unhandled-rejection", + "value": { + "category": "TypeError", + "isRpcDeliveryUnknown": false, + "message": "Cannot use 'in' operator to search for 'error' in null" + }, + "sent": 1 + }, + "b40053d92c09": { + "name": "unhandled-rejection", + "value": { + "category": "TypeError", + "isRpcDeliveryUnknown": false, + "message": "Cannot use 'in' operator to search for 'error' in undefined" + }, + "sent": 1 + }, + "b80f8c3fa354": { + "name": "unhandled-rejection", + "value": { + "category": "Error", + "isRpcDeliveryUnknown": true, + "message": "transport failure" + }, + "sent": 1 + }, + "ba0534620d1c": { + "name": "nativeChat.subscribe#2", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.subscribe\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":40,\"subscriptionId\":\"claude:session-1\",\"capabilities\":{\"transcriptPending\":1},\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 1 + }, + "e11d93df53dc": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "e8f291420c0c": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Connection closed", + "isRpcDeliveryUnknown": true + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "ed9e9d122ef3": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "ee46c03cf1b8": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": [], + "status": "loading", + "transcriptLoading": true + }, + "f57700c42204": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-2", + "ok": false + } + } + }, + "f5f160af6cda": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "fea0c71c9357": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "beforeOffset": 0, + "hasMore": false, + "messages": [ + { + "blocks": [ + { + "text": "first", + "type": "text" + } + ], + "id": "m-1", + "role": "assistant", + "source": "transcript", + "timestamp": 1000 + }, + { + "blocks": [ + { + "text": "second", + "type": "text" + } + ], + "id": "m-2", + "role": "assistant", + "source": "transcript", + "timestamp": 2000 + } + ] + } + } + } + } + }, + "recording": { + "scenario": "matrix-session.native-chat-page-nativechat.readsession-1", + "checkpoints": [ + { + "id": "native-chat-page-earlier.prelude:subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.prelude:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.prelude:paging", + "observation": { + "sender": ["f5f160af6cda"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7e8788afab15", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.prelude:cleanup", + "observation": { + "sender": ["e8f291420c0c"], + "payloads": ["0089ce68936d", "69073f8706af", "9c69a4906cca"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7e8788afab15", + "effects": ["3dd3e332ee1a"] + } + }, + { + "id": "native-chat-page-earlier.normal:paged", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:re-subscribed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "8f91342d7840", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "8f91342d7840", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.result-absent:paged", + "observation": { + "sender": ["45c4057b2335"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": ["b40053d92c09"] + } + }, + { + "id": "native-chat-page-earlier.result-absent:re-subscribed", + "observation": { + "sender": ["45c4057b2335"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": ["b40053d92c09"] + } + }, + { + "id": "native-chat-page-earlier.result-absent:replayed", + "observation": { + "sender": ["45c4057b2335"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["b40053d92c09"] + } + }, + { + "id": "native-chat-page-earlier.result-absent:unmounted", + "observation": { + "sender": ["45c4057b2335"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["b40053d92c09"] + } + }, + { + "id": "native-chat-page-earlier.result-null:paged", + "observation": { + "sender": ["ed9e9d122ef3"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": ["a67af9702696"] + } + }, + { + "id": "native-chat-page-earlier.result-null:re-subscribed", + "observation": { + "sender": ["ed9e9d122ef3"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": ["a67af9702696"] + } + }, + { + "id": "native-chat-page-earlier.result-null:replayed", + "observation": { + "sender": ["ed9e9d122ef3"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["a67af9702696"] + } + }, + { + "id": "native-chat-page-earlier.result-null:unmounted", + "observation": { + "sender": ["ed9e9d122ef3"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["a67af9702696"] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:paged", + "observation": { + "sender": ["0a15a34ae230"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:re-subscribed", + "observation": { + "sender": ["0a15a34ae230"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:replayed", + "observation": { + "sender": ["0a15a34ae230"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:unmounted", + "observation": { + "sender": ["0a15a34ae230"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:paged", + "observation": { + "sender": ["810ad17d04f8"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:re-subscribed", + "observation": { + "sender": ["810ad17d04f8"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:replayed", + "observation": { + "sender": ["810ad17d04f8"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:unmounted", + "observation": { + "sender": ["810ad17d04f8"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:paged", + "observation": { + "sender": ["6d6767cd9e4e"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:re-subscribed", + "observation": { + "sender": ["6d6767cd9e4e"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:replayed", + "observation": { + "sender": ["6d6767cd9e4e"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:unmounted", + "observation": { + "sender": ["6d6767cd9e4e"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:paged", + "observation": { + "sender": ["f57700c42204"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:re-subscribed", + "observation": { + "sender": ["f57700c42204"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:replayed", + "observation": { + "sender": ["f57700c42204"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:unmounted", + "observation": { + "sender": ["f57700c42204"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:paged", + "observation": { + "sender": ["a5ef5c2480d8"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:re-subscribed", + "observation": { + "sender": ["a5ef5c2480d8"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:replayed", + "observation": { + "sender": ["a5ef5c2480d8"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:unmounted", + "observation": { + "sender": ["a5ef5c2480d8"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:paged", + "observation": { + "sender": ["37bc66a9d48a"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:re-subscribed", + "observation": { + "sender": ["37bc66a9d48a"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:replayed", + "observation": { + "sender": ["37bc66a9d48a"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:unmounted", + "observation": { + "sender": ["37bc66a9d48a"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.transport-rejection:paged", + "observation": { + "sender": ["a46f48c3c05d"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": ["b80f8c3fa354"] + } + }, + { + "id": "native-chat-page-earlier.transport-rejection:re-subscribed", + "observation": { + "sender": ["a46f48c3c05d"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": ["b80f8c3fa354"] + } + }, + { + "id": "native-chat-page-earlier.transport-rejection:replayed", + "observation": { + "sender": ["a46f48c3c05d"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["b80f8c3fa354"] + } + }, + { + "id": "native-chat-page-earlier.transport-rejection:unmounted", + "observation": { + "sender": ["a46f48c3c05d"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["b80f8c3fa354"] + } + }, + { + "id": "native-chat-page-earlier.transport-rejection-no-message:paged", + "observation": { + "sender": ["e11d93df53dc"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": ["787e19388f6a"] + } + }, + { + "id": "native-chat-page-earlier.transport-rejection-no-message:re-subscribed", + "observation": { + "sender": ["e11d93df53dc"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": ["787e19388f6a"] + } + }, + { + "id": "native-chat-page-earlier.transport-rejection-no-message:replayed", + "observation": { + "sender": ["e11d93df53dc"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["787e19388f6a"] + } + }, + { + "id": "native-chat-page-earlier.transport-rejection-no-message:unmounted", + "observation": { + "sender": ["e11d93df53dc"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["787e19388f6a"] + } + } + ] + } +} 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 new file mode 100644 index 00000000000..8eeca55d1e6 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-1-1.json @@ -0,0 +1,1078 @@ +{ + "operation": "session.native-chat-page", + "family": "session.native-chat-page", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "60ce67f66134d6385aa7fb47f2135436a7b3ce0221e3b2514bea65e06dba5518", + "scenarioSha256": "de804d4fa5287b07be9079d21e0a3cfc7f22d0e4b8649f13a3465a30683a77c8", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0089ce68936d": { + "name": "nativeChat.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.subscribe\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":40,\"subscriptionId\":\"claude:session-1\",\"capabilities\":{\"transcriptPending\":1},\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 0 + }, + "0292426a087d": { + "name": "stream-listener-crash", + "value": { + "error": { + "category": "TypeError", + "isRpcDeliveryUnknown": false, + "message": "Cannot read properties of null (reading 'type')" + }, + "frame": "nativeChat.subscribe#1" + }, + "sent": 0 + }, + "0943a7b4b434": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "197fa03857dd": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": true, + "loadingEarlier": false, + "messageIds": ["m-3", "m-4", "m-5"], + "status": "ready", + "transcriptLoading": false + }, + "295fd9669abd": { + "name": "nativeChat.unsubscribe#1", + "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 1 + }, + "69073f8706af": { + "name": "nativeChat.readSession#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.readSession\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":60,\"beforeOffset\":1200,\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 1 + }, + "74de4282eb19": { + "name": "stream-listener-crash", + "value": { + "error": { + "category": "TypeError", + "isRpcDeliveryUnknown": false, + "message": "Cannot read properties of undefined (reading 'type')" + }, + "frame": "nativeChat.subscribe#1" + }, + "sent": 0 + }, + "7b237e9824c8": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": true, + "loadingEarlier": false, + "messageIds": ["m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "7e8788afab15": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": true, + "loadingEarlier": true, + "messageIds": ["m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "813c942b745a": { + "crash": { + "$rpc": "null" + }, + "error": "outer refused", + "hasMore": true, + "loadingEarlier": false, + "messageIds": ["m-3", "m-4", "m-5"], + "status": "ready", + "transcriptLoading": false + }, + "8c0a70144c87": { + "name": "nativeChat.subscribe#2", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.subscribe\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":40,\"subscriptionId\":\"claude:session-1\",\"capabilities\":{\"transcriptPending\":1},\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 0 + }, + "8f91342d7840": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4", "m-5"], + "status": "ready", + "transcriptLoading": false + }, + "9b20b74db998": { + "name": "nativeChat.unsubscribe#2", + "json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 1 + }, + "9ec06f18374b": { + "crash": { + "$rpc": "null" + }, + "error": "Unknown method", + "hasMore": true, + "loadingEarlier": false, + "messageIds": ["m-3", "m-4", "m-5"], + "status": "ready", + "transcriptLoading": false + }, + "b09dcbf7cafc": { + "crash": { + "$rpc": "null" + }, + "error": "Unknown method", + "hasMore": false, + "loadingEarlier": false, + "messageIds": [], + "status": "error", + "transcriptLoading": false + }, + "ba0534620d1c": { + "name": "nativeChat.subscribe#2", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.subscribe\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":40,\"subscriptionId\":\"claude:session-1\",\"capabilities\":{\"transcriptPending\":1},\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 1 + }, + "c5cc569a5dda": { + "crash": { + "$rpc": "null" + }, + "error": "", + "hasMore": true, + "loadingEarlier": false, + "messageIds": ["m-3", "m-4", "m-5"], + "status": "ready", + "transcriptLoading": false + }, + "c6ec9edd9184": { + "name": "nativeChat.unsubscribe#2", + "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 0 + }, + "ceaa29eddfa6": { + "crash": { + "$rpc": "null" + }, + "error": "outer refused", + "hasMore": false, + "loadingEarlier": false, + "messageIds": [], + "status": "error", + "transcriptLoading": false + }, + "d4857c54be88": { + "crash": { + "$rpc": "null" + }, + "error": "", + "hasMore": false, + "loadingEarlier": false, + "messageIds": [], + "status": "error", + "transcriptLoading": false + }, + "d4ad42752d06": { + "name": "nativeChat.unsubscribe#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 0 + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "ee46c03cf1b8": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": [], + "status": "loading", + "transcriptLoading": true + }, + "f5f160af6cda": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "fea0c71c9357": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "beforeOffset": 0, + "hasMore": false, + "messages": [ + { + "blocks": [ + { + "text": "first", + "type": "text" + } + ], + "id": "m-1", + "role": "assistant", + "source": "transcript", + "timestamp": 1000 + }, + { + "blocks": [ + { + "text": "second", + "type": "text" + } + ], + "id": "m-2", + "role": "assistant", + "source": "transcript", + "timestamp": 2000 + } + ] + } + } + } + } + }, + "recording": { + "scenario": "matrix-session.native-chat-page-nativechat.subscribe-1-1", + "checkpoints": [ + { + "id": "native-chat-page-earlier.prelude:subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:paging", + "observation": { + "sender": ["f5f160af6cda"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7e8788afab15", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:paged", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:re-subscribed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "8f91342d7840", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "8f91342d7840", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.result-absent:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": ["74de4282eb19"] + } + }, + { + "id": "native-chat-page-earlier.result-absent:paging", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": ["74de4282eb19"] + } + }, + { + "id": "native-chat-page-earlier.result-absent:paged", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": ["74de4282eb19"] + } + }, + { + "id": "native-chat-page-earlier.result-absent:re-subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": ["74de4282eb19"] + } + }, + { + "id": "native-chat-page-earlier.result-absent:replayed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["74de4282eb19"] + } + }, + { + "id": "native-chat-page-earlier.result-absent:unmounted", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06", "c6ec9edd9184"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["74de4282eb19"] + } + }, + { + "id": "native-chat-page-earlier.result-null:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": ["0292426a087d"] + } + }, + { + "id": "native-chat-page-earlier.result-null:paging", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": ["0292426a087d"] + } + }, + { + "id": "native-chat-page-earlier.result-null:paged", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": ["0292426a087d"] + } + }, + { + "id": "native-chat-page-earlier.result-null:re-subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": ["0292426a087d"] + } + }, + { + "id": "native-chat-page-earlier.result-null:replayed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["0292426a087d"] + } + }, + { + "id": "native-chat-page-earlier.result-null:unmounted", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06", "c6ec9edd9184"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": ["0292426a087d"] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:paging", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:paged", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:re-subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:replayed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:unmounted", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06", "c6ec9edd9184"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:paging", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:paged", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:re-subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:replayed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:unmounted", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06", "c6ec9edd9184"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:paging", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:paged", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:re-subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:replayed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:unmounted", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06", "c6ec9edd9184"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "197fa03857dd", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "ceaa29eddfa6", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:paging", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ceaa29eddfa6", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:paged", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "ceaa29eddfa6", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:re-subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "ceaa29eddfa6", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:replayed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "813c942b745a", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:unmounted", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "813c942b745a", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "d4857c54be88", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:paging", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "d4857c54be88", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:paged", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "d4857c54be88", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:re-subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "d4857c54be88", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:replayed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "c5cc569a5dda", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:unmounted", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "c5cc569a5dda", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "b09dcbf7cafc", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:paging", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "b09dcbf7cafc", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:paged", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "b09dcbf7cafc", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:re-subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "b09dcbf7cafc", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:replayed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "9ec06f18374b", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:unmounted", + "observation": { + "sender": [], + "payloads": ["0089ce68936d", "8c0a70144c87", "d4ad42752d06"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "9ec06f18374b", + "effects": [] + } + } + ] + } +} 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 new file mode 100644 index 00000000000..a7e5211f1ea --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-2-1.json @@ -0,0 +1,631 @@ +{ + "operation": "session.native-chat-page", + "family": "session.native-chat-page", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "60ce67f66134d6385aa7fb47f2135436a7b3ce0221e3b2514bea65e06dba5518", + "scenarioSha256": "f7535862ae280e7e47916ad25701040e25d3318baceea52515c9d81b4144ae92", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0089ce68936d": { + "name": "nativeChat.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.subscribe\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":40,\"subscriptionId\":\"claude:session-1\",\"capabilities\":{\"transcriptPending\":1},\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 0 + }, + "0943a7b4b434": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "295fd9669abd": { + "name": "nativeChat.unsubscribe#1", + "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 1 + }, + "69073f8706af": { + "name": "nativeChat.readSession#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.readSession\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":60,\"beforeOffset\":1200,\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 1 + }, + "7b237e9824c8": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": true, + "loadingEarlier": false, + "messageIds": ["m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "7e8788afab15": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": true, + "loadingEarlier": true, + "messageIds": ["m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "8f91342d7840": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4", "m-5"], + "status": "ready", + "transcriptLoading": false + }, + "9b20b74db998": { + "name": "nativeChat.unsubscribe#2", + "json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 1 + }, + "a5609c6d15fc": { + "crash": { + "$rpc": "null" + }, + "error": "Unknown method", + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4"], + "status": "error", + "transcriptLoading": false + }, + "b96b63e4aaf3": { + "crash": { + "$rpc": "null" + }, + "error": "outer refused", + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4"], + "status": "error", + "transcriptLoading": false + }, + "ba0534620d1c": { + "name": "nativeChat.subscribe#2", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.subscribe\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":40,\"subscriptionId\":\"claude:session-1\",\"capabilities\":{\"transcriptPending\":1},\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 1 + }, + "c335eed74534": { + "name": "stream-listener-crash", + "value": { + "error": { + "category": "TypeError", + "isRpcDeliveryUnknown": false, + "message": "Cannot read properties of null (reading 'type')" + }, + "frame": "nativeChat.subscribe#2" + }, + "sent": 1 + }, + "cd22d8a40c3f": { + "name": "stream-listener-crash", + "value": { + "error": { + "category": "TypeError", + "isRpcDeliveryUnknown": false, + "message": "Cannot read properties of undefined (reading 'type')" + }, + "frame": "nativeChat.subscribe#2" + }, + "sent": 1 + }, + "d53372f95573": { + "crash": { + "$rpc": "null" + }, + "error": "", + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4"], + "status": "error", + "transcriptLoading": false + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "ee46c03cf1b8": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": [], + "status": "loading", + "transcriptLoading": true + }, + "f5f160af6cda": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "fea0c71c9357": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "beforeOffset": 0, + "hasMore": false, + "messages": [ + { + "blocks": [ + { + "text": "first", + "type": "text" + } + ], + "id": "m-1", + "role": "assistant", + "source": "transcript", + "timestamp": 1000 + }, + { + "blocks": [ + { + "text": "second", + "type": "text" + } + ], + "id": "m-2", + "role": "assistant", + "source": "transcript", + "timestamp": 2000 + } + ] + } + } + } + } + }, + "recording": { + "scenario": "matrix-session.native-chat-page-nativechat.subscribe-2-1", + "checkpoints": [ + { + "id": "native-chat-page-earlier.prelude:subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.prelude:snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.prelude:paging", + "observation": { + "sender": ["f5f160af6cda"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7e8788afab15", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.prelude:paged", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.prelude:re-subscribed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "8f91342d7840", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.normal:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "8f91342d7840", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.result-absent:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": ["cd22d8a40c3f"] + } + }, + { + "id": "native-chat-page-earlier.result-absent:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": ["cd22d8a40c3f"] + } + }, + { + "id": "native-chat-page-earlier.result-null:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": ["c335eed74534"] + } + }, + { + "id": "native-chat-page-earlier.result-null:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": ["c335eed74534"] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-ok-missing:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-string-error:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.inner-false-object-error:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "b96b63e4aaf3", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "b96b63e4aaf3", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "d53372f95573", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.outer-refused-no-message:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "d53372f95573", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "a5609c6d15fc", + "effects": [] + } + }, + { + "id": "native-chat-page-earlier.method-not-found:unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "a5609c6d15fc", + "effects": [] + } + } + ] + } +} 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 8427223ccf4..82038e6ebe6 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "d6a0472f274d55aab584b58b67018d042ee1ba6799f42072a8a5986f45554bfc", "platform": "darwin", 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 0081ec0e0fd..0894b9f1dde 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "a60de7b496f8149593a6e89cd2d29e20fdf75d26536592fec6b0100b43322d3b", "platform": "darwin", 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 b751d3ba1da..dd7935f0f9e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "96499f352af2ff884bfa94996659609fdbd228e1d071ad462400b978ab8e239b", "platform": "darwin", 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 b67e100ed81..07b55ea171b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "c28251d769ca9788952ed4fb29d8665c870fb85f2c5a4f32f8af33baf44498af", "platform": "darwin", 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 767c0eaec43..e7eff633397 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "af78542ad2c449b629f8705b940ec92fd16f879a9bcc81ff6ae3a192f804fa2c", "platform": "darwin", 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 ea559217633..4e929eec586 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "1e7cad00f4dfcda65a3830b0b2468020816b940611af1b68600de33cd8c1d7c2", "platform": "darwin", 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 87c90ab62da..c2f7641f35e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "d456ec18056eb9663e99d4991784bd802422256d81ddd7509720814da06915f4", "platform": "darwin", 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 07f46f2f31c..d395907e353 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "039f26cc90d2239028d6ad1d9ecae9cc976d48f386f2d29fbfa425afc702657d", "platform": "darwin", 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 273396c2021..1d1095d506a 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "0d06d27000a8f6ad66480a16c7b84e8464f4b6e1d775326aeae005926e134cb4", "platform": "darwin", 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 1b9fb8b1a20..5ce31700d21 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "a288e105a0af6dbbd9657b84f7c4860826184fb7f50dabc6e31b114a70d7ca44", "platform": "darwin", 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 3f08e6de4bf..4689fded7f7 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0", "scenarioSha256": "d25fc19d4e3e9b12f2a60a076ea10741e13fc45dcd9a76bd3a9d88432c3e6fbe", "platform": "darwin", 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 96d473f9962..648fda17b0c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0", "scenarioSha256": "5b050af6f02aa90f66340838cb5cc53c8fc0d5693d313b653c23881150384874", "platform": "darwin", 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 57cf9f83e3a..92dce57d931 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "89141e3e400feea78460ede72d5269bdc885f6d3de75388542b4b7d6dff2840d", "platform": "darwin", 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 42c223ee241..0d71ad8ff46 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "c97d925b63253e87ada0777e95a24ccf4e4e1682eda048800b44e335767df648", "platform": "darwin", 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 b380f4a183e..b83b9047178 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "73366226aeaec1581aeeb47219fc703917143cfd7f6a2eb01d7bd703a7c7612d", "platform": "darwin", 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 52dc5cfbb49..928a791030e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "c38f2bc5c9faca0774dfe202137877bada9deba165c5e9c955cbe67eae0cbdd9", "platform": "darwin", 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 6c2014b2072..1b9d35445c2 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0", "scenarioSha256": "fab12524a09049d976da752cbe1b837a0aee04ce6e1eef75cbf517c862cb0d4a", "platform": "darwin", 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 new file mode 100644 index 00000000000..232a5e979f9 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-orchestration.workerterminaluserinput-1.json @@ -0,0 +1,1134 @@ +{ + "operation": "session.terminal-gesture-input", + "family": "session.terminal-gesture-input", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "9d119d5ec320e2538105d6ff673b9f4b8e3decbe46527947489dffbcf2ac0472", + "scenarioSha256": "27e0d44ca22593ff2ecef93de075508863024f3f10f00161818962c07e7b59e1", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "02fc3d4e513f": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "0cc3e25ebff5": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": false, + "queuedBytes": { + "$rpc": "null" + }, + "queuedSequences": { + "$rpc": "null" + } + }, + "0f6cc5eb72a6": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-2", + "ok": true + } + } + }, + "204da356c8b7": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "$rpc": "undefined" + } + }, + "2bd49718b873": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "reported": true + } + } + } + }, + "3117ca4e2f5f": { + "name": "terminal.send#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"terminal.send\",\"params\":{\"terminal\":\"terminal-1\",\"text\":\"\\u001b[<64;10;5M\",\"enter\":false,\"client\":{\"id\":\"device-token-1\",\"type\":\"mobile\"}}}", + "sent": 1 + }, + "3d116029b0b8": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "send": { + "accepted": true + } + } + } + } + }, + "4c855008c56d": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "56f74f7bdc40": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-2", + "ok": false + } + } + }, + "59e44e1220e1": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-2", + "ok": false + } + } + }, + "779e482deadd": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-2", + "ok": false + } + } + }, + "819a7382ac8e": { + "name": "toast", + "value": { + "durationMs": { + "$rpc": "null" + }, + "message": "Terminal cleared" + }, + "sent": 3 + }, + "839dec95ae1c": { + "status": "pending", + "startedAt": 16 + }, + "89afd4b0c73e": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 16, + "settledAt": 16, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "8d4fae01baff": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 16, + "settledAt": 16, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "93092a2f06c5": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": false, + "queuedBytes": "\u001b[<64;10;5M", + "queuedSequences": 1 + }, + "a1e5242ecd29": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "b139ed2905d3": { + "name": "orchestration.workerTerminalUserInput#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"orchestration.workerTerminalUserInput\",\"params\":{\"terminal\":\"terminal-1\"}}", + "sent": 2 + }, + "b568d2e57ebf": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "bf25f1d5c346": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "caa6ece1bdab": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": true, + "queuedBytes": { + "$rpc": "null" + }, + "queuedSequences": { + "$rpc": "null" + } + }, + "cbb9e8ae954a": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "cleared": true + } + } + } + }, + "d21f2e78ad50": { + "name": "terminal.clearBuffer#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"terminal.clearBuffer\",\"params\":{\"terminal\":\"terminal-1\"}}", + "sent": 3 + }, + "d6b889da9c84": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "d6f3f7ce172a": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "matrix-session.terminal-gesture-input-orchestration.workerterminaluserinput-1", + "checkpoints": [ + { + "id": "terminal-gesture-flush-and-clear.prelude:queued", + "observation": { + "sender": [], + "payloads": [], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "93092a2f06c5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.prelude:flushing", + "observation": { + "sender": ["4c855008c56d"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "caa6ece1bdab", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.prelude:sent", + "observation": { + "sender": ["3d116029b0b8", "bf25f1d5c346"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.normal:reported", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.normal:clearing", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.normal:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-absent:reported", + "observation": { + "sender": ["3d116029b0b8", "0f6cc5eb72a6"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-absent:clearing", + "observation": { + "sender": ["3d116029b0b8", "0f6cc5eb72a6", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-absent:cleared", + "observation": { + "sender": ["3d116029b0b8", "0f6cc5eb72a6", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-null:reported", + "observation": { + "sender": ["3d116029b0b8", "d6f3f7ce172a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-null:clearing", + "observation": { + "sender": ["3d116029b0b8", "d6f3f7ce172a", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-null:cleared", + "observation": { + "sender": ["3d116029b0b8", "d6f3f7ce172a", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-ok-missing:reported", + "observation": { + "sender": ["3d116029b0b8", "d6b889da9c84"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-ok-missing:clearing", + "observation": { + "sender": ["3d116029b0b8", "d6b889da9c84", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-ok-missing:cleared", + "observation": { + "sender": ["3d116029b0b8", "d6b889da9c84", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-string-error:reported", + "observation": { + "sender": ["3d116029b0b8", "b568d2e57ebf"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-string-error:clearing", + "observation": { + "sender": ["3d116029b0b8", "b568d2e57ebf", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-string-error:cleared", + "observation": { + "sender": ["3d116029b0b8", "b568d2e57ebf", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-object-error:reported", + "observation": { + "sender": ["3d116029b0b8", "a1e5242ecd29"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-object-error:clearing", + "observation": { + "sender": ["3d116029b0b8", "a1e5242ecd29", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-object-error:cleared", + "observation": { + "sender": ["3d116029b0b8", "a1e5242ecd29", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused:reported", + "observation": { + "sender": ["3d116029b0b8", "56f74f7bdc40"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused:clearing", + "observation": { + "sender": ["3d116029b0b8", "56f74f7bdc40", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused:cleared", + "observation": { + "sender": ["3d116029b0b8", "56f74f7bdc40", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused-no-message:reported", + "observation": { + "sender": ["3d116029b0b8", "59e44e1220e1"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused-no-message:clearing", + "observation": { + "sender": ["3d116029b0b8", "59e44e1220e1", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused-no-message:cleared", + "observation": { + "sender": ["3d116029b0b8", "59e44e1220e1", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.method-not-found:reported", + "observation": { + "sender": ["3d116029b0b8", "779e482deadd"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.method-not-found:clearing", + "observation": { + "sender": ["3d116029b0b8", "779e482deadd", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.method-not-found:cleared", + "observation": { + "sender": ["3d116029b0b8", "779e482deadd", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection:reported", + "observation": { + "sender": ["3d116029b0b8", "89afd4b0c73e"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection:clearing", + "observation": { + "sender": ["3d116029b0b8", "89afd4b0c73e", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection:cleared", + "observation": { + "sender": ["3d116029b0b8", "89afd4b0c73e", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection-no-message:reported", + "observation": { + "sender": ["3d116029b0b8", "8d4fae01baff"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection-no-message:clearing", + "observation": { + "sender": ["3d116029b0b8", "8d4fae01baff", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection-no-message:cleared", + "observation": { + "sender": ["3d116029b0b8", "8d4fae01baff", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + } + ] + } +} 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 new file mode 100644 index 00000000000..fecf6b72223 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.clearbuffer-1.json @@ -0,0 +1,897 @@ +{ + "operation": "session.terminal-gesture-input", + "family": "session.terminal-gesture-input", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "9d119d5ec320e2538105d6ff673b9f4b8e3decbe46527947489dffbcf2ac0472", + "scenarioSha256": "53ffb52ef015193fdaaeb1ac5a1c88488a607e6cec2e39e87d1e4e3173321983", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "02fc3d4e513f": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "0b7bdaa452c8": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "0cc3e25ebff5": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": false, + "queuedBytes": { + "$rpc": "null" + }, + "queuedSequences": { + "$rpc": "null" + } + }, + "18b6972f9983": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-3", + "ok": true + } + } + }, + "204da356c8b7": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "$rpc": "undefined" + } + }, + "2bd49718b873": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "reported": true + } + } + } + }, + "2e36f67938e3": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 16, + "settledAt": 16, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "3117ca4e2f5f": { + "name": "terminal.send#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"terminal.send\",\"params\":{\"terminal\":\"terminal-1\",\"text\":\"\\u001b[<64;10;5M\",\"enter\":false,\"client\":{\"id\":\"device-token-1\",\"type\":\"mobile\"}}}", + "sent": 1 + }, + "31bb800aed24": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 16, + "settledAt": 16, + "error": { + "category": "Error", + "message": "Connection closed", + "isRpcDeliveryUnknown": true + } + } + }, + "3d116029b0b8": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "send": { + "accepted": true + } + } + } + } + }, + "3dccc3283f7f": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "4c855008c56d": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "6d27ae19f05e": { + "name": "toast", + "value": { + "durationMs": 1500, + "message": "Couldn't clear terminal" + }, + "sent": 3 + }, + "819a7382ac8e": { + "name": "toast", + "value": { + "durationMs": { + "$rpc": "null" + }, + "message": "Terminal cleared" + }, + "sent": 3 + }, + "839dec95ae1c": { + "status": "pending", + "startedAt": 16 + }, + "88466f6b4454": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "93092a2f06c5": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": false, + "queuedBytes": "\u001b[<64;10;5M", + "queuedSequences": 1 + }, + "b139ed2905d3": { + "name": "orchestration.workerTerminalUserInput#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"orchestration.workerTerminalUserInput\",\"params\":{\"terminal\":\"terminal-1\"}}", + "sent": 2 + }, + "ba872e864a95": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-3", + "ok": false + } + } + }, + "baceca50439a": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 16, + "settledAt": 16, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "bf25f1d5c346": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "caa6ece1bdab": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": true, + "queuedBytes": { + "$rpc": "null" + }, + "queuedSequences": { + "$rpc": "null" + } + }, + "cbb9e8ae954a": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "cleared": true + } + } + } + }, + "d099605d27e7": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-3", + "ok": false + } + } + }, + "d21f2e78ad50": { + "name": "terminal.clearBuffer#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"terminal.clearBuffer\",\"params\":{\"terminal\":\"terminal-1\"}}", + "sent": 3 + }, + "e4d1282f9b64": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "fbd406d76823": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-3", + "ok": false + } + } + } + }, + "recording": { + "scenario": "matrix-session.terminal-gesture-input-terminal.clearbuffer-1", + "checkpoints": [ + { + "id": "terminal-gesture-flush-and-clear.prelude:queued", + "observation": { + "sender": [], + "payloads": [], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "93092a2f06c5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.prelude:flushing", + "observation": { + "sender": ["4c855008c56d"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "caa6ece1bdab", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.prelude:sent", + "observation": { + "sender": ["3d116029b0b8", "bf25f1d5c346"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.prelude:reported", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.prelude:clearing", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.prelude:cleanup", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "31bb800aed24"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["6d27ae19f05e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.normal:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-absent:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "18b6972f9983"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-null:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "88466f6b4454"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-ok-missing:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "e4d1282f9b64"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-string-error:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "0b7bdaa452c8"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-object-error:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "3dccc3283f7f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "d099605d27e7"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused-no-message:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "fbd406d76823"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.method-not-found:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "ba872e864a95"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "2e36f67938e3"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["6d27ae19f05e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection-no-message:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "baceca50439a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["6d27ae19f05e"] + } + } + ] + } +} 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 new file mode 100644 index 00000000000..38a5faa9447 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.send-1.json @@ -0,0 +1,1352 @@ +{ + "operation": "session.terminal-gesture-input", + "family": "session.terminal-gesture-input", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "9d119d5ec320e2538105d6ff673b9f4b8e3decbe46527947489dffbcf2ac0472", + "scenarioSha256": "d7bc4d7a3e7e54accd4b51eef7e83ae70cc0c794738a83af222503a0f12ba70f", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "02fc3d4e513f": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "09ffe4b9bc4b": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 16, + "settledAt": 16, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "0cc3e25ebff5": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": false, + "queuedBytes": { + "$rpc": "null" + }, + "queuedSequences": { + "$rpc": "null" + } + }, + "14124cf34fa3": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-1", + "ok": false + } + } + }, + "204da356c8b7": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "$rpc": "undefined" + } + }, + "23dbe9f84fe1": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "2bd49718b873": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "reported": true + } + } + } + }, + "307da6578251": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "3117ca4e2f5f": { + "name": "terminal.send#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"terminal.send\",\"params\":{\"terminal\":\"terminal-1\",\"text\":\"\\u001b[<64;10;5M\",\"enter\":false,\"client\":{\"id\":\"device-token-1\",\"type\":\"mobile\"}}}", + "sent": 1 + }, + "3d116029b0b8": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "send": { + "accepted": true + } + } + } + } + }, + "4c855008c56d": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "77b7e6c640e5": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "cleared": true + } + } + } + }, + "819a7382ac8e": { + "name": "toast", + "value": { + "durationMs": { + "$rpc": "null" + }, + "message": "Terminal cleared" + }, + "sent": 3 + }, + "839dec95ae1c": { + "status": "pending", + "startedAt": 16 + }, + "85590f9305bc": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "93092a2f06c5": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": false, + "queuedBytes": "\u001b[<64;10;5M", + "queuedSequences": 1 + }, + "a89a112e498d": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 16, + "settledAt": 16, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "ae8c822fc220": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "b139ed2905d3": { + "name": "orchestration.workerTerminalUserInput#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"orchestration.workerTerminalUserInput\",\"params\":{\"terminal\":\"terminal-1\"}}", + "sent": 2 + }, + "b18293f5ef60": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "bf25f1d5c346": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "ca2d74c21da1": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "caa6ece1bdab": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": true, + "queuedBytes": { + "$rpc": "null" + }, + "queuedSequences": { + "$rpc": "null" + } + }, + "cb7befe9cef5": { + "name": "toast", + "value": { + "durationMs": { + "$rpc": "null" + }, + "message": "Terminal cleared" + }, + "sent": 2 + }, + "cbb9e8ae954a": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "cleared": true + } + } + } + }, + "d21f2e78ad50": { + "name": "terminal.clearBuffer#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"terminal.clearBuffer\",\"params\":{\"terminal\":\"terminal-1\"}}", + "sent": 3 + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "eff036b9fc6a": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "fdd67676d630": { + "name": "terminal.clearBuffer#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"terminal.clearBuffer\",\"params\":{\"terminal\":\"terminal-1\"}}", + "sent": 2 + } + }, + "recording": { + "scenario": "matrix-session.terminal-gesture-input-terminal.send-1", + "checkpoints": [ + { + "id": "terminal-gesture-flush-and-clear.prelude:queued", + "observation": { + "sender": [], + "payloads": [], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "93092a2f06c5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.prelude:flushing", + "observation": { + "sender": ["4c855008c56d"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "caa6ece1bdab", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.normal:sent", + "observation": { + "sender": ["3d116029b0b8", "bf25f1d5c346"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.normal:reported", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.normal:clearing", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.normal:cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-absent:sent", + "observation": { + "sender": ["307da6578251"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-absent:reported", + "observation": { + "sender": ["307da6578251"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-absent:clearing", + "observation": { + "sender": ["307da6578251", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-absent:cleared", + "observation": { + "sender": ["307da6578251", "77b7e6c640e5"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["cb7befe9cef5"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-null:sent", + "observation": { + "sender": ["ca2d74c21da1"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-null:reported", + "observation": { + "sender": ["ca2d74c21da1"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-null:clearing", + "observation": { + "sender": ["ca2d74c21da1", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.result-null:cleared", + "observation": { + "sender": ["ca2d74c21da1", "77b7e6c640e5"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["cb7befe9cef5"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-ok-missing:sent", + "observation": { + "sender": ["eff036b9fc6a"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-ok-missing:reported", + "observation": { + "sender": ["eff036b9fc6a"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-ok-missing:clearing", + "observation": { + "sender": ["eff036b9fc6a", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-ok-missing:cleared", + "observation": { + "sender": ["eff036b9fc6a", "77b7e6c640e5"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["cb7befe9cef5"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-string-error:sent", + "observation": { + "sender": ["85590f9305bc"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-string-error:reported", + "observation": { + "sender": ["85590f9305bc"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-string-error:clearing", + "observation": { + "sender": ["85590f9305bc", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-string-error:cleared", + "observation": { + "sender": ["85590f9305bc", "77b7e6c640e5"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["cb7befe9cef5"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-object-error:sent", + "observation": { + "sender": ["b18293f5ef60"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-object-error:reported", + "observation": { + "sender": ["b18293f5ef60"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-object-error:clearing", + "observation": { + "sender": ["b18293f5ef60", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.inner-false-object-error:cleared", + "observation": { + "sender": ["b18293f5ef60", "77b7e6c640e5"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["cb7befe9cef5"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused:sent", + "observation": { + "sender": ["ae8c822fc220"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused:reported", + "observation": { + "sender": ["ae8c822fc220"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused:clearing", + "observation": { + "sender": ["ae8c822fc220", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused:cleared", + "observation": { + "sender": ["ae8c822fc220", "77b7e6c640e5"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["cb7befe9cef5"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused-no-message:sent", + "observation": { + "sender": ["23dbe9f84fe1"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused-no-message:reported", + "observation": { + "sender": ["23dbe9f84fe1"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused-no-message:clearing", + "observation": { + "sender": ["23dbe9f84fe1", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.outer-refused-no-message:cleared", + "observation": { + "sender": ["23dbe9f84fe1", "77b7e6c640e5"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["cb7befe9cef5"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.method-not-found:sent", + "observation": { + "sender": ["14124cf34fa3"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.method-not-found:reported", + "observation": { + "sender": ["14124cf34fa3"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.method-not-found:clearing", + "observation": { + "sender": ["14124cf34fa3", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.method-not-found:cleared", + "observation": { + "sender": ["14124cf34fa3", "77b7e6c640e5"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["cb7befe9cef5"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection:sent", + "observation": { + "sender": ["09ffe4b9bc4b"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection:reported", + "observation": { + "sender": ["09ffe4b9bc4b"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection:clearing", + "observation": { + "sender": ["09ffe4b9bc4b", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection:cleared", + "observation": { + "sender": ["09ffe4b9bc4b", "77b7e6c640e5"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["cb7befe9cef5"] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection-no-message:sent", + "observation": { + "sender": ["a89a112e498d"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection-no-message:reported", + "observation": { + "sender": ["a89a112e498d"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection-no-message:clearing", + "observation": { + "sender": ["a89a112e498d", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "terminal-gesture-flush-and-clear.transport-rejection-no-message:cleared", + "observation": { + "sender": ["a89a112e498d", "77b7e6c640e5"], + "payloads": ["3117ca4e2f5f", "fdd67676d630"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["cb7befe9cef5"] + } + } + ] + } +} 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 03c50964594..98f2c270e82 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "cde3cac5407ef731315d18fc855b2696b9bfd30b90cb43d4a2cc812059cdd987", "platform": "darwin", 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 373bb5f521b..816c1d818fe 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "6575a0f89894d9b66e50a73446dfe92293ceccc7048b556f1ff114fd3ce05b8e", "platform": "darwin", 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 673efa893d7..4466fff572a 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "12f1006d704e362552317a3afcb4db4366146da3a863a1c55b524c6fc1b9757a", "platform": "darwin", 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 b99f674b3e6..8ef91c9b6af 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "27c4f13ae43042cf5e6b5ca95e9c1a37db2f1f0c08b31a1164bb56cf0967549a", "platform": "darwin", 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 1338e991c4a..5368facc7f5 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "449f8c793a371dddf1bb9b3beb36b2dbd9b991918dae1f6290df75fe6d2aeace", "platform": "darwin", 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 36d2afbc9cf..14d697bb2d9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "5cc67ab6df80a81be814a16cb60dcc4c703b0fc17594e409697a9fdeb0edeb76", "platform": "darwin", 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 91da7c8734d..ada113a7254 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "e7fb7a8083aac4c8c5edc7dd52465ca53bfcded00bf8b1ec18ae7604651bbe32", "platform": "darwin", 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 b734bdf58c4..3818226da07 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "b1e1b221ab7bfe5356c89a09cf4252613c78aecab48b2212e84ac7de885ec569", "platform": "darwin", 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 72351cecd43..e29b6db394c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "a0effc9a0be519ccd18c1b1abfc8b497cd3858b89ea8d345ac0f8bd6d195cf21", "platform": "darwin", 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 c155bdf6ee6..079b34857e7 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "c21b2e0e97fab86664f634cc99d77dd587df4af4d02e6286c8380e09844096b2", "platform": "darwin", 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 9d0f6b32f26..62d7ba10943 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "46c4e32a921612c736c8cf45ff72ed513431c917ed3dd03f289c0ba4c28d6adb", "platform": "darwin", 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 52629b8629b..e6a6a628e5b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab", "scenarioSha256": "cf671da175d50a4c2e1336f4e8338c24c4752db111e1eafd226bee6ff3582b1d", "platform": "darwin", 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 09f459e8b3c..e6a761ed7c6 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "01408cebcc193f8e30119381c8acf494fa5e29850fe010809deb330c2f9bcb36", "platform": "darwin", 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 70101ddcb52..8ff34a3d596 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "19b445b39da98d28bcbcdab6f70e47ce208ca68f165e7b62c5fe9762eee67c8d", "platform": "darwin", 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 573abb655d3..f6bbc53d3af 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "4953dd0de509ce620b9840d7f460e472dc74f54d53636694d12cba2e3bb51da8", "platform": "darwin", 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 5e3bc008f59..a6c2969ef74 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "70f601caeaee957bd3b172fc0fc12e85d6e2d6bed7683c86869559c6c9f25834", "platform": "darwin", 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 9e3a2f487cb..32d2c4e73a9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "c6d5040d0fd1e6b852625561aa67d11f555f5adb12303b6f8d0176183026a6b1", "platform": "darwin", 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 44d5faaac7b..88a5cf5d52b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "b9edb5c27852d4e1e968f85668f1ea7afde3ed1c6e5c6582d6607f9fa5643356", "platform": "darwin", 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 dbdf4d188bb..06c0de22588 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "687b109bd2bcc0c85b7c858d553e68e2fc4cb5b281d9f8b32836dbacc4bdc8f2", "platform": "darwin", 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 548f112b2d2..82ca3fc7d7f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "3199c745e22973b432b0a36c34bb0bdda994334a4a0cd7ad2daf8b172625ce8d", "platform": "darwin", 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 95dc7b86464..f411c567eb1 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "5e9c3ff57cf432b24a17ee046636b61b94116a687cfa506cd79dee464542b76b", "platform": "darwin", 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 6923a688952..26fa29c2ee4 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "a88061d3d1f03074b0ed2b663b523f1602362bc317ba614106f1f646d037d6e3", "platform": "darwin", 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 2bd45116b8e..93255bccd2d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "50ba7c7963cb494e4b3d484eb334977d21cc69018da57d75a7b6fd0c92860bd2", "platform": "darwin", 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 18a4c76a481..d9d74e455d8 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "8dfd4550b39f0cfcb9aaa72fab0631b11f9e776ed389b206b326359d7f4c2d6e", "platform": "darwin", 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 a1848d76ab6..a7a98d36eeb 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "85dc526201f66409dd6a411c5e14615b82389791ec210efb9889078f5d580373", "platform": "darwin", 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 31d1128dec7..95b535c4dc3 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "080e10ae774ef097082267da0c8b6d0ebacae582d57b04a189c123258d0e5131", "platform": "darwin", 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 7a3773083a0..4dd1271cf9e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "5988fa5ce0bf6b8585f7ec66918123ee086d5cdf1185a4eeff2e88904985064c", "platform": "darwin", 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 4c33ba95aed..eb914cb9c79 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "f5033a7a3567cc9e016bf09ac8bcd8ff381c3054c041dbccc773f7011918bf1d", "platform": "darwin", 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 67338aa4843..2fa8ef69cba 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "0931b3d35868e5452cb550962f2408b6ce7cd6c89e90a9cf2897425edbb4b42d", "platform": "darwin", 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 fc01aa799ec..6053ec4cffd 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "d0f8d9bfe0e1469af3b0dab8b5c9799d91cc2234e72f0e031d6872059654077d", "platform": "darwin", 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 645f2e15648..868cc52764a 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "3f448feff463b59c3927dae020ecd8d4931bb4a6036df6d6af080de2ec5fcf2b", "platform": "darwin", 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 9b79ce27311..c6f6c811568 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "4438f9fd62876333bb980157612aaf457c5a9b9115659c8c941c3b373ad071dd", "platform": "darwin", 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 7b8e8ca219d..2369be18d58 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "7e4c5bb29e0f630cda8a09233575b9295e485f3d3e315ebdc0458c69515fcfc7", "platform": "darwin", 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 90650e96cde..9a7d8ec7c1e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "1d7713cf4c23d053105c2abb02340d81d5eb689f4311a0984932d8ebd031b4ce", "platform": "darwin", 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 050848ef7d9..8c2b75fc36f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "994ea8b4ddb05774a8c2d5902bb68bf5e8f25399a787262b8f23f458f2790698", "platform": "darwin", 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 7d1eede54f9..d13b0f64e33 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "30b3f8d79589e9fb3d7ef804233554fa231f68ab88e5130ddfa78e79221e3c78", "platform": "darwin", 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 dd62c5e1c39..d21b8806752 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "a5366cbd31d899feeb7e1901edd0c78191c2c8c8179ad5d5b24b7ca22bd538f8", "platform": "darwin", 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 c2e40eb6129..cd4d95dcfa3 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "797ea410af6536410335ebe93b8bc354cd633cf980eb95efbb10bc46f5516cb7", "platform": "darwin", 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 9aab59bc028..dc1cd1ee7fa 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "3cd29e7b6a1cdfd99796a58cf6ad6f9aa3dbac75dd6e989ea99ba6027c210028", "platform": "darwin", 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 f7d6d780f0f..257a8f78c96 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "a89bdf93df71a958810aba72c80e42f663644781a29e934898e2ddf86c5dd5d5", "platform": "darwin", 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 6e29b69d50c..a9889bb7067 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "cfc84498c2ed080ca2be50725c8ad4fac84eaf2e64ecad1445997949737da11d", "platform": "darwin", 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 0f6edea4740..f09a560ece1 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "f3b57e7a3d46f7ee2761ecced03e74019758172fe0a040ef5df0612c8ac18358", "platform": "darwin", 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 b7a09ff9505..4cf0de07269 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "afe7c4d2085b095cac343607db3e9cc157921c2e0b20bae53260cd207ee5e4eb", "platform": "darwin", 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 8c4d632bc9b..756b1eaf77e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "ef890c668aded545c5423322aeaab0e0715ff80d5f76c6512d6579e277853f6c", "platform": "darwin", 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 442dec8d7fa..6fb8f66017d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "cd65f6b30f92d9542d19ad74cc9437ea33a1ec8fbdf4439ba13c14960f8a1994", "platform": "darwin", 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 1db50a9da9a..836d5ab0988 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "407a52b099cbf2fcb261010e4235dae2e5e16e11b386fb6bc99d5a2d237af541", "platform": "darwin", 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 e89d64da7e2..081a0123f82 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "140ede79a9ee0c02bedbfe67551060ef85692b6cb71968a48a1c41fcb4863804", "platform": "darwin", 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 0b8d7ffd814..e251333a276 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "6c0a9d2f2e28acd10c3a1f03888c23961e95bff02af10fe0e703d34fe6d60e8b", "platform": "darwin", 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 78466dbc016..db2e79a0463 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "d63062b89cc83321f6bcbd05c55dd21c71c6ff8c8026d026b5d94e44278ed3d8", "platform": "darwin", 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 18dd5a282d7..0fd6671ca84 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "751e0446d4cb64f80c997695cadb5d59d9698b4920a8ae16b95cb01e1ff37579", "platform": "darwin", 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 3209655fc6e..58e302edadb 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "525fc4a694e8d1eaa4dab254c05f6bbdfbff31f9137bf9ba277ed508fd56e30e", "platform": "darwin", 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 18dcd287db5..c7eeda0c1aa 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "693c645ebbd13f438f19a8a96d52fa2e72c1c910aa45f04ba7f17c1c90e13169", "platform": "darwin", 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 cd15d440f46..6f202641132 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "aa567e882db4be1bf3c9174e4af8266e1f9a25f8c353d7cb41f6c7e51c4d48b5", "platform": "darwin", 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 518d7c2d084..9b2f01c25ef 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "eefa7111ee94d5966692fb6f9bed1b3ccd7e1fe40c540438c005731d0cae305c", "platform": "darwin", 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 1b7efc12e57..4d0256854ed 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "1cc7fdf3139e0c5a81cd83987ffedc4f59cd4866fc1b4018b61e35eacc74fc11", "platform": "darwin", 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 f08d4f1b8aa..18386a32451 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "154d91d00db23ea2718a6ee0b6c5cafc7233084532b3d561731b059d58e006f5", "platform": "darwin", 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 a261139d525..80b30a2e764 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "ae07579881829263a2b5590249d4119f5d9f4ef3877149ac3b780ad985413f00", "platform": "darwin", 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 5c554720543..6b61a486062 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783", "scenarioSha256": "955729f9100dce7eeb103f7b4d08ff56ac66853b9ad0d33627c0838011287bca", "platform": "darwin", 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 c6ad9955de5..49413f16e80 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783", "scenarioSha256": "d163c6125fa180da7575642ee29f4bb18e3678079b7c30a42934550896d5b3c1", "platform": "darwin", 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 81ecd244d7b..61aa684001e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783", "scenarioSha256": "83b30b2a160d162d16c66aa3bf6a633489e86dd4fd1c30828d2d244164b9c95e", "platform": "darwin", 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 7a7217fdd9b..08f99db0be1 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783", "scenarioSha256": "06b06c84f4b8a1ee8e5159d8ada2656da4d7096729759c76601ad4e251310924", "platform": "darwin", 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 1f79b9c5e49..52ce44ec65b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06", "scenarioSha256": "3ef6ef046f60d2d11ef81adf69bd5216036405eb05e5fd30cf1c402120488ee5", "platform": "darwin", 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 d4693d8305e..d6fbc2ce0b9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06", "scenarioSha256": "a2ecf4ddc2c9870a8d73cbd920b46bb0663a958ac156dc6de092be3c9474ea2b", "platform": "darwin", 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 153fa135e75..9b9655c7d87 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "f40d99c60523ad1a6a3a761935e86ab0739337486dd316e6ab3248980e575027", "platform": "darwin", 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 ddb4d79bfc1..f3ff21bac69 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739", "scenarioSha256": "27587bfb5745051e3cb27b01dc49b90b6f3c8ddbeb38f20772502fae2f562d91", "platform": "darwin", 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 70481eca29f..292dc732ee7 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739", "scenarioSha256": "01664112d8f24d0a08fa7ba4e2d7f389acb363ce493e083f359f90fa0b87911d", "platform": "darwin", 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 8022fad142f..78560f8497b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739", "scenarioSha256": "186444ac8dc34dc63d1fbf304275e2265d96c6742e4c8f1e8e5568aa5504bf5d", "platform": "darwin", 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 29f70367f48..8394167ddcf 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "c6e5ae446b875afba3944a96d931fdca6006ed8e904374e5040088004eb9b044", "platform": "darwin", 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 72c1a79bf86..7ce930c1679 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "2da11d5a9c7a223a59c56ec416ab33acd42d900b4080132bde27313e042808d9", "platform": "darwin", 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 1b47034fd84..98d0dfad9da 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "a5d8ba37f44421d3efd19617ef319f37fda3fe53004b6829ae2c320f85d5c98d", "platform": "darwin", 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 e7e8b3f25c7..1427b04346c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "abc4b882c92ba90a52d3635fe882b2c653bc91ab4d9927f240ebee4dd147b81d", "platform": "darwin", 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 06b2cd04dd9..105a50a8b77 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "77b0812842903075bb3d3ec1f7bcea94b1e1dac5993c3c8854bd4c3d2a567988", "platform": "darwin", 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 95fa6ec4920..be24096e3a6 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "96a1813de0159396f6a5eb36a764fad4511de0a25eff6323571e1fade2a7f334", "platform": "darwin", 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 aed0773066a..7240c67e59c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "57c41b51e34e451975a9f28a6461aa3b8e9dcf04cbebaea80ddf14afc4b78edf", "platform": "darwin", 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 eb1b95e8de1..8414aca69c5 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "64a7af1bfac25dfe673832ef0ef7776be8d1a628c995eafd938fa3ad11d7ba0f", "platform": "darwin", 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 a1e7143e696..b4c51a5bd7e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "8443a59a1d432fbcfb9d158995cfa69bef364c33b66a97cbef0e70e197fcad4d", "platform": "darwin", 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 337717055b7..ed2ab0e9862 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "a60d7c0ce3d155116aecbb3d1ca015b4d9de310155f4e840b2fc391dc9d04860", "platform": "darwin", 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 e39bc5cf1a5..ff166170b7e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739", "scenarioSha256": "a2c0c5c200b36d2194815e67df2ea50422f6ecfd9df411132202e9660c87c41b", "platform": "darwin", 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 f6e9d57a349..fdb90f227ab 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739", "scenarioSha256": "8a5c5b210459d3938bc010bc88c69696a631072cd5a6b7e1a3eb3e1fd0da9c8a", "platform": "darwin", 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 6b8608b8cc5..06b58239278 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739", "scenarioSha256": "ab0ac02611d487a9edd58319c6e4b9302148684f27711afc3b69feaa73fc4b07", "platform": "darwin", 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 0ac3b615a5a..101bfb2e65b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06", "scenarioSha256": "c4a5928ef7035ad8bed20945f235f4fa509238b3a167c91df50baefff8e8433f", "platform": "darwin", 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 12242c7f0de..32374c05fa7 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06", "scenarioSha256": "8ec517c98775f3af0d45776dc74bcaaf99dcc751e85343084e39c557b6ddede1", "platform": "darwin", 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 f5b301ea8fa..682b0e05da6 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "749f877ac0c08860f74fc56e34b07f51960dda5bd1fdcf9df847b5200bf67779", "platform": "darwin", 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 5c22abe6151..73df09b03dd 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "2a11156b7b6d3cf0773c8dc02a72e126bc187dcf62ad7d1bf5f30d7b27192b03", "platform": "darwin", 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 77d449fbf87..590e8984c26 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "4c2560ac236a1cc1ef239b7c97a0436e115b19a6ad3ddd96b3b77970aa631ae3", "platform": "darwin", 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 689ccb0bb61..8e935c4eb4e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "ab5511fa34181dc9de590df2fe57a0d061a261e7b204a6ef830c03bc53923d65", "platform": "darwin", 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 c2ae3b3c09e..28d858aa4ab 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371", "scenarioSha256": "7c16d49ffeace5c689309316da6e4638fa1b70d3ef52a78d27db934ae56cf64d", "platform": "darwin", 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 e98eac11eb3..95e0ec51ebf 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371", "scenarioSha256": "c5cc9a11a75a86780195be7d1055d1064c8aba78bb8e4e8bbdf033409c2b2aa5", "platform": "darwin", 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 6d53d2e652a..57b81e25b1f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371", "scenarioSha256": "7f748bb55df907bba315ea6899c585837d97fa0ea9b312330cf35d95bda87bd1", "platform": "darwin", 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 69e7cd3b23c..1a06c482c6f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371", "scenarioSha256": "4ab4e4022cafd69cbc7af45ddf72d2dad3e8215df363511651d7faea014147d3", "platform": "darwin", 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 0b1a78143b1..116687dfacc 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371", "scenarioSha256": "cf64dd43e708ff953ba2cbb2a70378aa8ab5d13ede157af7ba0967d913755b82", "platform": "darwin", 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 84833e4255c..aede60c3326 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371", "scenarioSha256": "667a06cf9ff8129eee64327566012448abe1fe31f58c0d9b882b13e74db5a877", "platform": "darwin", 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 5c470b1265b..e006a0aa48d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "9fd4756c2224f3ecbc9ffc82e1ee11615a9e057e600bc56ccaf5c5e2c0e411d8", "platform": "darwin", 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 33c06606687..c1d155c4600 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "cfe0284f502001a57a9d18585222e5ae4b254d9bac32e0bb4080ee9363e8e019", "platform": "darwin", 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 149a39e6799..e821b9e0299 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "b21a3b3f568bf6caecca62272f4b7882062027684c70878fd5f883622ff2a9ea", "platform": "darwin", 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 f115f0ea31a..9168eeb668a 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "e286edb942c338fd844ce8437ac03c872838228515ce833cfd310332354da725", "platform": "darwin", 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 ebfc4c42670..8085f0eeebe 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6", "scenarioSha256": "52b2cc222d9819121ba99f8f603bc76abe420d731e5853116e802a4db59e2d3e", "platform": "darwin", 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 f9e45e58cdc..853e83d8bcd 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889", "scenarioSha256": "0fe8c60631cf04d33b34371155f5f80c8426b07b1cbec2fabc5d6d619f2633b8", "platform": "darwin", 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 0254059fd25..7e707ca71af 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889", "scenarioSha256": "8ad021e101d8ef17ed47472a5fbfbeaebb2690a4040c89a0e9ee133e69e4fecd", "platform": "darwin", 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 cc0f14f5879..e14f0660df0 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889", "scenarioSha256": "4d33ce12f3f35bea8a98fec2c0378e73caf7fbfb93085545e890b082a392cd60", "platform": "darwin", 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 25a7990f4ed..91e23a83151 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9", "scenarioSha256": "0cec6c7e6322135772132c15af4f5cec7ddc667ba3476ad871ed92625293036f", "platform": "darwin", 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 9cc4c2f6b7a..8855629d37e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9", "scenarioSha256": "754d93c552864ab693a5fd2776ba917a1c0f155f6bf8fb2873eafe9b97fd02b0", "platform": "darwin", 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 1da974aff2c..41ef253fb43 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9", "scenarioSha256": "d8838276fb40a8ccb2dbedc269b970f85c1c800466b9813ac06f409ea44ffaff", "platform": "darwin", 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 8f9c44ffb33..0025e6d997e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9", "scenarioSha256": "785dad70a0e382a6cc2b030cec2077a1e816e84ba60b082f60c9a96ec56b47c5", "platform": "darwin", 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 676781c38ec..483e0da533c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9", "scenarioSha256": "8d31245ea6869184de082cf9ef3af8d6e0806ab48b6f159e5076f786745c4413", "platform": "darwin", 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 5564aec2d8b..c7507bca74b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6", "scenarioSha256": "2303fc902e5a6cf6a43db58ef2938538a7b770d1509cc22a9811f4c83051aea1", "platform": "darwin", 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 b0d8d4697de..18f09b71377 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6", "scenarioSha256": "8b75854487566ca6da98d391b6822c81c99e61011fc094458ae038905c1c9287", "platform": "darwin", 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 b8a3eced6d7..37b74425f51 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6", "scenarioSha256": "7c948e76afb331e4038298215181adc97cd533c4f79e205e183c08e8a2db20fc", "platform": "darwin", 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 5ce34bad50b..d190fbf4506 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889", "scenarioSha256": "20e9631df87e40e64d35cee0c0e06b922fe53bd93e3d9e4078633b85a5278b7e", "platform": "darwin", 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 14de783a2d4..25196dce203 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889", "scenarioSha256": "2d947b63fb35dad9bbe201061cb51d0b3c5a5e6f3e8018eeda2ec1f962952809", "platform": "darwin", 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 8af68dda021..0c23713ac00 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889", "scenarioSha256": "ca6b0d81b19811806ce332a776361a40e526a73bef90cfa3df05a764e2ee83b6", "platform": "darwin", 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 7af7d5e8289..bc1b0936744 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889", "scenarioSha256": "bd58d88e0534366e281869ee79eb75fe65b418d02523d815d8d0d58799edc31b", "platform": "darwin", 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 3b577de670f..e8bb2db491e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "0f220b97bbb64ef8d347973690e6fab4b305eaaa54c9b7883340415c54e61206", "platform": "darwin", 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 986b3be5501..2ee64944157 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "85160836c5a5c9bae76aff82c834ceb908f9262a90facd6e055c289362664eaa", "platform": "darwin", 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 cfd5a511459..cf3c4f3fc6b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "5bc59cfd0d951ae5193df5c49ce3618d9536be0bc8f8192a7b03000963c2001b", "platform": "darwin", 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 4b0174fe597..2a79dac48ff 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "0d8c240718b3911464a6fc486114d67cd6f60aa295cd0886ff755b77d5036014", "platform": "darwin", 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 02ba6c02ebb..415263827a5 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "e9bdad78cf60e3dd931eab8810d011c6e0066f9a336a206f8f9ca62621b21fee", "platform": "darwin", 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 0a2ae7ef0ba..bd4d9cf78d0 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "a5704c6849de9a45564c8738076ec8c0307754a5acc2c039880fe436771e68b3", "platform": "darwin", 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 1dffe70c390..34e23d63450 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "e518040cbd40e3cc8c22e0b70b6de1087386936f75ed2f65f6e7b4fcdc344ba2", "platform": "darwin", 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 536fc87f150..34ae7953c38 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "f02acd2ed6319b8cb674c04b41a1e96c50e53123a8914790acc8af5410d63f98", "platform": "darwin", 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 c14d3a1d4ef..fe71472ed25 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "2b3006bfe1e7f3040b86ccc698e58ae19ae1aa11389aee2ec2a8f2dfdb0270f4", "platform": "darwin", 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 93d1d9ff3da..3c5e9cbc3dd 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d1810575d5f0e7a45f9f9a327c271f0ed483b16b21b65cfb5fcfa9dc90baf6c8", "scenarioSha256": "6373b83783b1a9b061bede3bba7aa3b573c3a50b897102a094df93f926856fdc", "platform": "darwin", 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 a8a87c5a029..a989c8b55a4 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "ea5c32c4dbb67aae1ebaf809a28104d52d189e5153d9b28285f4d8a6d78753ea", "platform": "darwin", 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 8f44dea0578..9d9c56ea458 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "541a282829d3aa5d6b66eeba06e783368f397178ff0d2bdf3e87bccdc62b690f", "platform": "darwin", 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 928c9bf2d76..3c7e3037098 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "767044526344237daee0a3f981a10615fbb9ebc3f45c2f6f41f9b8b16d362082", "platform": "darwin", 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 923f7fd86fd..dc4dd82f6c8 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "40a8ea6a916d4266bd80148e40fd817bbe80cefa02465b88d37c42cebed44f22", "platform": "darwin", 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 11df5b13615..6aef7aef3a4 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "aa06630cd902fd5dde5181bddd38f5478ae5b48044a3105b090728158aa9a621", "platform": "darwin", 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 ac2c7ff6c69..c82b67b8315 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "014040846f649f3c6ca1175b610ed1b51bae3001e7de103549d7ee1a511a2506", "platform": "darwin", 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 2db85c8aa33..6f0c76e3f41 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "9efe74e5a1b0d92f674e6044edfd534693c15b0a153bcb2c0e283a6cd53fa61b", "platform": "darwin", 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 1528e660355..f732e3cbb87 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "217a3da50a54c4cbe19a68835ecfa038eae5b350430f0b8fd0a616bb5bdfe32d", "platform": "darwin", 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 edb4c4d14a8..d40c9e6049d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "cb4c10cc6401e5b68340bd1fa09381c973348b6e0c7ffef563cde92080c57a15", "platform": "darwin", 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 9440a2f83fa..a3ffe19c680 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "038221907a57f5bb25338f9b07a744dbac3ea0a7ea2ba43281f171912f45a586", "platform": "darwin", 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 1bd92a4ae28..b7ed8fed8c7 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "8b0b64a6a0ef6e1cc6baa28e632fd3394a6c8b825f0835daa9634fa41c8685aa", "platform": "darwin", 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 712c4bc4e1c..6d9de496a76 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "39ef28af17e4d3774b42bba1555606770667bc9010692fb1a4492413a940c0a0", "platform": "darwin", 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 20ee88dfa92..da69a647703 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "c589700af145f58c37292dafb891b3b7d50302fd4ec044155c044ccd48f79c74", "platform": "darwin", 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 a25fda4e3eb..e6fe5fbca8c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "9e91d46870cd69279cc7d8ebfd317ab8b13136ccff9662876c7601a3a83ecafe", "platform": "darwin", 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 0c12e170b0f..6dbc49cdf25 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "2d4a681bffbc5ff9d3040ea0d6bb2603ee940c3c497269d0b63caca564fb25e1", "platform": "darwin", 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 00b13fe3072..8b79817676b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "3d4637406e2d658b72f73153f0a5e176cb8b143593b72bce0cdf979bc6e4cbdd", "platform": "darwin", 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 e3040b1a68f..394b0c8c938 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "3453024581230908d1e0e9335f5310e7b4ae03faf50d93654b9ff28c464fb95f", "platform": "darwin", 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 530bec924bd..903bde71b02 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "28f7ba289c188bfc121ef7b969133711189e887fbfc7b37c8a5401ea7f30b56a", "platform": "darwin", 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 b10a848351a..059c4b960ab 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "35771ab92d0d4ff44a1dd6e5f1e5d3137570a2e013bddea5ca77ecac7989ed53", "platform": "darwin", 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 ef2770f2505..88b4b9c41d6 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "39451d3c811068754f91ac243fe1208f4ce742df53261314345d8209ba761e94", "platform": "darwin", 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 08aefdd0b47..934cf342816 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "5cc1773d06d49d2616da72f2790753322edda6d67e12b5e41116971d34787391", "platform": "darwin", 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 24cd96f4058..d34b82d5d0d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "15b5694a63d54aeb4f4d9a861729e7e3b42ce06b15af6784fcb1afab744ed18b", "platform": "darwin", 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 d7809bd476a..6f60507cadb 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "68c039f74da08523d67d8d5b0a178c1d12507ec88d25891cd1377cd3fb40205c", "platform": "darwin", 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 0599bda4ff6..61e62f46c4c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "19d55a77e9c2f64f062070c9985f756e0ba72f3ccc3c884a80843fe888f42a47", "platform": "darwin", 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 a3a008bc4bf..8a217bbccb2 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "6913de3f553b47a7e6663e21b0b93e97df26405c210db876f0b9593bd38936be", "platform": "darwin", 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 0c516d4a5b5..db3cfee700f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "da13ec556c0f672371a8cd2aabd4dcc68001c0f9aa47015dfa4b5937355c4c2c", "platform": "darwin", 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 3aa51575bb1..1beb86892f4 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "bde05ca916393d7f5ccd48686cf13a52fb2dfa599ea874b084c58bd59adb7e7f", "platform": "darwin", 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 60ab920d31e..db026f8b42c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "874b1a120443ee679e2f4b3974762fd84fc929e93a2117b20bbb0cf373316616", "platform": "darwin", 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 ce4ac23dc32..9fa495bc906 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "d6be62e5eb2737d75634c053098d06a4bb175c64ff915cec6ead79922492a068", "platform": "darwin", 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 6fbd07a3e22..b55dfb5add8 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "1d032c86e7cc12efa3d5044339cb990bd258d830119d0e7b61d1b995b4df29a3", "platform": "darwin", 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 44295100182..553bfe8cfb6 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "048ee6d7848e0e4b8d6463ff9dc4124bfd478114ab87f6b52ff82a1dfd6ebc04", "platform": "darwin", 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 7c23208c701..8a21e7b8215 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e", "scenarioSha256": "95ca47f382997c412da974e564a46b1ae0c20d6e0f3ca14258d33c8d8b51a160", "platform": "darwin", 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 d5603b0d2f6..912a9bff267 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "e93a36ef900de27e1a566cdb2389ba4f900a330eadbb476b9bfb1ef05707b352", "platform": "darwin", 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 9f369060112..44c711d4c11 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e", "scenarioSha256": "fa0e28a167a5fba6fe7ffebb9f4ad28dd413d601c07116a24a7781d156f54beb", "platform": "darwin", 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 76b932e0ed6..a43a5b52e13 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "a84f8a5acfd428eb77b5c02a3de0fa8b780c666db31bbe574ecf76cdf84adeb2", "platform": "darwin", 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 c95e64b7263..43e1fb4afca 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "45783a7cbb44b04dbbd6bfd6735799bb4c75e503f43f1821cf8640d11f7464ad", "platform": "darwin", 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 f5750eeaba8..7340ab75d0f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e", "scenarioSha256": "d321d6c17e67ae90f6ceefb775495ff765a86a35423ed33a212e71ec5e9e94aa", "platform": "darwin", 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 1dad271af14..f760341c109 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "2fc093ec505bfac04a4ff0adab991baeba985253486dbe9e3ec9884b8d5f0920", "platform": "darwin", 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 18355353547..c6f0d4e982f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "f70c6b1753377b5a502bf7d1e69dc95617f24c42137471320eb393567efbe735", "platform": "darwin", 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 8dc0435ec01..885617e2dd2 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "8487fd14ed779708415b264e2b80b26b0d5094e379a04f4f32c2cd75ec469182", "platform": "darwin", 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 092ce3d8f2a..22b6ae6e55a 100644 --- a/mobile/rpc-foundation/goldens/native-chat-image-paste-single.json +++ b/mobile/rpc-foundation/goldens/native-chat-image-paste-single.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "a330bd18a22c002ac04d0fa043561740c5cea627516bbf965fc1bd52533c2e35", "platform": "darwin", 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 ec1ec22fbe8..1b75c0b1fa3 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "77fd03130dc2faf4d17b018c6c3314076a02b5fe9c531921ffb1a43e8a150d2f", "platform": "darwin", 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 327a54efb89..d30e715ef5a 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "ebf9397271bfd5462403e60748f5bd505d554eba5f74ce79a8c40550e9719dcc", "platform": "darwin", 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 da2f7f3c913..d2cc6b8a87f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "b6595de485ed071674051ce0d2b44a604ec21d2614b646d8917a9130a58a48cf", "platform": "darwin", 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 92a881480cf..4f9262e93ba 100644 --- a/mobile/rpc-foundation/goldens/native-chat-image-upload-cancelled.json +++ b/mobile/rpc-foundation/goldens/native-chat-image-upload-cancelled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "1f513883eb62cdd1673eb58809817e2b2f5fd64b74f80ed6e3b9d8c2ef2d33e9", "platform": "darwin", 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 9ed6a6fbedd..7150f5b4e9f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "181b02243b1ecf98364473ee0b3f4c82a6037b5f5bae33703ab4f611cc050db4", "platform": "darwin", 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 1154652074d..03094bbb7a0 100644 --- a/mobile/rpc-foundation/goldens/native-chat-image-upload-single.json +++ b/mobile/rpc-foundation/goldens/native-chat-image-upload-single.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "d7dca3742c4086f9ced0ba4b2f6c32ee9fa9272a5a955e8623fdc9cdb4c71528", "platform": "darwin", 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 e9c767a117e..fd49cfbf8b9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "09fd9bf97a4da7313e24f8c333b66c7c1af927bbea0a6d9fef9803856a608c78", "platform": "darwin", 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 d9a2726edff..a76f4e3ef44 100644 --- a/mobile/rpc-foundation/goldens/native-chat-image-upload-two.json +++ b/mobile/rpc-foundation/goldens/native-chat-image-upload-two.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "16779b663f4faec8cbccdb42efd7b568a2912845b161f8a4827754687eb4235c", "scenarioSha256": "db0397f8f6ae28de0cc7afd91552ee9416d7f7054a76a42aac02f480c6f363d5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/native-chat-page-earlier.json b/mobile/rpc-foundation/goldens/native-chat-page-earlier.json new file mode 100644 index 00000000000..e4e51032c7c --- /dev/null +++ b/mobile/rpc-foundation/goldens/native-chat-page-earlier.json @@ -0,0 +1,312 @@ +{ + "operation": "session.native-chat-page", + "family": "session.native-chat-page", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "60ce67f66134d6385aa7fb47f2135436a7b3ce0221e3b2514bea65e06dba5518", + "scenarioSha256": "674cab85ed9896dae311bfc0acfb1d1d1a2a7f25b7546b4714edbb0a585e6178", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0089ce68936d": { + "name": "nativeChat.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.subscribe\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":40,\"subscriptionId\":\"claude:session-1\",\"capabilities\":{\"transcriptPending\":1},\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 0 + }, + "0943a7b4b434": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "295fd9669abd": { + "name": "nativeChat.unsubscribe#1", + "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 1 + }, + "69073f8706af": { + "name": "nativeChat.readSession#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.readSession\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":60,\"beforeOffset\":1200,\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 1 + }, + "7b237e9824c8": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": true, + "loadingEarlier": false, + "messageIds": ["m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "7e8788afab15": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": true, + "loadingEarlier": true, + "messageIds": ["m-3", "m-4"], + "status": "ready", + "transcriptLoading": false + }, + "8f91342d7840": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": ["m-1", "m-2", "m-3", "m-4", "m-5"], + "status": "ready", + "transcriptLoading": false + }, + "9b20b74db998": { + "name": "nativeChat.unsubscribe#2", + "json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.unsubscribe\",\"params\":{\"subscriptionId\":\"claude:session-1\"}}", + "sent": 1 + }, + "ba0534620d1c": { + "name": "nativeChat.subscribe#2", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"nativeChat.subscribe\",\"params\":{\"agent\":\"claude\",\"sessionId\":\"session-1\",\"limit\":40,\"subscriptionId\":\"claude:session-1\",\"capabilities\":{\"transcriptPending\":1},\"transcriptPath\":\"/work/feature/.claude/session-1.jsonl\"}}", + "sent": 1 + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "ee46c03cf1b8": { + "crash": { + "$rpc": "null" + }, + "error": { + "$rpc": "null" + }, + "hasMore": false, + "loadingEarlier": false, + "messageIds": [], + "status": "loading", + "transcriptLoading": true + }, + "f5f160af6cda": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "fea0c71c9357": { + "name": "nativeChat.readSession#1", + "args": [ + { + "name": "method", + "value": "nativeChat.readSession" + }, + { + "name": "params", + "value": { + "agent": "claude", + "beforeOffset": 1200, + "limit": 60, + "sessionId": "session-1", + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "beforeOffset": 0, + "hasMore": false, + "messages": [ + { + "blocks": [ + { + "text": "first", + "type": "text" + } + ], + "id": "m-1", + "role": "assistant", + "source": "transcript", + "timestamp": 1000 + }, + { + "blocks": [ + { + "text": "second", + "type": "text" + } + ], + "id": "m-2", + "role": "assistant", + "source": "transcript", + "timestamp": 2000 + } + ] + } + } + } + } + }, + "recording": { + "scenario": "native-chat-page-earlier", + "checkpoints": [ + { + "id": "subscribed", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "ee46c03cf1b8", + "effects": [] + } + }, + { + "id": "snapshot", + "observation": { + "sender": [], + "payloads": ["0089ce68936d"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "7b237e9824c8", + "effects": [] + } + }, + { + "id": "paging", + "observation": { + "sender": ["f5f160af6cda"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "7e8788afab15", + "effects": [] + } + }, + { + "id": "paged", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "re-subscribed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "0943a7b4b434", + "effects": [] + } + }, + { + "id": "replayed", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": ["0089ce68936d", "69073f8706af", "ba0534620d1c", "295fd9669abd"], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "8f91342d7840", + "effects": [] + } + }, + { + "id": "unmounted", + "observation": { + "sender": ["fea0c71c9357"], + "payloads": [ + "0089ce68936d", + "69073f8706af", + "ba0534620d1c", + "295fd9669abd", + "9b20b74db998" + ], + "settlements": { + "mount": "eb79a9b3682a", + "page": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "unmount": "eb79a9b3682a" + }, + "state": "8f91342d7840", + "effects": [] + } + } + ] + } +} 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 6e093d44625..8825d43c910 100644 --- a/mobile/rpc-foundation/goldens/native-chat-readability-local-repo.json +++ b/mobile/rpc-foundation/goldens/native-chat-readability-local-repo.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "46d80cfd496b06ce42ff1ed985e513bbf49b5188bc1128c6d01a74675741935a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/native-chat-readability-refused.json b/mobile/rpc-foundation/goldens/native-chat-readability-refused.json index 32ac44fc26f..1fc02ee4627 100644 --- a/mobile/rpc-foundation/goldens/native-chat-readability-refused.json +++ b/mobile/rpc-foundation/goldens/native-chat-readability-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "08a9ab4f180f2d6bb44d2a23f87be0443e8dfdde15f966458270a1bb6f131e0b", "platform": "darwin", 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 848a4e5b601..645ff1cd542 100644 --- a/mobile/rpc-foundation/goldens/native-chat-readability-remote-repo.json +++ b/mobile/rpc-foundation/goldens/native-chat-readability-remote-repo.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "0c6afb12dce2c402dfd7ac24eb4a306e09fcacc78415ecb47b5320b2fe8102b5", "platform": "darwin", 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 9f2c9c2b039..2de03a39208 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "55f675f7d3f380db10dd966ae6d011927dbc7eb8f3abd36e09edf5043ad1131c", "platform": "darwin", 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 53810c2328a..ca23916c95c 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "57b60064eca4526e5d533de5862e7e86ba69b6722cd04692228bdc768486cd76", "platform": "darwin", 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 e4a1f713c11..ba0b868a710 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "a180b7ae1f84bc69d7819c7c17b1e2915cb380e8ea8543d68fe6777feb90d0bd", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/native-chat-stop-accepted.json b/mobile/rpc-foundation/goldens/native-chat-stop-accepted.json index 47c8fce9a71..4398d44c637 100644 --- a/mobile/rpc-foundation/goldens/native-chat-stop-accepted.json +++ b/mobile/rpc-foundation/goldens/native-chat-stop-accepted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "a72f08c12c244912912be34deb3ec12bada6b74f1bc29c0034b347dcba9ddb10", "platform": "darwin", 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 eb26a2af250..0cf0f49820b 100644 --- a/mobile/rpc-foundation/goldens/native-chat-stop-both-rejected.json +++ b/mobile/rpc-foundation/goldens/native-chat-stop-both-rejected.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "a7419d4b3e00d49ebdac7db4fa97ad9d3af9516201f9102beed0376b181e74a5", "platform": "darwin", 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 3c4af8dd166..f4483821af1 100644 --- a/mobile/rpc-foundation/goldens/native-chat-stop-delivery-unknown.json +++ b/mobile/rpc-foundation/goldens/native-chat-stop-delivery-unknown.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "977ee5602e3a612d537686d17d15312f8b0e775df8800b27bb0d42b8642b4675", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/native-chat-write-accepted.json b/mobile/rpc-foundation/goldens/native-chat-write-accepted.json index b5e7295ca97..3aa3011996b 100644 --- a/mobile/rpc-foundation/goldens/native-chat-write-accepted.json +++ b/mobile/rpc-foundation/goldens/native-chat-write-accepted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "3e8804f21d32370bb0bc48c4ea3d182748d48dc19d73de1b50005f18368566ba", "platform": "darwin", 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 1cd43bfc902..7ffa4a1704e 100644 --- a/mobile/rpc-foundation/goldens/native-chat-write-clear-line.json +++ b/mobile/rpc-foundation/goldens/native-chat-write-clear-line.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "b8265928eefc167de59c64dc62ebe40635007a5f73c87ec8b6eb5e0f6dc0ce00", "platform": "darwin", 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 0d5c945ffa6..006fc2daf9e 100644 --- a/mobile/rpc-foundation/goldens/native-chat-write-delivery-unknown.json +++ b/mobile/rpc-foundation/goldens/native-chat-write-delivery-unknown.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "22f7711ed82a4d56f1886a746838e3eb85c555c9069694ba3aa958e121cc1ee9", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/native-chat-write-rejected.json b/mobile/rpc-foundation/goldens/native-chat-write-rejected.json index de31d6ac645..46db034fc9e 100644 --- a/mobile/rpc-foundation/goldens/native-chat-write-rejected.json +++ b/mobile/rpc-foundation/goldens/native-chat-write-rejected.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "7e05773966a18123aaae297aed9ac44bd841713de88c8a1fa30c31b324118f6f", "platform": "darwin", 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 4329ab24b18..0ca350eb1c0 100644 --- a/mobile/rpc-foundation/goldens/native-chat-write-typed-command.json +++ b/mobile/rpc-foundation/goldens/native-chat-write-typed-command.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b98a3ca3818678b88cf629bc4635300a103637126a136f025a1600dc16f08008", "scenarioSha256": "a89ff803859c60e5645126de8b0f423807c435dcd856fe8825721f71f3b5bec5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/new-workspace-repositories-fulfilled.json b/mobile/rpc-foundation/goldens/new-workspace-repositories-fulfilled.json index 428c00c0855..f2dd9bf87fa 100644 --- a/mobile/rpc-foundation/goldens/new-workspace-repositories-fulfilled.json +++ b/mobile/rpc-foundation/goldens/new-workspace-repositories-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "64c1772f0f95a3c43fbb14398a8804b2b4784f7f18874e4fd79767ae634c7faa", "scenarioSha256": "41ac47445191a24de5e48877478bdab6fd9c030f48024ea43e053de7b6b68bb5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/notifications-desktop-stream-closed.json b/mobile/rpc-foundation/goldens/notifications-desktop-stream-closed.json new file mode 100644 index 00000000000..f0d19b485fb --- /dev/null +++ b/mobile/rpc-foundation/goldens/notifications-desktop-stream-closed.json @@ -0,0 +1,168 @@ +{ + "operation": "notifications.desktop-stream", + "family": "notifications.desktop-stream", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4", + "scenarioSha256": "24f8c05639f82bc5e32abe3864c3d01a0589e295369028929fed2f0c684f1d0c", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "5359579cc62d": { + "running": true + }, + "5c8c44134852": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "dismissedPushes": [] + } + } + } + }, + "736ecc4aaa66": { + "name": "notifications.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.subscribe\",\"params\":{\"includeDesktopSuppressed\":true}}", + "sent": 0 + }, + "a0b2bcfcde77": { + "running": false + }, + "a315c185b085": { + "name": "notifications.unsubscribe#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.unsubscribe\",\"params\":{\"subscriptionId\":\"sub-1\"}}", + "sent": 2 + }, + "d6ca3d9d05d8": { + "name": "notifications.getMissedSince#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.getMissedSince\",\"params\":{\"lastSeenSeq\":9007199254740991,\"deliveredPushes\":[{\"notificationId\":\"note-1\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":7},{\"notificationId\":\"note-2\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":8}]}}", + "sent": 1 + }, + "e662892b594b": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "unsubscribed": true + } + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "notifications-desktop-stream-closed", + "checkpoints": [ + { + "id": "ready", + "observation": { + "sender": ["5c8c44134852"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "stopped", + "observation": { + "sender": ["5c8c44134852", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": [] + } + }, + { + "id": "not-replayed", + "observation": { + "sender": ["5c8c44134852", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/notifications-desktop-stream-replayed.json b/mobile/rpc-foundation/goldens/notifications-desktop-stream-replayed.json new file mode 100644 index 00000000000..b86435420fe --- /dev/null +++ b/mobile/rpc-foundation/goldens/notifications-desktop-stream-replayed.json @@ -0,0 +1,263 @@ +{ + "operation": "notifications.desktop-stream", + "family": "notifications.desktop-stream", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4", + "scenarioSha256": "0495c25d6e5d8a84fe4192d7aa0e2901fe86ede19ac9c4d72dee27da6694878b", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0ac95f8a19be": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-2\\\"]\",\"seq\":8,\"expiresAt\":1767312000000}]" + }, + "sent": 2 + }, + "45cd4d574823": { + "name": "notifications.getMissedSince#2", + "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.getMissedSince\",\"params\":{\"lastSeenSeq\":9007199254740991,\"deliveredPushes\":[{\"notificationId\":\"note-1\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":7},{\"notificationId\":\"note-2\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":8}]}}", + "sent": 2 + }, + "5359579cc62d": { + "running": true + }, + "58767661be83": { + "name": "notifications.subscribe#2", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.subscribe\",\"params\":{\"includeDesktopSuppressed\":true}}", + "sent": 1 + }, + "5c8c44134852": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "dismissedPushes": [] + } + } + } + }, + "736ecc4aaa66": { + "name": "notifications.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.subscribe\",\"params\":{\"includeDesktopSuppressed\":true}}", + "sent": 0 + }, + "8e41aa274dd7": { + "name": "notifications.unsubscribe#1", + "json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.unsubscribe\",\"params\":{\"subscriptionId\":\"sub-2\"}}", + "sent": 3 + }, + "a0b2bcfcde77": { + "running": false + }, + "b00f677bd438": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-2" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-5", + "ok": true, + "result": { + "unsubscribed": true + } + } + } + }, + "d6ca3d9d05d8": { + "name": "notifications.getMissedSince#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.getMissedSince\",\"params\":{\"lastSeenSeq\":9007199254740991,\"deliveredPushes\":[{\"notificationId\":\"note-1\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":7},{\"notificationId\":\"note-2\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":8}]}}", + "sent": 1 + }, + "eadd531c1068": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-2" + }, + "sent": 2 + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "f3ce12403bbb": { + "name": "notifications.getMissedSince#2", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-4", + "ok": true, + "result": { + "dismissedPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ] + } + } + } + } + }, + "recording": { + "scenario": "notifications-desktop-stream-replayed", + "checkpoints": [ + { + "id": "ready", + "observation": { + "sender": ["5c8c44134852"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "re-subscribed", + "observation": { + "sender": ["5c8c44134852"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "58767661be83"], + "settlements": { + "start": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "replayed", + "observation": { + "sender": ["5c8c44134852", "f3ce12403bbb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "58767661be83", "45cd4d574823"], + "settlements": { + "start": "eb79a9b3682a", + "cutover": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["0ac95f8a19be", "eadd531c1068"] + } + }, + { + "id": "stopped", + "observation": { + "sender": ["5c8c44134852", "f3ce12403bbb", "b00f677bd438"], + "payloads": [ + "736ecc4aaa66", + "d6ca3d9d05d8", + "58767661be83", + "45cd4d574823", + "8e41aa274dd7" + ], + "settlements": { + "start": "eb79a9b3682a", + "cutover": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["0ac95f8a19be", "eadd531c1068"] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/notifications-desktop-stream.json b/mobile/rpc-foundation/goldens/notifications-desktop-stream.json new file mode 100644 index 00000000000..ed046922071 --- /dev/null +++ b/mobile/rpc-foundation/goldens/notifications-desktop-stream.json @@ -0,0 +1,301 @@ +{ + "operation": "notifications.desktop-stream", + "family": "notifications.desktop-stream", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "eacf859143588ae6bee2804975d642b6c1088d57ae77ffe298620250d9a9f0e4", + "scenarioSha256": "359add5203e68fcb85586f06babb694ee9d548e1dc58481e6d03871ab9f922cb", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "4b3d7f46bc5e": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "5359579cc62d": { + "running": true + }, + "56d53341cbeb": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "736ecc4aaa66": { + "name": "notifications.subscribe#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.subscribe\",\"params\":{\"includeDesktopSuppressed\":true}}", + "sent": 0 + }, + "75c17556f7cf": { + "name": "notifications.getMissedSince#1", + "args": [ + { + "name": "method", + "value": "notifications.getMissedSince" + }, + { + "name": "params", + "value": { + "deliveredPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + }, + { + "notificationEpoch": "epoch-1", + "notificationId": "note-2", + "notificationSeq": 8 + } + ], + "lastSeenSeq": 9007199254740991 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "dismissedPushes": [ + { + "notificationEpoch": "epoch-1", + "notificationId": "note-1", + "notificationSeq": 7 + } + ] + } + } + } + }, + "7a2a12ad5565": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-2" + }, + "sent": 1 + }, + "a0b2bcfcde77": { + "running": false + }, + "a315c185b085": { + "name": "notifications.unsubscribe#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.unsubscribe\",\"params\":{\"subscriptionId\":\"sub-1\"}}", + "sent": 2 + }, + "bcdd9c902f5e": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-1\\\"]\",\"seq\":7,\"expiresAt\":1767312000000}]" + }, + "sent": 1 + }, + "c83340909a1e": { + "name": "notification-tray.dismiss", + "value": { + "identifier": "tray-1" + }, + "sent": 1 + }, + "d6ca3d9d05d8": { + "name": "notifications.getMissedSince#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"notifications.getMissedSince\",\"params\":{\"lastSeenSeq\":9007199254740991,\"deliveredPushes\":[{\"notificationId\":\"note-1\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":7},{\"notificationId\":\"note-2\",\"notificationEpoch\":\"epoch-1\",\"notificationSeq\":8}]}}", + "sent": 1 + }, + "de9bc9ed43e5": { + "name": "device-store.setItem", + "value": { + "key": "orca:pushDismissalWatermarks:v1", + "value": "[{\"key\":\"[\\\"Yw3NKWbEM2aRElRI\\\",\\\"epoch-1\\\",\\\"note-2\\\"]\",\"seq\":8,\"expiresAt\":1767312000000}]" + }, + "sent": 1 + }, + "e662892b594b": { + "name": "notifications.unsubscribe#1", + "args": [ + { + "name": "method", + "value": "notifications.unsubscribe" + }, + { + "name": "params", + "value": { + "subscriptionId": "sub-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "unsubscribed": true + } + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "notifications-desktop-stream", + "checkpoints": [ + { + "id": "subscribed", + "observation": { + "sender": [], + "payloads": ["736ecc4aaa66"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "ready", + "observation": { + "sender": ["4b3d7f46bc5e"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": [] + } + }, + { + "id": "caught-up", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e"] + } + }, + { + "id": "dismissed", + "observation": { + "sender": ["75c17556f7cf"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8"], + "settlements": { + "start": "eb79a9b3682a" + }, + "state": "5359579cc62d", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "unsubscribing", + "observation": { + "sender": ["75c17556f7cf", "56d53341cbeb"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + }, + { + "id": "stopped", + "observation": { + "sender": ["75c17556f7cf", "e662892b594b"], + "payloads": ["736ecc4aaa66", "d6ca3d9d05d8", "a315c185b085"], + "settlements": { + "start": "eb79a9b3682a", + "stop": "eb79a9b3682a" + }, + "state": "a0b2bcfcde77", + "effects": ["bcdd9c902f5e", "c83340909a1e", "de9bc9ed43e5", "7a2a12ad5565"] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/notifications-display-test-accepted.json b/mobile/rpc-foundation/goldens/notifications-display-test-accepted.json index 70c5f093063..9d348618639 100644 --- a/mobile/rpc-foundation/goldens/notifications-display-test-accepted.json +++ b/mobile/rpc-foundation/goldens/notifications-display-test-accepted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f5d4dd00cd768a4f8048fccf26851d6bb103f57c43ba75e4e3598e5076ed13b9", "scenarioSha256": "e19c4ff95d568edbb5c0d6058eb17843be31bdfd528825985963f8ece8cbc652", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/notifications-push-gateway-rejected.json b/mobile/rpc-foundation/goldens/notifications-push-gateway-rejected.json index 1008eecd409..c69613eb174 100644 --- a/mobile/rpc-foundation/goldens/notifications-push-gateway-rejected.json +++ b/mobile/rpc-foundation/goldens/notifications-push-gateway-rejected.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2e3d939dc162dbc5a38d8a7207111688204a825fd70348721917b3016e1c9470", "scenarioSha256": "ac2b214ece34dc25aef2b73d020e04343f81cd48b3d243508be92cfdba01eb45", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/notifications-push-registered.json b/mobile/rpc-foundation/goldens/notifications-push-registered.json index f879a47617a..612776dfc66 100644 --- a/mobile/rpc-foundation/goldens/notifications-push-registered.json +++ b/mobile/rpc-foundation/goldens/notifications-push-registered.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "2e3d939dc162dbc5a38d8a7207111688204a825fd70348721917b3016e1c9470", "scenarioSha256": "90f49e430518bfc6e662da1d0c55b0084f30ab54dabdd15293b1f8ad9d2fa592", "platform": "darwin", 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 899286d305d..9deaa3b2f5d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197", "scenarioSha256": "e4fb7aa3b071c1207f206adcc0f31e92b6bb98a80f86a0772e48b5cebcab24ff", "platform": "darwin", 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 3df02ad215a..3f5b1fdb231 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197", "scenarioSha256": "5696ea2a62bb3f24902305f8bac0c4ae8f1e505f359db76fd69aabe353adae86", "platform": "darwin", 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 6ac0572ee2d..6e4d075dad5 100644 --- a/mobile/rpc-foundation/goldens/pairing-pre-profile-times-out.json +++ b/mobile/rpc-foundation/goldens/pairing-pre-profile-times-out.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197", "scenarioSha256": "9ab72231bf97fbe7eed232019c56568a9411433835eae424628af62c7c6a10c1", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-branch-identity.json b/mobile/rpc-foundation/goldens/pr-branch-identity.json index 061a9864053..641c9211506 100644 --- a/mobile/rpc-foundation/goldens/pr-branch-identity.json +++ b/mobile/rpc-foundation/goldens/pr-branch-identity.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "d1b208a7bee947a603949fdc1f0d145e8c5576926f89f3e32330585f3a115290", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-branch-repo-context.json b/mobile/rpc-foundation/goldens/pr-branch-repo-context.json index 61b86fd3141..70f458fc8a0 100644 --- a/mobile/rpc-foundation/goldens/pr-branch-repo-context.json +++ b/mobile/rpc-foundation/goldens/pr-branch-repo-context.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "bd715681a856254e0c374b504cece07e5df4c9a75fa2b97c35498df12210fbab", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-comment-mutation.json b/mobile/rpc-foundation/goldens/pr-comment-mutation.json index be32c3a1b2c..4fac95a8de5 100644 --- a/mobile/rpc-foundation/goldens/pr-comment-mutation.json +++ b/mobile/rpc-foundation/goldens/pr-comment-mutation.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "73cc5da2649b9687bb0d8247fa4ecf3c085746cf398515e8d2b40be2ed0da688", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-comment-resolve-unconfirmed.json b/mobile/rpc-foundation/goldens/pr-comment-resolve-unconfirmed.json index c019808fa54..6bb4682e434 100644 --- a/mobile/rpc-foundation/goldens/pr-comment-resolve-unconfirmed.json +++ b/mobile/rpc-foundation/goldens/pr-comment-resolve-unconfirmed.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "f425131d29fee8826c00a550fb537d0bd1a37bbaf3b33992984d5e04a990a512", "platform": "darwin", 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 404dda081f8..2223ec6d30f 100644 --- a/mobile/rpc-foundation/goldens/pr-mutation-in-band-failure.json +++ b/mobile/rpc-foundation/goldens/pr-mutation-in-band-failure.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "70a94f45dbf7d58d9024c1cc4c94edd98fa48cd5ccffe8f2b7c53fa3e55d18d3", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-mutation-status.json b/mobile/rpc-foundation/goldens/pr-mutation-status.json index bd1566c5b68..d988bede6e4 100644 --- a/mobile/rpc-foundation/goldens/pr-mutation-status.json +++ b/mobile/rpc-foundation/goldens/pr-mutation-status.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "e9291209234bacab12201f4c13bb592e06bd405215389e19f0754c23e79eb197", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-read-fork-routing.json b/mobile/rpc-foundation/goldens/pr-read-fork-routing.json index 6c7761f6476..444486028c6 100644 --- a/mobile/rpc-foundation/goldens/pr-read-fork-routing.json +++ b/mobile/rpc-foundation/goldens/pr-read-fork-routing.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "ba21f7fc3966cb1e3c1e59d6e8a8b184fa0559bf3037365391ce23e364befd7f", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-read-surface.json b/mobile/rpc-foundation/goldens/pr-read-surface.json index fe76a268a32..5163cc01560 100644 --- a/mobile/rpc-foundation/goldens/pr-read-surface.json +++ b/mobile/rpc-foundation/goldens/pr-read-surface.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "4246e7ffa62e85aac489c561171a6468f862b7f18eefac9926b65073616b6d35", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-read-upstream-error.json b/mobile/rpc-foundation/goldens/pr-read-upstream-error.json index 9b38432aff5..15fdd815bda 100644 --- a/mobile/rpc-foundation/goldens/pr-read-upstream-error.json +++ b/mobile/rpc-foundation/goldens/pr-read-upstream-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "b2445b299e18664b698d659c5041860b8a253314687666ae467aab441ab07235", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-title-mutation.json b/mobile/rpc-foundation/goldens/pr-title-mutation.json index 2ceb6cfafe5..bef4c423911 100644 --- a/mobile/rpc-foundation/goldens/pr-title-mutation.json +++ b/mobile/rpc-foundation/goldens/pr-title-mutation.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "071e745453795d18d683aaab63e810783e3cee4927b47425c20a3d915397d0dd", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-title-unconfirmed.json b/mobile/rpc-foundation/goldens/pr-title-unconfirmed.json index 8da0e3f0286..9bbc421e90d 100644 --- a/mobile/rpc-foundation/goldens/pr-title-unconfirmed.json +++ b/mobile/rpc-foundation/goldens/pr-title-unconfirmed.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "669260c675021b37252dc5023a7a78e4e90536c2f35d9a5da3e53778e6a0cf52", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-triage-invalid-terminal.json b/mobile/rpc-foundation/goldens/pr-triage-invalid-terminal.json index 0ff3cc4a8d5..d63b7575db7 100644 --- a/mobile/rpc-foundation/goldens/pr-triage-invalid-terminal.json +++ b/mobile/rpc-foundation/goldens/pr-triage-invalid-terminal.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "58ad4e4d5b0200c44f329236e10fd81918a1cc36b33b22cba24662c79dd61b4e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-triage-launch.json b/mobile/rpc-foundation/goldens/pr-triage-launch.json index 6a35065abf5..b13a85c2f7a 100644 --- a/mobile/rpc-foundation/goldens/pr-triage-launch.json +++ b/mobile/rpc-foundation/goldens/pr-triage-launch.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "8bb2ff4e899ee873289fed7c1ef12e7f9dba91949125b1f0e4336d378ceb071e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/pr-triage-send-locked.json b/mobile/rpc-foundation/goldens/pr-triage-send-locked.json index 271a1bbd29c..54b9bc0b9c1 100644 --- a/mobile/rpc-foundation/goldens/pr-triage-send-locked.json +++ b/mobile/rpc-foundation/goldens/pr-triage-send-locked.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f560ff1582487c118756c527faa1fb1f65e37ce22ca9573491fd4b2dbcedf38d", "scenarioSha256": "d80bc346e84bc35e6dce70643dcd3af3ea9e5a7f8a1f2b7a9e92c71c0c30d4c9", "platform": "darwin", 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 35147d7ef0c..436e1b32d53 100644 --- a/mobile/rpc-foundation/goldens/probe-new-tab-both-refused.json +++ b/mobile/rpc-foundation/goldens/probe-new-tab-both-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "819fa73c7700b4d526da91c37558a6498008d745d1debcc26e6bb757550ebf99", "platform": "darwin", 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 53bc43d263a..50c559d6f91 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "500396d72abd2f73d11ef066bca3f88798c8cbdaef09fa7c1c8d1fbaf0b3b85a", "platform": "darwin", 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 214124c0ddb..5fae96430a4 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "daf68df8840ea6872521d823cc17e1e5de3f3a74a8855465fcf40cc276e9c2ce", "platform": "darwin", 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 0b17b2b50f3..3ea8d06b15a 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "61e36caf6b3bb01c3ad0db282b7f0fbc0f300d40184f9cf3d7e4e3a3194a4f2a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/push-dismissal-tray-reconciled.json b/mobile/rpc-foundation/goldens/push-dismissal-tray-reconciled.json index 144a4c5ea1d..aa37b92cf34 100644 --- a/mobile/rpc-foundation/goldens/push-dismissal-tray-reconciled.json +++ b/mobile/rpc-foundation/goldens/push-dismissal-tray-reconciled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "595a3eb2994d0596b9fcd0707b175b4e978625053dfbc5c541b0350c0cbfb524", "scenarioSha256": "318fab8c1efb1786bbdaea7f13b769952c1ce463bc5504dca6a9f545e905b7c9", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/quick-commands-load-refused.json b/mobile/rpc-foundation/goldens/quick-commands-load-refused.json index e8c1c0c6ad0..8799f284cda 100644 --- a/mobile/rpc-foundation/goldens/quick-commands-load-refused.json +++ b/mobile/rpc-foundation/goldens/quick-commands-load-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "42573387533f75122f626ce6ec81c1e61fe54cde5df416154bb7cba132f53309", "platform": "darwin", 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 cb91f3d34d7..86382898e26 100644 --- a/mobile/rpc-foundation/goldens/quick-commands-loaded-and-saved.json +++ b/mobile/rpc-foundation/goldens/quick-commands-loaded-and-saved.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "a621156bbb662c78a0baa356b60d0af41d10a7bd14e54f23be0581a59377cec3", "platform": "darwin", 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 90806018e35..a5743dd6e48 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "72517336e451e1e078135103073c1821e8af27c0702f6dc83b9a686fe7ff8c04", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/relay-direct-upgrade-commits.json b/mobile/rpc-foundation/goldens/relay-direct-upgrade-commits.json index 3cea79791bb..77235b72ace 100644 --- a/mobile/rpc-foundation/goldens/relay-direct-upgrade-commits.json +++ b/mobile/rpc-foundation/goldens/relay-direct-upgrade-commits.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2", "scenarioSha256": "a92bccd183127829b6dfd85add28e42370d54990f63214940b1c584f7fde56a9", "platform": "darwin", 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 f2865abeb08..e636377ee91 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2", "scenarioSha256": "7d5cad367e76767b039fc5ebc15837930f02c5e1bed33ae7ca4695bae56287bd", "platform": "darwin", 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 37613020e07..874219d108e 100644 --- a/mobile/rpc-foundation/goldens/relay-pairing-recovery-invite-authorizes.json +++ b/mobile/rpc-foundation/goldens/relay-pairing-recovery-invite-authorizes.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197", "scenarioSha256": "8dc3fd27c5720276608ca8743990e4f57d94eab84f620e9aa42702a4686fd5a9", "platform": "darwin", 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 e5fd14c7638..7630b1d5969 100644 --- a/mobile/rpc-foundation/goldens/relay-pairing-recovery-resume-committed.json +++ b/mobile/rpc-foundation/goldens/relay-pairing-recovery-resume-committed.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e33d584229530c716ecdc44d198b95fcfb4dfd9468fba7d5222ee3f122950197", "scenarioSha256": "7e54c3af4b8b8e6eac007267fb96620283b735491883c505401c79656d920ca6", "platform": "darwin", 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 90c00e3b9b8..2496d16ba95 100644 --- a/mobile/rpc-foundation/goldens/relay-rotation-installs-and-commits.json +++ b/mobile/rpc-foundation/goldens/relay-rotation-installs-and-commits.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2", "scenarioSha256": "c786fb19f9593ee60238e42813561edf6f5e976fcf217dff8de977a333fe8451", "platform": "darwin", 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 20474cd77a5..e78c91495e7 100644 --- a/mobile/rpc-foundation/goldens/relay-rotation-resumes-committed-pending.json +++ b/mobile/rpc-foundation/goldens/relay-rotation-resumes-committed-pending.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "651e75383caf1b30c329dec2d5d4f0da5358c410402d03cbb087f39600d7a4d2", "scenarioSha256": "96df784c1d56de3bdd04afe20ab019339c7d9a616528ca2617e2fffe4f0157c8", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/review-create-terminal-refused.json b/mobile/rpc-foundation/goldens/review-create-terminal-refused.json index 2b5d74d44a9..2f04d53fc46 100644 --- a/mobile/rpc-foundation/goldens/review-create-terminal-refused.json +++ b/mobile/rpc-foundation/goldens/review-create-terminal-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fd443c85a6d2b0c1355e29f6f366e35d330a2033c7ddb90ab6713584ddda2f6f", "scenarioSha256": "af837de2e273c5f03130b51d6e1a9bff9ff99a4e8d1c9554a53134acb5924c72", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/review-mark-reviewed-persists.json b/mobile/rpc-foundation/goldens/review-mark-reviewed-persists.json index fc7fb0021cd..768c4029255 100644 --- a/mobile/rpc-foundation/goldens/review-mark-reviewed-persists.json +++ b/mobile/rpc-foundation/goldens/review-mark-reviewed-persists.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fd443c85a6d2b0c1355e29f6f366e35d330a2033c7ddb90ab6713584ddda2f6f", "scenarioSha256": "9f1c39e91a97266b0a550d2b2d061592ae050078401ef23177dd2e00db67bf04", "platform": "darwin", 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 19940d0fe41..2c5550cb592 100644 --- a/mobile/rpc-foundation/goldens/review-mark-reviewed-rolls-back.json +++ b/mobile/rpc-foundation/goldens/review-mark-reviewed-rolls-back.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fd443c85a6d2b0c1355e29f6f366e35d330a2033c7ddb90ab6713584ddda2f6f", "scenarioSha256": "c858cfca59148548146b4c0a775e9518d3ab826ef268ccc9af60b04e52cc9e3d", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/review-open-in-session.json b/mobile/rpc-foundation/goldens/review-open-in-session.json index eece03b5112..d2c2ec77665 100644 --- a/mobile/rpc-foundation/goldens/review-open-in-session.json +++ b/mobile/rpc-foundation/goldens/review-open-in-session.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fd443c85a6d2b0c1355e29f6f366e35d330a2033c7ddb90ab6713584ddda2f6f", "scenarioSha256": "2f0a6aa8ce100edbce9ccf64c81efe64356fccbdcd2e16f561360e2b11b5700f", "platform": "darwin", 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 be54dcc1de2..b55453435b6 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fd443c85a6d2b0c1355e29f6f366e35d330a2033c7ddb90ab6713584ddda2f6f", "scenarioSha256": "7099d7311b2046dde21a2750201718995c0869bc4f17fb7f3ce2b997ce0e6506", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/review-stage-file.json b/mobile/rpc-foundation/goldens/review-stage-file.json index ffbf7000ff2..28c5f2a90b1 100644 --- a/mobile/rpc-foundation/goldens/review-stage-file.json +++ b/mobile/rpc-foundation/goldens/review-stage-file.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fd443c85a6d2b0c1355e29f6f366e35d330a2033c7ddb90ab6713584ddda2f6f", "scenarioSha256": "793e954960d371c6477d4cd3d70a5215c0bd90764684eafdb1e1a2e09790cc86", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/review-stage-refused.json b/mobile/rpc-foundation/goldens/review-stage-refused.json index dfbf2b415f8..3100600c945 100644 --- a/mobile/rpc-foundation/goldens/review-stage-refused.json +++ b/mobile/rpc-foundation/goldens/review-stage-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fd443c85a6d2b0c1355e29f6f366e35d330a2033c7ddb90ab6713584ddda2f6f", "scenarioSha256": "46b720fed417d29f79dbde4cc7941579f2d6a2f920bae24234537480079e7de5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-base-ref-default.json b/mobile/rpc-foundation/goldens/sc-base-ref-default.json index dbffa6d35c1..ae034ef3da0 100644 --- a/mobile/rpc-foundation/goldens/sc-base-ref-default.json +++ b/mobile/rpc-foundation/goldens/sc-base-ref-default.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "374129def6baa0e06b808c067831820966638d79d7a782e96c1f2f891cc9dc86", "platform": "darwin", 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 f4ed44410c9..501f0e0c27d 100644 --- a/mobile/rpc-foundation/goldens/sc-base-ref-repo-fallback.json +++ b/mobile/rpc-foundation/goldens/sc-base-ref-repo-fallback.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "97a8b8f5b9a7c7467745666becee07f5dfc57fb283d4e80dcbe7941509177598", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-base-ref-unavailable.json b/mobile/rpc-foundation/goldens/sc-base-ref-unavailable.json index 895cf086da1..f3740e252e2 100644 --- a/mobile/rpc-foundation/goldens/sc-base-ref-unavailable.json +++ b/mobile/rpc-foundation/goldens/sc-base-ref-unavailable.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "25a4762d735dfb4979e6ef31b9fdb380941a824a54b45b3d08ddb2cde25c2eb7", "platform": "darwin", 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 89c3e912032..ce443dd36b8 100644 --- a/mobile/rpc-foundation/goldens/sc-base-ref-worktree-hit.json +++ b/mobile/rpc-foundation/goldens/sc-base-ref-worktree-hit.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "f3b193f93f6c9de41d11e706ecbd99648eb2ed41ccb7c66cdb80c934e780ed7c", "platform": "darwin", 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 e42df77d058..64d703f4958 100644 --- a/mobile/rpc-foundation/goldens/sc-commit-message-cancel-rejected.json +++ b/mobile/rpc-foundation/goldens/sc-commit-message-cancel-rejected.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "013db25622b180a8333bb1ef27c22a5b1f8e04148201201e5cc3413a10640781", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-commit-message-canceled.json b/mobile/rpc-foundation/goldens/sc-commit-message-canceled.json index 89def744792..937e741caf1 100644 --- a/mobile/rpc-foundation/goldens/sc-commit-message-canceled.json +++ b/mobile/rpc-foundation/goldens/sc-commit-message-canceled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "15bf6c17f4b524dfbf5373b2eeed61ee2e659421cf8b6e3cff6c0378c7692cc1", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-commit-message-generated.json b/mobile/rpc-foundation/goldens/sc-commit-message-generated.json index ea4d8a461d1..3d66283a6ba 100644 --- a/mobile/rpc-foundation/goldens/sc-commit-message-generated.json +++ b/mobile/rpc-foundation/goldens/sc-commit-message-generated.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "540f05d84d1cbffd566af933c547838c75500bb5d708e8558c21fe8131d724e3", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-create-existing-review.json b/mobile/rpc-foundation/goldens/sc-create-existing-review.json index 6239b2a56c7..4c85954cdb1 100644 --- a/mobile/rpc-foundation/goldens/sc-create-existing-review.json +++ b/mobile/rpc-foundation/goldens/sc-create-existing-review.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "7d6099248aa6a2ef19f2e169ff917af794649d9d64d139aa9ffeea6a41355ddc", "platform": "darwin", 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 11832c16d54..1ced714a19d 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "447f9b3d697dbfe21cb7fb6e12d1bf5fa94b023b7e1697bdc2dc82ce7072183f", "platform": "darwin", 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 0e6c5fed16e..94afe21a322 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "2deb0435ef63a3e0102e28f2f3f331039486d193d1e1ffdfb53ad86d3ff039f0", "platform": "darwin", 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 bdafe36a1f7..ecf2a6e84c2 100644 --- a/mobile/rpc-foundation/goldens/sc-create-pushes-then-creates.json +++ b/mobile/rpc-foundation/goldens/sc-create-pushes-then-creates.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "0f86b3e6059c48cd327c55df2452a9bc6ea85584ffbeacafad496f600c20e06f", "platform": "darwin", 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 82d3eb80d38..056ec7541bb 100644 --- a/mobile/rpc-foundation/goldens/sc-create-refused-empty-message.json +++ b/mobile/rpc-foundation/goldens/sc-create-refused-empty-message.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "5008e69a8e396b1deccd98712d92650a630f971cd76a02862a461afb8617b8a4", "platform": "darwin", 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 ac3cf65bcda..2234220ac99 100644 --- a/mobile/rpc-foundation/goldens/sc-create-rejected-empty-message.json +++ b/mobile/rpc-foundation/goldens/sc-create-rejected-empty-message.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "ea71081982a101d0f8624707b59c99de9981e9b1d1bafa25c66d575e3f876ff4", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-eligibility-fetched.json b/mobile/rpc-foundation/goldens/sc-eligibility-fetched.json index c641261f517..d921046b664 100644 --- a/mobile/rpc-foundation/goldens/sc-eligibility-fetched.json +++ b/mobile/rpc-foundation/goldens/sc-eligibility-fetched.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "f6a1595073abe11b33973e8865900a1d849f44221961da5c12ea13aa696f6490", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-history-loaded.json b/mobile/rpc-foundation/goldens/sc-history-loaded.json index f0c9ecc1a67..ae487a8b10e 100644 --- a/mobile/rpc-foundation/goldens/sc-history-loaded.json +++ b/mobile/rpc-foundation/goldens/sc-history-loaded.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "83f61085a91458bad529905ecc6fe240c598cddfe44a56dd497b8aed9fb8a7e5", "platform": "darwin", 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 1a022069d09..ed442b6edf7 100644 --- a/mobile/rpc-foundation/goldens/sc-pr-link-hosted-review.json +++ b/mobile/rpc-foundation/goldens/sc-pr-link-hosted-review.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "42b0304b2fdce08b7ff52ec979dd9f199f368e5e4ef0b5370acc417909b592b3", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-pr-link-read.json b/mobile/rpc-foundation/goldens/sc-pr-link-read.json index e667845db2d..e5165f69d44 100644 --- a/mobile/rpc-foundation/goldens/sc-pr-link-read.json +++ b/mobile/rpc-foundation/goldens/sc-pr-link-read.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "4520bd54a55eabfe6ec64a4b2f824f095f98b2fffd1bf22fe4f9ec7f63cbfa3f", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-pr-link-set.json b/mobile/rpc-foundation/goldens/sc-pr-link-set.json index f7ed0c21a82..5b1f2b0abb8 100644 --- a/mobile/rpc-foundation/goldens/sc-pr-link-set.json +++ b/mobile/rpc-foundation/goldens/sc-pr-link-set.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "b65bad4f8c0ae0b686f6c3db93bd43ffa072ae426f978f1a86ad8008fb24fa24", "platform": "darwin", 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 10030d06258..3d4bb2efb6f 100644 --- a/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-refusal.json +++ b/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-refusal.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "9de96287a4dfa6cf5c9a8b683cc696fdc2cd387f86f231e22ee3f100a2e778e3", "platform": "darwin", 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 e28c31f3d3b..0dcf3642bd1 100644 --- a/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-rejection.json +++ b/mobile/rpc-foundation/goldens/sc-prefill-unavailable-on-rejection.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "adbdfcc3895cc04d830900de518e689c9e63f6f75569127e1fde24488658e8a0", "platform": "darwin", 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 81476f557c8..3fa3e6d9502 100644 --- a/mobile/rpc-foundation/goldens/sc-prerequisite-force-with-lease.json +++ b/mobile/rpc-foundation/goldens/sc-prerequisite-force-with-lease.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "ec2847b4af357d8564d8e0a9a1072713c1afd7ff86ba69e9c83c056a6841ee39", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-prerequisite-publish.json b/mobile/rpc-foundation/goldens/sc-prerequisite-publish.json index c0eed9908b5..ad471d5a7a6 100644 --- a/mobile/rpc-foundation/goldens/sc-prerequisite-publish.json +++ b/mobile/rpc-foundation/goldens/sc-prerequisite-publish.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "6cf6ebd20adc4cc76a12d3424863ee9db2b24f36593664a1f4e0e05de9a53d39", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-prerequisite-push.json b/mobile/rpc-foundation/goldens/sc-prerequisite-push.json index d5a641804b0..83299697451 100644 --- a/mobile/rpc-foundation/goldens/sc-prerequisite-push.json +++ b/mobile/rpc-foundation/goldens/sc-prerequisite-push.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "e6e8197a541cd73e5811a1f28b0dbfc414a4d34c1ae6929fc1bbae1213820674", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-prerequisite-skipped.json b/mobile/rpc-foundation/goldens/sc-prerequisite-skipped.json index 782c4eef8ae..cc22643a7bb 100644 --- a/mobile/rpc-foundation/goldens/sc-prerequisite-skipped.json +++ b/mobile/rpc-foundation/goldens/sc-prerequisite-skipped.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "523d1ee21e3871a4dffc32f48d2e28c31ecea48cbf3f842acffc8355be06b14b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-reveal-first-poll.json b/mobile/rpc-foundation/goldens/sc-reveal-first-poll.json index f96d1beecbe..8f23795ed50 100644 --- a/mobile/rpc-foundation/goldens/sc-reveal-first-poll.json +++ b/mobile/rpc-foundation/goldens/sc-reveal-first-poll.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "00b26cb279b0a934df98d93ba98a4a0c79e302c7690c582e778dc0156ab4f235", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-reveal-timeout.json b/mobile/rpc-foundation/goldens/sc-reveal-timeout.json index e4f8d5f10c4..a3644643ecf 100644 --- a/mobile/rpc-foundation/goldens/sc-reveal-timeout.json +++ b/mobile/rpc-foundation/goldens/sc-reveal-timeout.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "5e47c7960b9352753f0751d4ccf5e3ff7fb7b74a63cc4e4df3c3ffdcc6c1e66b", "scenarioSha256": "fcd61f1ef46c42889827a87876239534b851c425f8ef7a9405ea95b8d07d2363", "platform": "darwin", 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 5b0d5207ab9..60575cd174e 100644 --- a/mobile/rpc-foundation/goldens/sc-review-commit-inner-failure.json +++ b/mobile/rpc-foundation/goldens/sc-review-commit-inner-failure.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "db1fb2a584cd806028b9be861283a63aa4836c83f61558f3d518ddbb7a59498d", "platform": "darwin", 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 195dba4b243..288aaf92b55 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "dba1676583dc832ef059285a6bd4c3eefe6be0230e42100cb9d7a125755d136b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-review-commit-rejected.json b/mobile/rpc-foundation/goldens/sc-review-commit-rejected.json index 1b872dd60fa..49318a8b643 100644 --- a/mobile/rpc-foundation/goldens/sc-review-commit-rejected.json +++ b/mobile/rpc-foundation/goldens/sc-review-commit-rejected.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "de079de9cc21bfb40da6e1431273b10c3e2a5b5402b91b2b8a85c8d7ac41bc97", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-review-commit.json b/mobile/rpc-foundation/goldens/sc-review-commit.json index f8fff87190f..e10d917b27d 100644 --- a/mobile/rpc-foundation/goldens/sc-review-commit.json +++ b/mobile/rpc-foundation/goldens/sc-review-commit.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "a29d518b2d075e8e4811404e0fcbf8948fbfe53a3aefbf0948cb2f2e622e8cbb", "platform": "darwin", 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 aca33c03143..64f791f5807 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "37ba7780ca9525ab313c0a9c781ce5bb26344e63af9272c32ae889621f383b2b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/sc-review-status-normalized.json b/mobile/rpc-foundation/goldens/sc-review-status-normalized.json index 1bcd696cb7d..348d609b42c 100644 --- a/mobile/rpc-foundation/goldens/sc-review-status-normalized.json +++ b/mobile/rpc-foundation/goldens/sc-review-status-normalized.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c582ce355b0704b38d7e84cbce352630096c91231bf09aecd1f6dbb409fed17f", "scenarioSha256": "93193acd57d6f00abc8e6c22ec3a8f1ca6ce7c5808d906d0aa7c11e41dab4635", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/schedules-b3.json b/mobile/rpc-foundation/goldens/schedules-b3.json index dc1e41c320a..9c3461add73 100644 --- a/mobile/rpc-foundation/goldens/schedules-b3.json +++ b/mobile/rpc-foundation/goldens/schedules-b3.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab", "scenarioSha256": "b59fb599dd3a5fbc79bb8602dcec4b1c51a392c662efab7efc8324fc718ce8de", "platform": "darwin", 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 680402939d6..426bd78e11b 100644 --- a/mobile/rpc-foundation/goldens/schedules-settings-home-providers-fulfilled.json +++ b/mobile/rpc-foundation/goldens/schedules-settings-home-providers-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "fbd311a377672a9335521c30734880eea1b04bab0aff367854c1deebcf66b105", "platform": "darwin", 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 b28d83c0553..ec3824cdbd8 100644 --- a/mobile/rpc-foundation/goldens/schedules-settings-new-tab-ssh.json +++ b/mobile/rpc-foundation/goldens/schedules-settings-new-tab-ssh.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "2726d71130f623e3ad02c168c13269979ca6f84703bf1c5aaf36bd4432dfb516", "platform": "darwin", 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 57d4650ca82..a467d37b5e6 100644 --- a/mobile/rpc-foundation/goldens/schedules-settings-repo-metadata-fulfilled.json +++ b/mobile/rpc-foundation/goldens/schedules-settings-repo-metadata-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "664eba1468e229f9ac2dced262e7ad896ead01688dff4c570f397c3f8594efd7", "platform": "darwin", 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 144bebf38c2..3e5686dcf20 100644 --- a/mobile/rpc-foundation/goldens/schedules-settings-resume-metadata-fulfilled.json +++ b/mobile/rpc-foundation/goldens/schedules-settings-resume-metadata-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "7bfba3fae1dc33acf40e8a955bbfccf28580b3daee3270dec6a15e6cefd45a84", "platform": "darwin", 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 c18f4aa119c..67bf41b72ac 100644 --- a/mobile/rpc-foundation/goldens/schedules-settings-task-hydration-fulfilled.json +++ b/mobile/rpc-foundation/goldens/schedules-settings-task-hydration-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "02e3ca10296704b5478185e9d3dc0136596a2ee57580d7f9268672568dab4cd4", "platform": "darwin", 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 ed236a25cfb..ad9164aaf0b 100644 --- a/mobile/rpc-foundation/goldens/schedules-settings-workspace-context-fulfilled.json +++ b/mobile/rpc-foundation/goldens/schedules-settings-workspace-context-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "eb980fc027ca0200212ba6ad3bf9a1ab3460936a7bb4b04353a9462eecd287a1", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-create-browser-refused.json b/mobile/rpc-foundation/goldens/session-create-browser-refused.json index 372cacd36ae..eee6b5a7703 100644 --- a/mobile/rpc-foundation/goldens/session-create-browser-refused.json +++ b/mobile/rpc-foundation/goldens/session-create-browser-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "59b5f0aac2f8c1aab5fc3a457fb69e1a2f46cc88c617c25e638175acb7f7c0cb", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-create-browser-tab.json b/mobile/rpc-foundation/goldens/session-create-browser-tab.json index cfdfa32185c..13842a3d0ea 100644 --- a/mobile/rpc-foundation/goldens/session-create-browser-tab.json +++ b/mobile/rpc-foundation/goldens/session-create-browser-tab.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "36dbd24dc3d24be8c14217ced1963d10ef8264438729dd146cbff79d9fbdf279", "platform": "darwin", 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 9068d2cf52f..b5e4a5391f1 100644 --- a/mobile/rpc-foundation/goldens/session-create-markdown-name-collision.json +++ b/mobile/rpc-foundation/goldens/session-create-markdown-name-collision.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "be8d4b4be07b0ee5988471b26813d7d0d2a97fbd789b52e7ce00dd09a2e9d75c", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-create-markdown-note.json b/mobile/rpc-foundation/goldens/session-create-markdown-note.json index 3596bf45e16..b683fabcd5f 100644 --- a/mobile/rpc-foundation/goldens/session-create-markdown-note.json +++ b/mobile/rpc-foundation/goldens/session-create-markdown-note.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "4118eea1175cba0f15174072f5715f9054ded09a4cb0c359fc4ee41ad00e9440", "platform": "darwin", 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 813986a4593..e98ee2c11f7 100644 --- a/mobile/rpc-foundation/goldens/session-diff-notes-load-refused.json +++ b/mobile/rpc-foundation/goldens/session-diff-notes-load-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "5ab16800f82813778078e84739e0ac72886c145d20789dedcea9428ee31b9182", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-diff-notes-loaded.json b/mobile/rpc-foundation/goldens/session-diff-notes-loaded.json index c065921c953..6d74db5ee9e 100644 --- a/mobile/rpc-foundation/goldens/session-diff-notes-loaded.json +++ b/mobile/rpc-foundation/goldens/session-diff-notes-loaded.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "795286ff495a243059a3eb55ccbbc9b4adfdd2034258f91f9182e83c7492fa60", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-file-tab-read.json b/mobile/rpc-foundation/goldens/session-file-tab-read.json index b82865c5e25..87d20cc5d23 100644 --- a/mobile/rpc-foundation/goldens/session-file-tab-read.json +++ b/mobile/rpc-foundation/goldens/session-file-tab-read.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "82c1d8e87e0a87c1c1a6dba7bd4f61e08f77fe0ae1b3758d1b5543bd9719a53f", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-markdown-save-conflict.json b/mobile/rpc-foundation/goldens/session-markdown-save-conflict.json index d3c80f51706..7f7d8861668 100644 --- a/mobile/rpc-foundation/goldens/session-markdown-save-conflict.json +++ b/mobile/rpc-foundation/goldens/session-markdown-save-conflict.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "76bccdabb78dc3f16b36987f6b7cefbe41e08167fe39612620e27ad476089f93", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-markdown-saved.json b/mobile/rpc-foundation/goldens/session-markdown-saved.json index 2936259eb93..8fdc3df4746 100644 --- a/mobile/rpc-foundation/goldens/session-markdown-saved.json +++ b/mobile/rpc-foundation/goldens/session-markdown-saved.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "42334358b5e5966001639653b553f15033f6e201d785107871fe056536f0a5e2", "scenarioSha256": "a2b5b73b2455f9efc48361e4b96ab1d3ecc3d136459403c9c3678104604cd774", "platform": "darwin", 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 d11a8b880b8..c77b0cc12ef 100644 --- a/mobile/rpc-foundation/goldens/session-markdown-tab-disk-fallback.json +++ b/mobile/rpc-foundation/goldens/session-markdown-tab-disk-fallback.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "f46cef9d1c6a5ed6d8b6f1d180cdf5c666f52e043b70feb07e5fccee885ceeda", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-markdown-tab-read.json b/mobile/rpc-foundation/goldens/session-markdown-tab-read.json index ae55f7a19c1..7c219845101 100644 --- a/mobile/rpc-foundation/goldens/session-markdown-tab-read.json +++ b/mobile/rpc-foundation/goldens/session-markdown-tab-read.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "f88c39d410655b229aa740b45ccdaa10186f41f7c6cbff9fed6eaee3f0a55844", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-markdown-tab-refused.json b/mobile/rpc-foundation/goldens/session-markdown-tab-refused.json index ec691a189ca..673d3de7841 100644 --- a/mobile/rpc-foundation/goldens/session-markdown-tab-refused.json +++ b/mobile/rpc-foundation/goldens/session-markdown-tab-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "63227f28110e90acac78058baa875b1bc7f8895b5033e47016a2ffa9f42f66ce", "platform": "darwin", 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 98acf6e61bf..ce96a8d3031 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0", "scenarioSha256": "72a972996461cc58bda2b1c11dbb4ecdbdecd5ff2f977c3d61e40d635f63c1b9", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-tab-activation-refused.json b/mobile/rpc-foundation/goldens/session-tab-activation-refused.json index 8c0f1449a7e..9f33137db99 100644 --- a/mobile/rpc-foundation/goldens/session-tab-activation-refused.json +++ b/mobile/rpc-foundation/goldens/session-tab-activation-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0", "scenarioSha256": "e5049c9ee2aef93194adf1b9540c1eb4b085e6f975648c5ed605718d19fc6afa", "platform": "darwin", 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 569269c1048..d74279591b3 100644 --- a/mobile/rpc-foundation/goldens/session-tab-activation-transport-error.json +++ b/mobile/rpc-foundation/goldens/session-tab-activation-transport-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0", "scenarioSha256": "44e25e8624c6d7f072c5f7aa3c706df29d0e751bb59b3fb58bec003233f7e5e3", "platform": "darwin", 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 51e285d8866..4d5b10c03e3 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "1b3da0207aef65f4b2348aed334284259170c640e767fb354b9e95f3c1369445", "platform": "darwin", 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 cdbc2e0f166..7451a59e9ef 100644 --- a/mobile/rpc-foundation/goldens/session-tab-close-session-tab.json +++ b/mobile/rpc-foundation/goldens/session-tab-close-session-tab.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "fe83a7d50d08f874d863eb8872bcb24d974c1dc46571a93d3f9184f8feba63a4", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-tab-close-terminal.json b/mobile/rpc-foundation/goldens/session-tab-close-terminal.json index 4267f0dd135..eb2bcefadd6 100644 --- a/mobile/rpc-foundation/goldens/session-tab-close-terminal.json +++ b/mobile/rpc-foundation/goldens/session-tab-close-terminal.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "194b010d00fdeca85418870fd053ac500c38cae02e98c4bfc544b8fea78bbcb8", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-tab-rename.json b/mobile/rpc-foundation/goldens/session-tab-rename.json index 38c348f1167..48c5210c2d4 100644 --- a/mobile/rpc-foundation/goldens/session-tab-rename.json +++ b/mobile/rpc-foundation/goldens/session-tab-rename.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "562c2f4ab669e774dd7045ecd9518e483845433fef6034688090f3b056df2815", "scenarioSha256": "9e877af8539e5425f65edd6b3ff8af73e719aae2033980411a8e8a3b508dcd9e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-tabs-health-errored.json b/mobile/rpc-foundation/goldens/session-tabs-health-errored.json index fcc0e5ca517..6a764e2de7d 100644 --- a/mobile/rpc-foundation/goldens/session-tabs-health-errored.json +++ b/mobile/rpc-foundation/goldens/session-tabs-health-errored.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0", "scenarioSha256": "4f55a21a5c42ff8d96ccb1b16de235f91f9f7e38fe90de7191c36c8c16cc4e43", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-tabs-health-reconciled.json b/mobile/rpc-foundation/goldens/session-tabs-health-reconciled.json index 021117b3108..3de4c71a42d 100644 --- a/mobile/rpc-foundation/goldens/session-tabs-health-reconciled.json +++ b/mobile/rpc-foundation/goldens/session-tabs-health-reconciled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0", "scenarioSha256": "29bee268df8e92fb1e3fd59291262c8d2d04a1b7e9fe40f6ed8dd181b0df828a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-tabs-health-refused.json b/mobile/rpc-foundation/goldens/session-tabs-health-refused.json index 0b2afdb8248..2f8d951107e 100644 --- a/mobile/rpc-foundation/goldens/session-tabs-health-refused.json +++ b/mobile/rpc-foundation/goldens/session-tabs-health-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0", "scenarioSha256": "101e8ce865088891800680db0e3df787b5f15ceb05ace9840931c384d9732d1c", "platform": "darwin", 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 bd9830f419e..85bb735bbc9 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4a1e81ab3229c8fd10b3ad435568efec11a944e0f02a183f94e4b1f44a7e5de0", "scenarioSha256": "5381b6ade796596ac362d4ed64349266e65fe8fd2b4fc778a54315d4b6fda3da", "platform": "darwin", 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 658c4934418..4d0eb0fabaf 100644 --- a/mobile/rpc-foundation/goldens/session-terminal-list-dedupes-handles.json +++ b/mobile/rpc-foundation/goldens/session-terminal-list-dedupes-handles.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "d0f5ecc9c8fcb10193f481648215a54460ce5a54a8fbd2ded3921a9599fefc0a", "platform": "darwin", 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 f9124ff603e..430438479ea 100644 --- a/mobile/rpc-foundation/goldens/session-terminal-list-empty-guarded.json +++ b/mobile/rpc-foundation/goldens/session-terminal-list-empty-guarded.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "5c2b3237a14f9df9357ab458b2e21f2df8e68ad6bf6dc5670c0ace7eeb567e80", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-terminal-list-merged.json b/mobile/rpc-foundation/goldens/session-terminal-list-merged.json index 937b95b4d54..db082718ddc 100644 --- a/mobile/rpc-foundation/goldens/session-terminal-list-merged.json +++ b/mobile/rpc-foundation/goldens/session-terminal-list-merged.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "9f3fb6e58e8d9ef4f52b2b6c0a42b6e4285d5786060f966261795cf64d055f65", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/session-terminal-list-refused.json b/mobile/rpc-foundation/goldens/session-terminal-list-refused.json index 9950472b4fe..8715e263d3f 100644 --- a/mobile/rpc-foundation/goldens/session-terminal-list-refused.json +++ b/mobile/rpc-foundation/goldens/session-terminal-list-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "a3daf9a05d05424959baf77feb45cb0c076d77d8c49e877941ed612cc1e5ce95", "scenarioSha256": "10a8ba5332f4fc2f90cff537ca69f2f1474339cbc4996f67a6feaea70669fb25", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-bot-overrides-fulfilled.json b/mobile/rpc-foundation/goldens/settings-bot-overrides-fulfilled.json index 280ba09d19c..8436dae7ce4 100644 --- a/mobile/rpc-foundation/goldens/settings-bot-overrides-fulfilled.json +++ b/mobile/rpc-foundation/goldens/settings-bot-overrides-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "4b4b4a8d1acaaec1c8dde0233dc49a696ffe53466578477efcbcdb7263dbd617", "platform": "darwin", 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 a0e0132e38f..44ea0ace386 100644 --- a/mobile/rpc-foundation/goldens/settings-bot-overrides-refresh-refused.json +++ b/mobile/rpc-foundation/goldens/settings-bot-overrides-refresh-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "cac4980465661fba372e187699741123a4edeb9270125a0a1cad7bbb6a6adebd", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-bot-overrides-refused.json b/mobile/rpc-foundation/goldens/settings-bot-overrides-refused.json index 98d54fe8627..d1ccc5f59ec 100644 --- a/mobile/rpc-foundation/goldens/settings-bot-overrides-refused.json +++ b/mobile/rpc-foundation/goldens/settings-bot-overrides-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "f8ebd2348373b2b39c167735e0c418dfe868511fb5306ecba90cb6f2a905b95e", "platform": "darwin", 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 92eb3dc4794..2a9f9c8c6ed 100644 --- a/mobile/rpc-foundation/goldens/settings-bot-overrides-transport-error.json +++ b/mobile/rpc-foundation/goldens/settings-bot-overrides-transport-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "f7e63144421a689f05cc50ad87ec901a9eaeb3163165656887be12a5f2753005", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-home-coalesced.json b/mobile/rpc-foundation/goldens/settings-home-coalesced.json index 1e2c5ec178d..efeec393cf5 100644 --- a/mobile/rpc-foundation/goldens/settings-home-coalesced.json +++ b/mobile/rpc-foundation/goldens/settings-home-coalesced.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "d8d6f738ee11d84d6e9e546624f4babcb42476432f6bddbc74e8519d9ca18370", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-home-providers-fulfilled.json b/mobile/rpc-foundation/goldens/settings-home-providers-fulfilled.json index 7b945ef1133..4604aea4d1a 100644 --- a/mobile/rpc-foundation/goldens/settings-home-providers-fulfilled.json +++ b/mobile/rpc-foundation/goldens/settings-home-providers-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "a32b2fc99e830c58460e6f7c857aed0048738a55501e508eb236604680b9c235", "platform": "darwin", 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 55fd2c550aa..1114e66bbfd 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "78c48025c4af6cc0f1f136448c0ede9f76b7485d7b33b1356d11dec017bd9053", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-home-providers-refused.json b/mobile/rpc-foundation/goldens/settings-home-providers-refused.json index ce68e6b2bb7..55bf0c3a258 100644 --- a/mobile/rpc-foundation/goldens/settings-home-providers-refused.json +++ b/mobile/rpc-foundation/goldens/settings-home-providers-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "c22f33a0ed28622d4d53ae31e934056f87d2c10e8dc4475831ae1ee5fd3a9b8b", "platform": "darwin", 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 887eda9db0b..f21e2b8d20d 100644 --- a/mobile/rpc-foundation/goldens/settings-home-providers-transport-error.json +++ b/mobile/rpc-foundation/goldens/settings-home-providers-transport-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "4f16b43dddfb9257828342b0297317868df24b03fd98a89c66f5cd1897829d73", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-new-tab-refused.json b/mobile/rpc-foundation/goldens/settings-new-tab-refused.json index fdbd92fe761..3fb65a09d4e 100644 --- a/mobile/rpc-foundation/goldens/settings-new-tab-refused.json +++ b/mobile/rpc-foundation/goldens/settings-new-tab-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "b6fb40be3bb92d7d9f1a79d99dee077cf95097077917679dc99702f912241fa4", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-new-tab-ssh.json b/mobile/rpc-foundation/goldens/settings-new-tab-ssh.json index 847a7cbee55..58dfed91a16 100644 --- a/mobile/rpc-foundation/goldens/settings-new-tab-ssh.json +++ b/mobile/rpc-foundation/goldens/settings-new-tab-ssh.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "31f8a348322551738b14207b3477bae492d48d45c5d51be4d97ffaca2fe2b6e1", "platform": "darwin", 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 42c477e9d59..84e10c796fd 100644 --- a/mobile/rpc-foundation/goldens/settings-new-tab-transport-error.json +++ b/mobile/rpc-foundation/goldens/settings-new-tab-transport-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "448cdbd12f4f6a14bb33947bfbbb1837aebeb28979db70c62f2ba2fbb4d89c8f", "scenarioSha256": "1347663aba0ada1eee8e88fac306757dc0d29fe21f0d062ac2d3968a30a2f214", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-repo-cache-expiry.json b/mobile/rpc-foundation/goldens/settings-repo-cache-expiry.json index d6520bf7b70..dfdfdf8e758 100644 --- a/mobile/rpc-foundation/goldens/settings-repo-cache-expiry.json +++ b/mobile/rpc-foundation/goldens/settings-repo-cache-expiry.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "adebd553e2648278d719a1d7299cb36683fce714682a1ab7b49d4c9027eea34e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-repo-metadata-fulfilled.json b/mobile/rpc-foundation/goldens/settings-repo-metadata-fulfilled.json index 06b69a885ee..b3ddd89e6d0 100644 --- a/mobile/rpc-foundation/goldens/settings-repo-metadata-fulfilled.json +++ b/mobile/rpc-foundation/goldens/settings-repo-metadata-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "b45eba2007e8e2668f524cd7503b8a711eba67816c9c35af5c3725a1afe32d8d", "platform": "darwin", 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 0f0f8d4658e..e2a0eb4d4a0 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "b1c0b957b828c32e7ec388ec6668273fe84bbe5d11d8286b9a246fa92395a26e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-repo-metadata-refused.json b/mobile/rpc-foundation/goldens/settings-repo-metadata-refused.json index 16b69d2d905..bdbfe06f604 100644 --- a/mobile/rpc-foundation/goldens/settings-repo-metadata-refused.json +++ b/mobile/rpc-foundation/goldens/settings-repo-metadata-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "867b6905c8a533ddd1c7c8174bf4aadd5fd725cc72bdddbcb2ea8af26e219078", "platform": "darwin", 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 50ba55b3459..eec3ca4f132 100644 --- a/mobile/rpc-foundation/goldens/settings-repo-metadata-single-host.json +++ b/mobile/rpc-foundation/goldens/settings-repo-metadata-single-host.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "d8a00a72849f1ed254c3b35ebcc330dd1bb15b189f006bd1517853a19e53de6c", "platform": "darwin", 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 5c864dab639..57125a9354d 100644 --- a/mobile/rpc-foundation/goldens/settings-repo-metadata-transport-error.json +++ b/mobile/rpc-foundation/goldens/settings-repo-metadata-transport-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "741db13a84dbcec2e97e80605d742e69558954657c72f8450f3f8bc177dd01b6", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-resume-metadata-fulfilled.json b/mobile/rpc-foundation/goldens/settings-resume-metadata-fulfilled.json index b6ce3cb4eee..4a47f741836 100644 --- a/mobile/rpc-foundation/goldens/settings-resume-metadata-fulfilled.json +++ b/mobile/rpc-foundation/goldens/settings-resume-metadata-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "7a8d0a5305aafea56733c229989b6e825fe9b8a681f48f6cef405350304520b6", "platform": "darwin", 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 7bb90d983bd..152e59e3af2 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "a11756ecaf7c2d3955b9512aa7479ca55d810341f1492f472985abb538e140e8", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-resume-metadata-refused.json b/mobile/rpc-foundation/goldens/settings-resume-metadata-refused.json index 47384e8425a..5ace70ee1bc 100644 --- a/mobile/rpc-foundation/goldens/settings-resume-metadata-refused.json +++ b/mobile/rpc-foundation/goldens/settings-resume-metadata-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "def0640be601a8013f9537f161b60d8c14ac9551931e5ee4d4cc2acd3c2baf2a", "platform": "darwin", 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 44306021e90..d25fa774f54 100644 --- a/mobile/rpc-foundation/goldens/settings-resume-metadata-transport-error.json +++ b/mobile/rpc-foundation/goldens/settings-resume-metadata-transport-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "17c31d0c2b7ae5322fd59bafcfa1d2779ae9eff841e12c0cf16b27e454b49f13", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-task-hydration-fulfilled.json b/mobile/rpc-foundation/goldens/settings-task-hydration-fulfilled.json index 42d76dea018..31a8146e42b 100644 --- a/mobile/rpc-foundation/goldens/settings-task-hydration-fulfilled.json +++ b/mobile/rpc-foundation/goldens/settings-task-hydration-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "c08cce5d1f71761dbf504863b736e5546abb42b9ff4ab8ced65c7c42e3d66c0e", "platform": "darwin", 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 fe9ad7f45e9..4217ae35398 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "b23c3076081901c89e8a8fb8d20028e03f030db040c9cd793b6f2c7cd49d8f25", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-task-hydration-refused.json b/mobile/rpc-foundation/goldens/settings-task-hydration-refused.json index 8a1b8238b27..f28f4ddf504 100644 --- a/mobile/rpc-foundation/goldens/settings-task-hydration-refused.json +++ b/mobile/rpc-foundation/goldens/settings-task-hydration-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "a510ff7505cddbd6dad3c7e5a2dcde206a5dab1940901511d72c97aca576a6f1", "platform": "darwin", 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 bde3095c021..c4c86487f5d 100644 --- a/mobile/rpc-foundation/goldens/settings-task-hydration-transport-error.json +++ b/mobile/rpc-foundation/goldens/settings-task-hydration-transport-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "d4a2fef3aefb78bdb4aed94fda982124f24a3af3832227654d324735f44aaeeb", "platform": "darwin", 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 98a9f451543..1254c61f97d 100644 --- a/mobile/rpc-foundation/goldens/settings-task-workspace-create-linear.json +++ b/mobile/rpc-foundation/goldens/settings-task-workspace-create-linear.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "662c3e04e31bce5757f09f91e3e3739fb9d57767b7443be4dc936705b64b1432", "platform": "darwin", 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 c601bc14678..0e0fb2e5288 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "8ae9e1dbb32d404eac9e01f71dacf1c37497030220a8e988c0093bb7ed2d159b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-task-workspace-fulfilled.json b/mobile/rpc-foundation/goldens/settings-task-workspace-fulfilled.json index f65f7f8f0f3..7bf6e78a159 100644 --- a/mobile/rpc-foundation/goldens/settings-task-workspace-fulfilled.json +++ b/mobile/rpc-foundation/goldens/settings-task-workspace-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "5c4c890e4c71e80fa8847a5e29700fc9df3ac3bd634bad6289db37522fadd621", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-task-workspace-refused.json b/mobile/rpc-foundation/goldens/settings-task-workspace-refused.json index d43ff47b796..7e73ba17094 100644 --- a/mobile/rpc-foundation/goldens/settings-task-workspace-refused.json +++ b/mobile/rpc-foundation/goldens/settings-task-workspace-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "a699a0a5b128fa422dab0c7557b5aa18599b2d23fa6685cdcc02e17edf328af1", "platform": "darwin", 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 fc6416118c1..e0c8808b8e7 100644 --- a/mobile/rpc-foundation/goldens/settings-task-workspace-transport-error.json +++ b/mobile/rpc-foundation/goldens/settings-task-workspace-transport-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "a5e812cd508826b3f01ec3798c621ab4303de6536a364113f01a4770dd197bb5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-task-write.json b/mobile/rpc-foundation/goldens/settings-task-write.json index cf8af60cfbf..434683fd903 100644 --- a/mobile/rpc-foundation/goldens/settings-task-write.json +++ b/mobile/rpc-foundation/goldens/settings-task-write.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab", "scenarioSha256": "bbcdefe16b07068a81f3c46ae60df01ccb0fbe5a7c1eade3f584f6f0130c23fe", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-workspace-context-fulfilled.json b/mobile/rpc-foundation/goldens/settings-workspace-context-fulfilled.json index b303173550d..c5214667023 100644 --- a/mobile/rpc-foundation/goldens/settings-workspace-context-fulfilled.json +++ b/mobile/rpc-foundation/goldens/settings-workspace-context-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "287f94e469548f28c9d5591ff6ffb916fa22caa18776b091542b75704c9e1fee", "platform": "darwin", 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 75112ded8cf..17a5ea57c9e 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "76793a56e7b9e596d8c42e9a5a1c47337db32d7437bec2e41d6e7253943f3fd8", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-workspace-context-refused.json b/mobile/rpc-foundation/goldens/settings-workspace-context-refused.json index 73a6dfafd24..f715fa8abbb 100644 --- a/mobile/rpc-foundation/goldens/settings-workspace-context-refused.json +++ b/mobile/rpc-foundation/goldens/settings-workspace-context-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "ad19fc24973b49ee7d14bc31460a7e4af5d207db6a2375b52b5a0aa878e09205", "platform": "darwin", 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 c03d2f929dd..8c59e433904 100644 --- a/mobile/rpc-foundation/goldens/settings-workspace-context-transport-error.json +++ b/mobile/rpc-foundation/goldens/settings-workspace-context-transport-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "fc73116d95985606fe32f22d3f14f434a6d5cd49219416c9fa0f47f971fa6ff0", "scenarioSha256": "a2c80c9cdbb631f3a8fa648dfbb9e691418467d6ead8fe769d72e7e1d8b552b4", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-workspace-submit-fulfilled.json b/mobile/rpc-foundation/goldens/settings-workspace-submit-fulfilled.json index bf6f787e1ac..33f33b799e8 100644 --- a/mobile/rpc-foundation/goldens/settings-workspace-submit-fulfilled.json +++ b/mobile/rpc-foundation/goldens/settings-workspace-submit-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "b10ff86086c134284cb0446e8857cd4b55f5ff2bd0507388ec659a95f25e2a19", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/settings-workspace-submit-refused.json b/mobile/rpc-foundation/goldens/settings-workspace-submit-refused.json index bd251d03ccf..565b38f2d1c 100644 --- a/mobile/rpc-foundation/goldens/settings-workspace-submit-refused.json +++ b/mobile/rpc-foundation/goldens/settings-workspace-submit-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "373ea3743dac4e0845df01d5c8f75c909563b8c517f3858293a478234dc9ca5c", "platform": "darwin", 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 c386390b1fe..b6c7ea80b41 100644 --- a/mobile/rpc-foundation/goldens/settings-workspace-submit-transport-error.json +++ b/mobile/rpc-foundation/goldens/settings-workspace-submit-transport-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "411f2288f09b7940ceb46304c7fc3325e248bf009ff3a7cc12839d521cfad599", "scenarioSha256": "dfbacbd6392ae8e8199550952fe917e7c01182349df6c99a06eb0682cfd9175c", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/speech-audio-chunk-acknowledged.json b/mobile/rpc-foundation/goldens/speech-audio-chunk-acknowledged.json index 4109f1af981..8afa0031b5f 100644 --- a/mobile/rpc-foundation/goldens/speech-audio-chunk-acknowledged.json +++ b/mobile/rpc-foundation/goldens/speech-audio-chunk-acknowledged.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "08b583790d858a4cb7cf7377126818b6d05766c02587343ec89a167f94094082", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/speech-desktop-start-fulfilled.json b/mobile/rpc-foundation/goldens/speech-desktop-start-fulfilled.json index 58bc3b9676e..c99058566c3 100644 --- a/mobile/rpc-foundation/goldens/speech-desktop-start-fulfilled.json +++ b/mobile/rpc-foundation/goldens/speech-desktop-start-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "35fadd03f2c98344e22d6aec2dc85ad15ca5ac8e092fc1c29a20366db5d46628", "platform": "darwin", 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 dae94d4acc5..d9cb5dbc217 100644 --- a/mobile/rpc-foundation/goldens/speech-desktop-start-recording-failed.json +++ b/mobile/rpc-foundation/goldens/speech-desktop-start-recording-failed.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "75b8d1b7ed98b2bf7420986958d0a36222b007c535f85c1308b534301241ec2d", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/speech-desktop-start-superseded.json b/mobile/rpc-foundation/goldens/speech-desktop-start-superseded.json index f981332458d..e386fbd53ab 100644 --- a/mobile/rpc-foundation/goldens/speech-desktop-start-superseded.json +++ b/mobile/rpc-foundation/goldens/speech-desktop-start-superseded.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "b1c4a6d6c94d54fb5f60eb2deb437562ededd724140dd3973d842d7c29bf1a60", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/speech-dictation-session-cancelled.json b/mobile/rpc-foundation/goldens/speech-dictation-session-cancelled.json index f96bf75b602..bd0564a67b5 100644 --- a/mobile/rpc-foundation/goldens/speech-dictation-session-cancelled.json +++ b/mobile/rpc-foundation/goldens/speech-dictation-session-cancelled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "cc8338e31b7a2dc232238281afd2e3240343bb817a652744789f58ace806325a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/speech-dictation-session-transcript.json b/mobile/rpc-foundation/goldens/speech-dictation-session-transcript.json index 97544d156b6..49fd10a6aa0 100644 --- a/mobile/rpc-foundation/goldens/speech-dictation-session-transcript.json +++ b/mobile/rpc-foundation/goldens/speech-dictation-session-transcript.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "e49a25f36fe41125d875205f7d543218078b87f0039f16ba3dc2f10c6a9e9860", "platform": "darwin", 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 1e11dffa6ae..3144944483b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "69c1c20ea667a2b6a5b53aeb3d9af11b2b707e04086e15ee4ff9e954b1701851", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/speech-setup-sheet-fulfilled.json b/mobile/rpc-foundation/goldens/speech-setup-sheet-fulfilled.json index 29ee436b5b5..982fe2ddddf 100644 --- a/mobile/rpc-foundation/goldens/speech-setup-sheet-fulfilled.json +++ b/mobile/rpc-foundation/goldens/speech-setup-sheet-fulfilled.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "748e1bc0575fca6baab51b19cbbea5ac6185fca2a15dc4d8577212134355cd7e", "platform": "darwin", 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 e6049326755..04683fedc9f 100644 --- a/mobile/rpc-foundation/goldens/speech-setup-sheet-legacy-desktop.json +++ b/mobile/rpc-foundation/goldens/speech-setup-sheet-legacy-desktop.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "3ddb44511547ae2fc97340e5a49393233f6716f9704b7b994f43bc030788b25b", "scenarioSha256": "0ba2d8283fe98206c7500b62732e30acdc5b8e55f50b7ea8cae96403b803d519", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/structured-launch-created.json b/mobile/rpc-foundation/goldens/structured-launch-created.json index bd1b22126c1..f6677e62e4e 100644 --- a/mobile/rpc-foundation/goldens/structured-launch-created.json +++ b/mobile/rpc-foundation/goldens/structured-launch-created.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6", "scenarioSha256": "0b5dd55868490e4d62d7d718821dec9634773b20d32fe9889523606a3f6b9168", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/structured-launch-definitive-refusal.json b/mobile/rpc-foundation/goldens/structured-launch-definitive-refusal.json index 87a9e74ff08..f11eb9fefbb 100644 --- a/mobile/rpc-foundation/goldens/structured-launch-definitive-refusal.json +++ b/mobile/rpc-foundation/goldens/structured-launch-definitive-refusal.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6", "scenarioSha256": "64916f2d8ab51132b08c3e8c72f89c3a2698d83945def294f42edf22eb6d08ea", "platform": "darwin", 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 8d286a8f73e..b9d21ff521d 100644 --- a/mobile/rpc-foundation/goldens/structured-launch-replays-dropped-create.json +++ b/mobile/rpc-foundation/goldens/structured-launch-replays-dropped-create.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6", "scenarioSha256": "fb1ab1209f0a7c03ee1b3985401ce2df080d673532f045c4fca26e754d5e5a9f", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/structured-launch-support-refused.json b/mobile/rpc-foundation/goldens/structured-launch-support-refused.json index 1274bc56125..4d5fbb06736 100644 --- a/mobile/rpc-foundation/goldens/structured-launch-support-refused.json +++ b/mobile/rpc-foundation/goldens/structured-launch-support-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6", "scenarioSha256": "d8928461e3295d265872e5f98fb8aad445b5edc55fc76f137e45c0cff0d8b961", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/structured-launch-unsupported.json b/mobile/rpc-foundation/goldens/structured-launch-unsupported.json index 497c8f8f9f4..8094b007832 100644 --- a/mobile/rpc-foundation/goldens/structured-launch-unsupported.json +++ b/mobile/rpc-foundation/goldens/structured-launch-unsupported.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d340697a64a198066b1037a550afb9a0de7507246a545901d2fc0a23407f38d6", "scenarioSha256": "c30e9cae49e134715c009a98f423f3e4a9d552c014be3e28b38e98c57999b6f5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tasks-route-repo-list.json b/mobile/rpc-foundation/goldens/tasks-route-repo-list.json index 9df5c7cbdca..309eca35f57 100644 --- a/mobile/rpc-foundation/goldens/tasks-route-repo-list.json +++ b/mobile/rpc-foundation/goldens/tasks-route-repo-list.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d1810575d5f0e7a45f9f9a327c271f0ed483b16b21b65cfb5fcfa9dc90baf6c8", "scenarioSha256": "b62ca571d4defcc2e53960033c5b4eb3f7e406b57664664cbc6a173041a9f803", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-gesture-flush-and-clear.json b/mobile/rpc-foundation/goldens/terminal-gesture-flush-and-clear.json new file mode 100644 index 00000000000..bae0c091ac4 --- /dev/null +++ b/mobile/rpc-foundation/goldens/terminal-gesture-flush-and-clear.json @@ -0,0 +1,374 @@ +{ + "operation": "session.terminal-gesture-input", + "family": "session.terminal-gesture-input", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", + "adapterSha256": "9d119d5ec320e2538105d6ff673b9f4b8e3decbe46527947489dffbcf2ac0472", + "scenarioSha256": "97e6d63c6b4bc154e94be6cf3dcd25620b4656cacd2b62cdc872ff793b39ebd2", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "02fc3d4e513f": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "0cc3e25ebff5": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": false, + "queuedBytes": { + "$rpc": "null" + }, + "queuedSequences": { + "$rpc": "null" + } + }, + "204da356c8b7": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "$rpc": "undefined" + } + }, + "2bd49718b873": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "reported": true + } + } + } + }, + "3117ca4e2f5f": { + "name": "terminal.send#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"terminal.send\",\"params\":{\"terminal\":\"terminal-1\",\"text\":\"\\u001b[<64;10;5M\",\"enter\":false,\"client\":{\"id\":\"device-token-1\",\"type\":\"mobile\"}}}", + "sent": 1 + }, + "3d116029b0b8": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "send": { + "accepted": true + } + } + } + } + }, + "4c855008c56d": { + "name": "terminal.send#1", + "args": [ + { + "name": "method", + "value": "terminal.send" + }, + { + "name": "params", + "value": { + "client": { + "id": "device-token-1", + "type": "mobile" + }, + "enter": false, + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M" + } + }, + { + "name": "options", + "value": { + "failWhenDisconnected": true + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "819a7382ac8e": { + "name": "toast", + "value": { + "durationMs": { + "$rpc": "null" + }, + "message": "Terminal cleared" + }, + "sent": 3 + }, + "839dec95ae1c": { + "status": "pending", + "startedAt": 16 + }, + "93092a2f06c5": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": false, + "queuedBytes": "\u001b[<64;10;5M", + "queuedSequences": 1 + }, + "b139ed2905d3": { + "name": "orchestration.workerTerminalUserInput#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"orchestration.workerTerminalUserInput\",\"params\":{\"terminal\":\"terminal-1\"}}", + "sent": 2 + }, + "bf25f1d5c346": { + "name": "orchestration.workerTerminalUserInput#1", + "args": [ + { + "name": "method", + "value": "orchestration.workerTerminalUserInput" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "budgetSpansConnect": true, + "failWhenDisconnected": true, + "timeoutMs": 5000 + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 16 + } + }, + "caa6ece1bdab": { + "bucketTokens": 63, + "crash": { + "$rpc": "null" + }, + "inFlight": true, + "queuedBytes": { + "$rpc": "null" + }, + "queuedSequences": { + "$rpc": "null" + } + }, + "cbb9e8ae954a": { + "name": "terminal.clearBuffer#1", + "args": [ + { + "name": "method", + "value": "terminal.clearBuffer" + }, + { + "name": "params", + "value": { + "terminal": "terminal-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 16, + "settledAt": 16, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "cleared": true + } + } + } + }, + "d21f2e78ad50": { + "name": "terminal.clearBuffer#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"terminal.clearBuffer\",\"params\":{\"terminal\":\"terminal-1\"}}", + "sent": 3 + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "terminal-gesture-flush-and-clear", + "checkpoints": [ + { + "id": "queued", + "observation": { + "sender": [], + "payloads": [], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "93092a2f06c5", + "effects": [] + } + }, + { + "id": "flushing", + "observation": { + "sender": ["4c855008c56d"], + "payloads": ["3117ca4e2f5f"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "caa6ece1bdab", + "effects": [] + } + }, + { + "id": "sent", + "observation": { + "sender": ["3d116029b0b8", "bf25f1d5c346"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "reported", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "clearing", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "02fc3d4e513f"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "839dec95ae1c" + }, + "state": "0cc3e25ebff5", + "effects": [] + } + }, + { + "id": "cleared", + "observation": { + "sender": ["3d116029b0b8", "2bd49718b873", "cbb9e8ae954a"], + "payloads": ["3117ca4e2f5f", "b139ed2905d3", "d21f2e78ad50"], + "settlements": { + "mount": "eb79a9b3682a", + "gesture": "eb79a9b3682a", + "clear": "204da356c8b7" + }, + "state": "0cc3e25ebff5", + "effects": ["819a7382ac8e"] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/terminal-input-send-accepted.json b/mobile/rpc-foundation/goldens/terminal-input-send-accepted.json index a1b1de2f7a9..35af6437017 100644 --- a/mobile/rpc-foundation/goldens/terminal-input-send-accepted.json +++ b/mobile/rpc-foundation/goldens/terminal-input-send-accepted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "7cdbf3308411ed6764cc1cdcc0f663a27ddc9390fcc329c49fad4b27cb5a7fd5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-input-send-refused.json b/mobile/rpc-foundation/goldens/terminal-input-send-refused.json index f1ebda13eda..23d6e61d1ca 100644 --- a/mobile/rpc-foundation/goldens/terminal-input-send-refused.json +++ b/mobile/rpc-foundation/goldens/terminal-input-send-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "eb5e47e3accccc7ca280ca029f97405905b0cee8a05afb9ef15448314041d9d4", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-live-input-accepted.json b/mobile/rpc-foundation/goldens/terminal-live-input-accepted.json index e1842686522..8014a160064 100644 --- a/mobile/rpc-foundation/goldens/terminal-live-input-accepted.json +++ b/mobile/rpc-foundation/goldens/terminal-live-input-accepted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "391a4f681443f099e6ea4417811d82d730242dfe07e21f74b0ad49a98bcd7c81", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-paste-accepted.json b/mobile/rpc-foundation/goldens/terminal-paste-accepted.json index 75c9e928e32..a5a371e8f50 100644 --- a/mobile/rpc-foundation/goldens/terminal-paste-accepted.json +++ b/mobile/rpc-foundation/goldens/terminal-paste-accepted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "48bb495de3b54f2b2edc0543f0f232ff4fd6068d5aca34d005766ebacbb078c9", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-paste-refused.json b/mobile/rpc-foundation/goldens/terminal-paste-refused.json index 0e56981b022..d9c9642e1bb 100644 --- a/mobile/rpc-foundation/goldens/terminal-paste-refused.json +++ b/mobile/rpc-foundation/goldens/terminal-paste-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "78e62b9125252accc7f6d2ce772b93c84a917b01d2df308c1f9fb163d9127665", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-query-reply-accepted.json b/mobile/rpc-foundation/goldens/terminal-query-reply-accepted.json index ba5313d220e..079a00faed0 100644 --- a/mobile/rpc-foundation/goldens/terminal-query-reply-accepted.json +++ b/mobile/rpc-foundation/goldens/terminal-query-reply-accepted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "bfa1d5f83b4112d3cce6a19e9dc27daf9281ed99745bc01bd19226dd7b268c71", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-query-reply-unsubscribed.json b/mobile/rpc-foundation/goldens/terminal-query-reply-unsubscribed.json index 7ab9443369a..ec39f8021d3 100644 --- a/mobile/rpc-foundation/goldens/terminal-query-reply-unsubscribed.json +++ b/mobile/rpc-foundation/goldens/terminal-query-reply-unsubscribed.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "ad03596f31eeccc5e9eb7e5061b1af705f9af249f76377c8f5ce1a9db257770f", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-raw-input-refused.json b/mobile/rpc-foundation/goldens/terminal-raw-input-refused.json index 55fbeed6992..bd816017402 100644 --- a/mobile/rpc-foundation/goldens/terminal-raw-input-refused.json +++ b/mobile/rpc-foundation/goldens/terminal-raw-input-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "76fc0c1499ec48a67428f35eba705f68147d2ff2c344b67aa0c9d60ed999f173", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-raw-input-reported.json b/mobile/rpc-foundation/goldens/terminal-raw-input-reported.json index fcb8344fb8f..11f1ae4d7e2 100644 --- a/mobile/rpc-foundation/goldens/terminal-raw-input-reported.json +++ b/mobile/rpc-foundation/goldens/terminal-raw-input-reported.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "579077efd3a4652a6930af3f6690138c20536270cbcd7274246047d2e322199f", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-takeover-report-accepted.json b/mobile/rpc-foundation/goldens/terminal-takeover-report-accepted.json index 873eb631159..555aca96c0b 100644 --- a/mobile/rpc-foundation/goldens/terminal-takeover-report-accepted.json +++ b/mobile/rpc-foundation/goldens/terminal-takeover-report-accepted.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "c2236257032fab72ebb007391313eec4e5f0a1bdb4fbcbd907117f9914ffafc6", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-takeover-report-retried.json b/mobile/rpc-foundation/goldens/terminal-takeover-report-retried.json index 5272b8db3d8..04f90d106bb 100644 --- a/mobile/rpc-foundation/goldens/terminal-takeover-report-retried.json +++ b/mobile/rpc-foundation/goldens/terminal-takeover-report-retried.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "8ad436ca6c3de8b0b3148326337acce18a8a4cf3c514acad1a4530a001f28c75", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-viewport-refit-applied.json b/mobile/rpc-foundation/goldens/terminal-viewport-refit-applied.json index 534e00f9183..48a8f8767a4 100644 --- a/mobile/rpc-foundation/goldens/terminal-viewport-refit-applied.json +++ b/mobile/rpc-foundation/goldens/terminal-viewport-refit-applied.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "f966c2ef2e747a5231f423147ddaf38458cb08c719434b274016a5e4abc10771", "platform": "darwin", 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 87df22cebed..b7b6d435684 100644 --- a/mobile/rpc-foundation/goldens/terminal-viewport-refit-legacy-desktop.json +++ b/mobile/rpc-foundation/goldens/terminal-viewport-refit-legacy-desktop.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "7588d30f33a8bb846c48f160aa9a4a8138176662bb2fb6be7bbdf352f553d05f", "scenarioSha256": "88961a369cb7a7fa92708bb83aa7f818e904018e8cfcedc2f50ef9a0058c8b9d", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/terminal-worktree-connection-resolved.json b/mobile/rpc-foundation/goldens/terminal-worktree-connection-resolved.json index fed2e42d788..81057d66bc0 100644 --- a/mobile/rpc-foundation/goldens/terminal-worktree-connection-resolved.json +++ b/mobile/rpc-foundation/goldens/terminal-worktree-connection-resolved.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "e7e3718f685e3713cf1b8209d59d618741f892bd286853b79bb456c59cec8d86", "scenarioSha256": "f921c4a764cdf7a4c1df0a7ec618d7c3b1d8a05ee4baa42d66f3bc0d95b3f550", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-create-github.json b/mobile/rpc-foundation/goldens/tk-create-github.json index b47408a6391..5a35a2ecaf8 100644 --- a/mobile/rpc-foundation/goldens/tk-create-github.json +++ b/mobile/rpc-foundation/goldens/tk-create-github.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "260a84280f69c43ac582149d9befe6ae547b2ad2b5f56a181d8e3a1314a0a071", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-create-gitlab.json b/mobile/rpc-foundation/goldens/tk-create-gitlab.json index 07005230fcc..4e0cca02a07 100644 --- a/mobile/rpc-foundation/goldens/tk-create-gitlab.json +++ b/mobile/rpc-foundation/goldens/tk-create-gitlab.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "a4d3d1f322d49593056bd20f4122bbf0309d2161123e404161950bcab65decd5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-create-linear.json b/mobile/rpc-foundation/goldens/tk-create-linear.json index d28f3571db2..96db4cc19f8 100644 --- a/mobile/rpc-foundation/goldens/tk-create-linear.json +++ b/mobile/rpc-foundation/goldens/tk-create-linear.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "f6c7eea985190d9edeead5b36f90c8aa98679f69d19dab7579fec88841645259", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-checks-files.json b/mobile/rpc-foundation/goldens/tk-item-checks-files.json index f33e44f2952..e121126216a 100644 --- a/mobile/rpc-foundation/goldens/tk-item-checks-files.json +++ b/mobile/rpc-foundation/goldens/tk-item-checks-files.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "15de2c1dd80a591a5e27d50664ff21d4e71442c711fc3bbdf7d1f95f499cf04c", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-comment-github.json b/mobile/rpc-foundation/goldens/tk-item-comment-github.json index 12e070f654b..ed91f8e8a8c 100644 --- a/mobile/rpc-foundation/goldens/tk-item-comment-github.json +++ b/mobile/rpc-foundation/goldens/tk-item-comment-github.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "fb0cdff9e02bac37b0bd8e1c47922474823d46fa735f3069ed70cdad41800be6", "platform": "darwin", 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 3b50df7b19d..579c68c4923 100644 --- a/mobile/rpc-foundation/goldens/tk-item-comment-gitlab-mr.json +++ b/mobile/rpc-foundation/goldens/tk-item-comment-gitlab-mr.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "cb696d402b8af2b9a54d4d6f9d85abfc12280e73b360196e55ec25530e610eee", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-comment-gitlab.json b/mobile/rpc-foundation/goldens/tk-item-comment-gitlab.json index 20a8c83c1ab..1fe0b375223 100644 --- a/mobile/rpc-foundation/goldens/tk-item-comment-gitlab.json +++ b/mobile/rpc-foundation/goldens/tk-item-comment-gitlab.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "d993b9f74cf8c5d7af8d31a73cf19d97141c54f6fcf009e98ca5b9106f3ba35b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-detail-github.json b/mobile/rpc-foundation/goldens/tk-item-detail-github.json index 800a6a019e6..73581365e89 100644 --- a/mobile/rpc-foundation/goldens/tk-item-detail-github.json +++ b/mobile/rpc-foundation/goldens/tk-item-detail-github.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783", "scenarioSha256": "5fbff075d7da476f93c2a7da871c2afacc67822d1317acf6c23000195e2b2576", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-detail-gitlab.json b/mobile/rpc-foundation/goldens/tk-item-detail-gitlab.json index 2c62b994808..9805e4bdff5 100644 --- a/mobile/rpc-foundation/goldens/tk-item-detail-gitlab.json +++ b/mobile/rpc-foundation/goldens/tk-item-detail-gitlab.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783", "scenarioSha256": "36bbd34ed8b8f67e516ce7cd230b01ab88f14369fda632037c46dbbd1a0d95a3", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-detail-linear.json b/mobile/rpc-foundation/goldens/tk-item-detail-linear.json index 78e0cbf8365..2d26af0ba4a 100644 --- a/mobile/rpc-foundation/goldens/tk-item-detail-linear.json +++ b/mobile/rpc-foundation/goldens/tk-item-detail-linear.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c0ef16b959002e4a3c5347114a0844b95670e274ef010d910b6671ac5f49e783", "scenarioSha256": "f0407adc774b29553bdd177885e8ea9047127c4ebe8298de160a421fb4c1fe67", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-detail-metadata.json b/mobile/rpc-foundation/goldens/tk-item-detail-metadata.json index 343f931af6f..bf2725d76b9 100644 --- a/mobile/rpc-foundation/goldens/tk-item-detail-metadata.json +++ b/mobile/rpc-foundation/goldens/tk-item-detail-metadata.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06", "scenarioSha256": "e6429c235d8c0b0376f71fea7b47c3b9ff22b850c92922b85ff993ae8b6cd6d0", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-merge-gitlab.json b/mobile/rpc-foundation/goldens/tk-item-merge-gitlab.json index 610c68c2a52..e85f8167d61 100644 --- a/mobile/rpc-foundation/goldens/tk-item-merge-gitlab.json +++ b/mobile/rpc-foundation/goldens/tk-item-merge-gitlab.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "28d8dfb15fec1ecaaa1c675c9c8c0cdc196e184a6884625c44dfe1f0f9fc8e7e", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-metadata-github.json b/mobile/rpc-foundation/goldens/tk-item-metadata-github.json index 9ee719cb291..1b71ae5d20d 100644 --- a/mobile/rpc-foundation/goldens/tk-item-metadata-github.json +++ b/mobile/rpc-foundation/goldens/tk-item-metadata-github.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739", "scenarioSha256": "010c65eaa056c5df0b867dd5b5851e206e8479e9fcce02515f1e326df4b8889c", "platform": "darwin", 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 5a5e85ef7a6..5ea4b599eae 100644 --- a/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab-mr.json +++ b/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab-mr.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739", "scenarioSha256": "daa54da6cfb8d96c2a66c138beeaf70c764f96a60bdc84f2ff4cde80483cb365", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab.json b/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab.json index 09974388b56..2a95a1b9e5d 100644 --- a/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab.json +++ b/mobile/rpc-foundation/goldens/tk-item-metadata-gitlab.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739", "scenarioSha256": "4daf374f040e27836c154245d6a7fbad9ba3f6e6c0c9608218451286e4712d6b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-reply-merge.json b/mobile/rpc-foundation/goldens/tk-item-reply-merge.json index 4aa1f7f952b..55c2d957601 100644 --- a/mobile/rpc-foundation/goldens/tk-item-reply-merge.json +++ b/mobile/rpc-foundation/goldens/tk-item-reply-merge.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "b8e60092a29ea4944a891adc026444cc1da18c52221876f9e7c07b450b34cea8", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-review-github.json b/mobile/rpc-foundation/goldens/tk-item-review-github.json index e2ee2ed575a..e23a8a9e291 100644 --- a/mobile/rpc-foundation/goldens/tk-item-review-github.json +++ b/mobile/rpc-foundation/goldens/tk-item-review-github.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8f68885d57a9aa76d80ba0ee29a95bdbaa98cef29c79c68ce75d67202cde7bfe", "scenarioSha256": "3ba358ff7b6a95d9158257225483f77578dfa10c8643cdf89f8a81e0022997e9", "platform": "darwin", 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 6747c56f495..6121c30c995 100644 --- a/mobile/rpc-foundation/goldens/tk-item-status-gitlab-mr.json +++ b/mobile/rpc-foundation/goldens/tk-item-status-gitlab-mr.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "5de4936aed0efd0d8bd5bc5ce893d561f6bc3d0fdf4a76c9e33e7cbefd6ec362", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-item-status-gitlab.json b/mobile/rpc-foundation/goldens/tk-item-status-gitlab.json index 7b6a77c3f70..91829be291f 100644 --- a/mobile/rpc-foundation/goldens/tk-item-status-gitlab.json +++ b/mobile/rpc-foundation/goldens/tk-item-status-gitlab.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "8c4218bfb2af227da5386f29989cec438f2c6187f39ce1c06859e136ea920bfa", "scenarioSha256": "85414544a9e8570567770b43e6bf5cfcc406c9b9b4ffed3a4ff0c8187beb7549", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-linear-connect.json b/mobile/rpc-foundation/goldens/tk-linear-connect.json index f8ebc98866b..1345380914c 100644 --- a/mobile/rpc-foundation/goldens/tk-linear-connect.json +++ b/mobile/rpc-foundation/goldens/tk-linear-connect.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "d1bd7ad9b647a50403953ba01d3a4bcccc5f4020c2aefa6146cca8c7688612c1", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-linear-item.json b/mobile/rpc-foundation/goldens/tk-linear-item.json index 9c4320edb9b..a03b28f56ea 100644 --- a/mobile/rpc-foundation/goldens/tk-linear-item.json +++ b/mobile/rpc-foundation/goldens/tk-linear-item.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "97cfbcd82778ed6517ca2d10b2f3ad5a8d366e380d7846c1e89d5a5baf17e739", "scenarioSha256": "354eaff5243b3aae774c375aa303548d82c4db106a89ada39907d6654fa549b3", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-linear-team-context.json b/mobile/rpc-foundation/goldens/tk-linear-team-context.json index 96f80ca6949..af8bc57b381 100644 --- a/mobile/rpc-foundation/goldens/tk-linear-team-context.json +++ b/mobile/rpc-foundation/goldens/tk-linear-team-context.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "58ea1553e04017c993aea4753aace41ee664705a3fdb3b18569c5a9d7968cf06", "scenarioSha256": "524c2421e61d663dd1344a47ab0552c3bb029ad09e0b6271eac91f1548e8265c", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-list-gitlab-items.json b/mobile/rpc-foundation/goldens/tk-list-gitlab-items.json index 7d4b16fab84..83b586b07de 100644 --- a/mobile/rpc-foundation/goldens/tk-list-gitlab-items.json +++ b/mobile/rpc-foundation/goldens/tk-list-gitlab-items.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "9b26b8f112021fe65c156b7d4067071551bcdab44a5858f8a933f7ace66e6f80", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-list-gitlab-todos.json b/mobile/rpc-foundation/goldens/tk-list-gitlab-todos.json index a441f7a2d43..5ed92208e70 100644 --- a/mobile/rpc-foundation/goldens/tk-list-gitlab-todos.json +++ b/mobile/rpc-foundation/goldens/tk-list-gitlab-todos.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "a9e791f56e991e822b2a9f55db22eabbc39ad36ed669c87b6866ba7fe8eea24a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-list-linear.json b/mobile/rpc-foundation/goldens/tk-list-linear.json index 3deeaa1b3b7..a6ca28a3514 100644 --- a/mobile/rpc-foundation/goldens/tk-list-linear.json +++ b/mobile/rpc-foundation/goldens/tk-list-linear.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "216ddbf8cb71481d179563d8b033d7dc6cd71bface049e83073b977909776fc9", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-project-board-load.json b/mobile/rpc-foundation/goldens/tk-project-board-load.json index c903a6b7f18..8c56d7965a6 100644 --- a/mobile/rpc-foundation/goldens/tk-project-board-load.json +++ b/mobile/rpc-foundation/goldens/tk-project-board-load.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371", "scenarioSha256": "7840e811e81d3645f1c874b871158202a53432989f3b5c849df12550b082813b", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-project-repo-slugs.json b/mobile/rpc-foundation/goldens/tk-project-repo-slugs.json index aa17ed8c9f1..8ff9d24d9a4 100644 --- a/mobile/rpc-foundation/goldens/tk-project-repo-slugs.json +++ b/mobile/rpc-foundation/goldens/tk-project-repo-slugs.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "c4272385ed3b0de4feab38de9e4f6363ecd6317fdd4de47f76a98eb18abaf371", "scenarioSha256": "a83d5768892764af2dd6866f03d51c09aef63d1c5d3e0645bd5e1c16454b201f", "platform": "darwin", 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 fb6e6e7d39d..75e88a31620 100644 --- a/mobile/rpc-foundation/goldens/tk-project-row-comments-issue.json +++ b/mobile/rpc-foundation/goldens/tk-project-row-comments-issue.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "6f1bfb05a9df6482200bbab4400fd07a09955d47fcc468e1d2feda1ca9875aa1", "platform": "darwin", 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 4fdc218da8c..8beeff19eef 100644 --- a/mobile/rpc-foundation/goldens/tk-project-row-comments-pr.json +++ b/mobile/rpc-foundation/goldens/tk-project-row-comments-pr.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "e5ff558593fd32d66e6ba1722ebf54d50992c9c2b6db41ef2435b47972fbd0fd", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-project-row-detail.json b/mobile/rpc-foundation/goldens/tk-project-row-detail.json index 98405a67fed..6842a3c50cd 100644 --- a/mobile/rpc-foundation/goldens/tk-project-row-detail.json +++ b/mobile/rpc-foundation/goldens/tk-project-row-detail.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6", "scenarioSha256": "f572b37cfd15f41f283e5f96b772a1055670f80e68064ac81477d9b768fc971a", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-project-row-fields.json b/mobile/rpc-foundation/goldens/tk-project-row-fields.json index 8e0b7823ce8..b80d4ea3b18 100644 --- a/mobile/rpc-foundation/goldens/tk-project-row-fields.json +++ b/mobile/rpc-foundation/goldens/tk-project-row-fields.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889", "scenarioSha256": "af54a351f4b79fff4a11948fc47a9f5194733065682ff96d6b46b9ae292e327e", "platform": "darwin", 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 2b0f8d6c27a..af1014d8ba5 100644 --- a/mobile/rpc-foundation/goldens/tk-project-row-files-merge.json +++ b/mobile/rpc-foundation/goldens/tk-project-row-files-merge.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "b228732762828412ad3d9eec3ece00a897d866046e37044322c3911758d6e0a9", "scenarioSha256": "629d05d7fbd4a332a65f7191b2084a0e74b84920c1954fa351f264892b2776e9", "platform": "darwin", 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 eafb9db44fa..953a7806fbd 100644 --- a/mobile/rpc-foundation/goldens/tk-project-row-metadata-load.json +++ b/mobile/rpc-foundation/goldens/tk-project-row-metadata-load.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "f8f6e5d500f959b9b15c5498885a05422747880b6aef4ad795bc3064ebbacea6", "scenarioSha256": "60ea389fe16734fb53db01101f1feb4496653a99faa09e4309b3790a50d558d7", "platform": "darwin", 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 ba9ba51c20b..3c506f24e19 100644 --- a/mobile/rpc-foundation/goldens/tk-project-row-review-checks.json +++ b/mobile/rpc-foundation/goldens/tk-project-row-review-checks.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "370aeaee59978071ccb821da13c9e6114936c168947b608539cdb80d40cc9889", "scenarioSha256": "08caec8e0ab5e674aabbf034ca88fc4a000c4b645ad6397afe6dc18db1f7c098", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-project-row-threads.json b/mobile/rpc-foundation/goldens/tk-project-row-threads.json index 3ea27497fba..35102da84ef 100644 --- a/mobile/rpc-foundation/goldens/tk-project-row-threads.json +++ b/mobile/rpc-foundation/goldens/tk-project-row-threads.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "55058202df36c8b951510215936e496ea88d3d71a6690090a13c52deb13e34e1", "scenarioSha256": "815f55c0fb848fc9345a66bb7b71b1351f17e56129e005eb1776d6b47c831647", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tk-provider-load.json b/mobile/rpc-foundation/goldens/tk-provider-load.json index 35144c77b08..e28f07e2395 100644 --- a/mobile/rpc-foundation/goldens/tk-provider-load.json +++ b/mobile/rpc-foundation/goldens/tk-provider-load.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "07a15e900363faa25bc364f5bc1c330f96798abfeaed35210428c2ac558586b8", "scenarioSha256": "21b6272878cba5f2b41c89378c178933ffc9406fe69b9c693fc5021a265ef2c9", "platform": "darwin", 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 22fc38eb5f0..e5484052848 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "c5d28c2973881ae6cc94c7d8f6eef544046461f15e236634489afd272b5f1e6b", "platform": "darwin", 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 49efa33f7af..33f4ff72bb4 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "95ef0a8b60bf92ef5c12a73f923dc143989b34374fb319f812fbaa58c79aa6a6", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/transport-capability-probe-publishes.json b/mobile/rpc-foundation/goldens/transport-capability-probe-publishes.json index 826d526946f..2bea79a74c7 100644 --- a/mobile/rpc-foundation/goldens/transport-capability-probe-publishes.json +++ b/mobile/rpc-foundation/goldens/transport-capability-probe-publishes.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "6e0c3a784992e383a05ccfdf34e44e6f74ebd55ff17c4de0b05b2dfb4197c681", "platform": "darwin", 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 633c1202733..4fbe0cfc49f 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "2ba1e1d70c98e2fd0d2d2dce6f68c11a186756f05207747e156375fc613940d7", "platform": "darwin", 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 c375b13a553..216cb72b5c6 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "f25f444aca6cf768c602bf879e6b30235d1c4c0632636cfd245bd6e27959756b", "platform": "darwin", 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 9d601a4aae1..4b1df26dae8 100644 --- a/mobile/rpc-foundation/goldens/transport-host-status-gates-ready.json +++ b/mobile/rpc-foundation/goldens/transport-host-status-gates-ready.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "9c5095c24bdf5ab65d6387cc22b9984fee3aa7d5ce93d96bcb470944ac253f86", "platform": "darwin", 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 8260f15633e..bdd6f5c67d7 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "a7871b5f1d37b0156970858d5a7fcab3105de7a8a6bfe827299a36f2b2ba5548", "platform": "darwin", 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 6d9a7299b2a..062aa66777d 100644 --- a/mobile/rpc-foundation/goldens/transport-pairing-race-both-refused.json +++ b/mobile/rpc-foundation/goldens/transport-pairing-race-both-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "4f0ddbea3c08ea3e90f6e707215a4831f06aed408065b45d0771028d256d6b12", "platform": "darwin", 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 34ecb1bcd32..e493d8b4d16 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "488173fa313295f97aa88fb4bf1944fdb655e37cfd2444e9d15515bd6ad82d95", "platform": "darwin", 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 9737a5f488c..9a24712d087 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "dee9824e5ec32115fa7dfaaf223fc34c28d057a5526ac3dad42365543288a934", "platform": "darwin", 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 c4ed8753fef..00ed6967842 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "34b382b13fe75e8ef4002325287c95b3c4db62eeaaf3762af7fbaf6f836c2fa1", "scenarioSha256": "a34ffec446f9bbc465bd3f7d0a43166c9bc221a6ece8714e0b5717169625cf43", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tw-capabilities-advertised.json b/mobile/rpc-foundation/goldens/tw-capabilities-advertised.json index 0c3cea65871..ceada00e6dc 100644 --- a/mobile/rpc-foundation/goldens/tw-capabilities-advertised.json +++ b/mobile/rpc-foundation/goldens/tw-capabilities-advertised.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "9d79bcfd6957d11d5ce8c3296f1038a3cfab81eedad7f990b44071104dfd0f91", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tw-capabilities-cutover-retried.json b/mobile/rpc-foundation/goldens/tw-capabilities-cutover-retried.json index cb60a81bfbc..ddde4c7d5c7 100644 --- a/mobile/rpc-foundation/goldens/tw-capabilities-cutover-retried.json +++ b/mobile/rpc-foundation/goldens/tw-capabilities-cutover-retried.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "fb9c0e4b7c34f9bd1bd355b606c6ba75a7583cff3788000b7ed013612f5574fe", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tw-capabilities-legacy-idempotency.json b/mobile/rpc-foundation/goldens/tw-capabilities-legacy-idempotency.json index a72944d1cf9..49b4727c6ca 100644 --- a/mobile/rpc-foundation/goldens/tw-capabilities-legacy-idempotency.json +++ b/mobile/rpc-foundation/goldens/tw-capabilities-legacy-idempotency.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "d73fed49e0a7e3e054d5c2fa75780f98bf78b6fa7e02f1ccb2fdc49465cf2fe5", "platform": "darwin", 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 b32ae728064..0e2186e2434 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "a99bb80a5826af1df8d74114fcc5654aa42c9208747b512cea9bd5ca65b64ccb", "platform": "darwin", 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 e7162442ef9..9e9c33ef166 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "3cda09e4a4ad4092f5f9a48b7c9715a99a51eb3bc4bed00f7054537a9e21cea9", "platform": "darwin", 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 f250d7420ed..aa0f2f7ee7b 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "61097c13b262a4454510936fa9c9554a07865b610f18407f1b67bdd74476df08", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tw-create-retry-created.json b/mobile/rpc-foundation/goldens/tw-create-retry-created.json index bd8d03f45a5..d3e44bff766 100644 --- a/mobile/rpc-foundation/goldens/tw-create-retry-created.json +++ b/mobile/rpc-foundation/goldens/tw-create-retry-created.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "0278216fee698c00118bb0e73a7fe755dc59c3b8e2b0459153edae64f155774c", "platform": "darwin", 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 6b226c19790..adcda98827e 100644 --- a/mobile/rpc-foundation/goldens/tw-create-retry-name-collision.json +++ b/mobile/rpc-foundation/goldens/tw-create-retry-name-collision.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "6cb658dadc9e146c4f36c6ce643451e72300b8cdda19cc684ffa9fb2b0822c0a", "platform": "darwin", 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 32bf407affd..b4f24ad583a 100644 --- a/mobile/rpc-foundation/goldens/tw-create-retry-unretryable-refusal.json +++ b/mobile/rpc-foundation/goldens/tw-create-retry-unretryable-refusal.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "16abe9e1a8d4cff17b3ea29d40277ae30a3d555a4a9efa08b2745c3a85b02740", "platform": "darwin", 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 185fb477ee6..4682ecae57e 100644 --- a/mobile/rpc-foundation/goldens/tw-create-retry-warning-kept.json +++ b/mobile/rpc-foundation/goldens/tw-create-retry-warning-kept.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "f469b2b7d61e7fc500fa97b5548f5a3732b0dbcdb405412a514a609f786dfbb5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tw-hosted-base-resolved.json b/mobile/rpc-foundation/goldens/tw-hosted-base-resolved.json index ba27d319217..200e5be8051 100644 --- a/mobile/rpc-foundation/goldens/tw-hosted-base-resolved.json +++ b/mobile/rpc-foundation/goldens/tw-hosted-base-resolved.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "b3734c24f8a083d3efcdd995ea6a57e608d3d3ae3bbbd514db19dcf69448fa48", "platform": "darwin", 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 335b648b6fc..85bf070e8a1 100644 --- a/mobile/rpc-foundation/goldens/tw-hosted-base-soft-error.json +++ b/mobile/rpc-foundation/goldens/tw-hosted-base-soft-error.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "451e74a430d2549976fa360a0e43e76a8d855b1470b8e313797019770ceca4cb", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tw-paste-lookup-resolved.json b/mobile/rpc-foundation/goldens/tw-paste-lookup-resolved.json index a84c67b4717..da3f6409337 100644 --- a/mobile/rpc-foundation/goldens/tw-paste-lookup-resolved.json +++ b/mobile/rpc-foundation/goldens/tw-paste-lookup-resolved.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "1fb1cdc8a2544e25547175760143a61355900a3ed4b87e08a1fa0dd2409e317d", "platform": "darwin", 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 49af9ef2417..97390cccd2a 100644 --- a/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-refused.json +++ b/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "e9d85c576adf93063a8f56d49d28869c402cad38122732b46b8ec021d25db5e3", "platform": "darwin", 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 6f86370c208..e2c595c3ab9 100644 --- a/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-unsupported.json +++ b/mobile/rpc-foundation/goldens/tw-paste-lookup-slug-unsupported.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "14509b4c1cc3beb00cc329b6bae46913f59b3938f76c0bd3bf3e374f34fb680d", "platform": "darwin", 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 57d1d82e515..df9e8c04e99 100644 --- a/mobile/rpc-foundation/goldens/tw-setup-hook-trust-always.json +++ b/mobile/rpc-foundation/goldens/tw-setup-hook-trust-always.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "0d2e3f48aadf45abbf6927b72ed5fef4caa8e3eb2efd1046339a3fbfab6f9f18", "platform": "darwin", 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 14512e62063..695c71abfda 100644 --- a/mobile/rpc-foundation/goldens/tw-setup-hook-trust-approved.json +++ b/mobile/rpc-foundation/goldens/tw-setup-hook-trust-approved.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "f54f5c6dbbe7dbcf8e85e9bd36b27ca9bea7de65d5e35dabace49b3fc766a403", "platform": "darwin", 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 74b2d3a49d2..73acfb3692e 100644 --- a/mobile/rpc-foundation/goldens/tw-smart-search-all-providers.json +++ b/mobile/rpc-foundation/goldens/tw-smart-search-all-providers.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "283849e17fb47ad5f9c128cef37a18e869a132357b332b40bec955292db2af3f", "platform": "darwin", 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 98e9bbfa3a1..82ac528cf25 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 @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "4537bf83f7a030521eec549adf4490da5be183471d5a9f9e58b71815b29481ff", "platform": "darwin", 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 bf6b5460d5f..b6953ec4070 100644 --- a/mobile/rpc-foundation/goldens/tw-smart-search-linear-listed.json +++ b/mobile/rpc-foundation/goldens/tw-smart-search-linear-listed.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "343b97826782820b7aecaddd13a4c8cdbbbca057c83021863d577a677934f3a3", "scenarioSha256": "34ab4edb621856980c8678629bd809c100d27dcd0747db5abbf4508c7231b7e5", "platform": "darwin", 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 4e2be1f84c3..e269c395241 100644 --- a/mobile/rpc-foundation/goldens/tw-task-preferences-resume-write.json +++ b/mobile/rpc-foundation/goldens/tw-task-preferences-resume-write.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "d3b7f33d810e1fa420ac41a628cde9fe4a9e65fd57f89fbca0a40fc7d74951ab", "scenarioSha256": "31bfa49f888b0eb3f72873bf4a3af26129e78c23126e8fc8fe45b952caa60904", "platform": "darwin", 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 d68daef92d2..09c4c70b4c4 100644 --- a/mobile/rpc-foundation/goldens/tw-workspace-source-presets-refused.json +++ b/mobile/rpc-foundation/goldens/tw-workspace-source-presets-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "2cd1e8972f226572744dad7da82afffbdf0452a121c1cd8c3334d5c3fde5d57c", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tw-workspace-source-presets.json b/mobile/rpc-foundation/goldens/tw-workspace-source-presets.json index bf76dff1abe..7f3d8467f80 100644 --- a/mobile/rpc-foundation/goldens/tw-workspace-source-presets.json +++ b/mobile/rpc-foundation/goldens/tw-workspace-source-presets.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "046dd3a125a3c9abcf5a0dd122818939b516adb91cbda2554b3409d4bb3a7980", "platform": "darwin", 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 24d9a106930..48737f18dbb 100644 --- a/mobile/rpc-foundation/goldens/tw-workspace-sparse-missing-preset.json +++ b/mobile/rpc-foundation/goldens/tw-workspace-sparse-missing-preset.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "865a659012dd882fd6073813585e2911a1d6252404fbf5a5e273f062b89fc91d", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tw-workspace-sparse-saved.json b/mobile/rpc-foundation/goldens/tw-workspace-sparse-saved.json index 99a32967aa2..b8c2ab13668 100644 --- a/mobile/rpc-foundation/goldens/tw-workspace-sparse-saved.json +++ b/mobile/rpc-foundation/goldens/tw-workspace-sparse-saved.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "124f664e339bfd83a1d892e1cd953a78fdf0dc4b20c4272356d24079c72a3e04", "platform": "darwin", 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 56ebd2dea61..6758517e445 100644 --- a/mobile/rpc-foundation/goldens/tw-workspace-ssh-connect-refused.json +++ b/mobile/rpc-foundation/goldens/tw-workspace-ssh-connect-refused.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "dd25391fdd3dc864ae493f72d013e789884a21e9c71522edc79323bc2b6c7f76", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/tw-workspace-ssh-connected.json b/mobile/rpc-foundation/goldens/tw-workspace-ssh-connected.json index 4b8ae1161d9..580934cac37 100644 --- a/mobile/rpc-foundation/goldens/tw-workspace-ssh-connected.json +++ b/mobile/rpc-foundation/goldens/tw-workspace-ssh-connected.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "495f51d9c2f7f3d71f53a53e88786b8d1f767a5bf66b8655c28222d2909a964c", "platform": "darwin", 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 a20c56a6937..c4df31ece85 100644 --- a/mobile/rpc-foundation/goldens/tw-workspace-ssh-local-agents.json +++ b/mobile/rpc-foundation/goldens/tw-workspace-ssh-local-agents.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "af0623c2d106d2ed18ef9149d4990539f9ed82146ae091a872a3e1d792efeffe", "platform": "darwin", 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 1b9ec34ed00..08f7795a68d 100644 --- a/mobile/rpc-foundation/goldens/tw-workspace-ssh-not-ready.json +++ b/mobile/rpc-foundation/goldens/tw-workspace-ssh-not-ready.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e567302ac8acffcfd602c9b323ecf8b5b7c0c4692bda1a4c881011a91d98979", "scenarioSha256": "3aa23f15da8fe9972e47c767db454b41750ca353ab10797082fde4514ffe9da0", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json b/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json index e257812ca99..f6845a57f7d 100644 --- a/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json +++ b/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e", "scenarioSha256": "d2947158840576cbd0f0604ed3d37b0f446c63c6d439b4d1b7def7fe8524523d", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/worktree-home-catalog.json b/mobile/rpc-foundation/goldens/worktree-home-catalog.json index 692408dc5cb..f3ff3fa1b16 100644 --- a/mobile/rpc-foundation/goldens/worktree-home-catalog.json +++ b/mobile/rpc-foundation/goldens/worktree-home-catalog.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e", "scenarioSha256": "4749bb3b871275ba08f026f9b6bcfd383605f443e7bba70a7f89175b91db6fa5", "platform": "darwin", diff --git a/mobile/rpc-foundation/goldens/worktree-retired-names.json b/mobile/rpc-foundation/goldens/worktree-retired-names.json index 7fc1d552ae5..757e6db3346 100644 --- a/mobile/rpc-foundation/goldens/worktree-retired-names.json +++ b/mobile/rpc-foundation/goldens/worktree-retired-names.json @@ -5,7 +5,7 @@ "runnerVersion": 1, "baseline": "e7206f62a827f4fe0a2badf3eecd2167b8ac4285", "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", - "recorderSha256": "69ad18bdf962600dd2f14ea3d12299a7006a46c26c32d2a9b3cc74d569a72e2c", + "recorderSha256": "b5f4b14e07fc7281b954ff5f16d5803e2dfb1bc2a97dcbe6a0991697a5980c49", "adapterSha256": "4e942ddfbaa0ba6bfc2993969276987f6528ac53765d125e99a830e261f93a8e", "scenarioSha256": "2faa07ee5f12b3ed584117359d3b7aeb9c78a04e8fc49e753372f8c3927a3740", "platform": "darwin", diff --git a/mobile/rpc-foundation/pilot-scenarios.json b/mobile/rpc-foundation/pilot-scenarios.json index 5e6badeb31d..79459424033 100644 --- a/mobile/rpc-foundation/pilot-scenarios.json +++ b/mobile/rpc-foundation/pilot-scenarios.json @@ -19652,6 +19652,713 @@ "checkpoint": "stopped" } ] + }, + { + "id": "notifications-desktop-stream", + "operation": "notifications.desktop-stream", + "version": 1, + "family": "notifications.desktop-stream", + "sites": ["mobile/src/notifications/mobile-notifications.ts"], + "schedules": [], + "deviceStore": { + "orca:hosts": "[{\"id\":\"host-1\",\"name\":\"Desk\",\"endpoint\":\"wss://desk.test\",\"publicKeyB64\":\"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=\",\"lastConnected\":1700000000000}]" + }, + "deviceState": { + "notificationTray": [ + { + "request": { + "identifier": "tray-1", + "content": { + "data": { + "hostFingerprint": "Yw3NKWbEM2aRElRI", + "kind": "alert", + "notificationId": "note-1", + "notificationEpoch": "epoch-1", + "notificationSeq": 7 + } + } + } + }, + { + "request": { + "identifier": "tray-2", + "content": { + "data": { + "hostFingerprint": "Yw3NKWbEM2aRElRI", + "kind": "alert", + "notificationId": "note-2", + "notificationEpoch": "epoch-1", + "notificationSeq": 8 + } + } + } + } + ] + }, + "steps": [ + { + "action": "start", + "id": "start" + }, + { + "checkpoint": "subscribed" + }, + { + "frame": "notifications.subscribe#1", + "params": { + "includeDesktopSuppressed": true + }, + "reply": { + "ok": true, + "streaming": true, + "result": { + "type": "ready", + "subscriptionId": "sub-1" + } + } + }, + { + "checkpoint": "ready" + }, + { + "complete": "notifications.getMissedSince#1", + "params": { + "lastSeenSeq": 9007199254740991, + "deliveredPushes": [ + { + "notificationId": "note-1", + "notificationEpoch": "epoch-1", + "notificationSeq": 7 + }, + { + "notificationId": "note-2", + "notificationEpoch": "epoch-1", + "notificationSeq": 8 + } + ] + }, + "reply": { + "ok": true, + "result": { + "dismissedPushes": [ + { + "notificationId": "note-1", + "notificationEpoch": "epoch-1", + "notificationSeq": 7 + } + ] + } + } + }, + { + "checkpoint": "caught-up" + }, + { + "frame": "notifications.subscribe#1", + "params": { + "includeDesktopSuppressed": true + }, + "reply": { + "ok": true, + "streaming": true, + "result": { + "type": "dismiss", + "notificationId": "note-2", + "notificationEpoch": "epoch-1", + "notificationSeq": 8 + } + } + }, + { + "checkpoint": "dismissed" + }, + { + "action": "stop", + "id": "stop" + }, + { + "checkpoint": "unsubscribing" + }, + { + "complete": "notifications.unsubscribe#1", + "params": { + "subscriptionId": "sub-1" + }, + "reply": { + "ok": true, + "result": { + "unsubscribed": true + } + } + }, + { + "checkpoint": "stopped" + } + ] + }, + { + "id": "notifications-desktop-stream-replayed", + "operation": "notifications.desktop-stream", + "version": 1, + "family": "notifications.desktop-stream", + "sites": ["mobile/src/notifications/mobile-notifications.ts"], + "schedules": [], + "deviceStore": { + "orca:hosts": "[{\"id\":\"host-1\",\"name\":\"Desk\",\"endpoint\":\"wss://desk.test\",\"publicKeyB64\":\"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=\",\"lastConnected\":1700000000000}]" + }, + "deviceState": { + "notificationTray": [ + { + "request": { + "identifier": "tray-1", + "content": { + "data": { + "hostFingerprint": "Yw3NKWbEM2aRElRI", + "kind": "alert", + "notificationId": "note-1", + "notificationEpoch": "epoch-1", + "notificationSeq": 7 + } + } + } + }, + { + "request": { + "identifier": "tray-2", + "content": { + "data": { + "hostFingerprint": "Yw3NKWbEM2aRElRI", + "kind": "alert", + "notificationId": "note-2", + "notificationEpoch": "epoch-1", + "notificationSeq": 8 + } + } + } + } + ] + }, + "steps": [ + { + "action": "start", + "id": "start" + }, + { + "frame": "notifications.subscribe#1", + "params": { + "includeDesktopSuppressed": true + }, + "reply": { + "ok": true, + "streaming": true, + "result": { + "type": "ready", + "subscriptionId": "sub-1" + } + } + }, + { + "complete": "notifications.getMissedSince#1", + "params": { + "lastSeenSeq": 9007199254740991, + "deliveredPushes": [ + { + "notificationId": "note-1", + "notificationEpoch": "epoch-1", + "notificationSeq": 7 + }, + { + "notificationId": "note-2", + "notificationEpoch": "epoch-1", + "notificationSeq": 8 + } + ] + }, + "reply": { + "ok": true, + "result": { + "dismissedPushes": [] + } + } + }, + { + "checkpoint": "ready" + }, + { + "action": "cutover", + "id": "cutover" + }, + { + "checkpoint": "re-subscribed" + }, + { + "frame": "notifications.subscribe#2", + "params": { + "includeDesktopSuppressed": true + }, + "reply": { + "ok": true, + "streaming": true, + "result": { + "type": "ready", + "subscriptionId": "sub-2" + } + } + }, + { + "complete": "notifications.getMissedSince#2", + "params": { + "lastSeenSeq": 9007199254740991, + "deliveredPushes": [ + { + "notificationId": "note-1", + "notificationEpoch": "epoch-1", + "notificationSeq": 7 + }, + { + "notificationId": "note-2", + "notificationEpoch": "epoch-1", + "notificationSeq": 8 + } + ] + }, + "reply": { + "ok": true, + "result": { + "dismissedPushes": [ + { + "notificationId": "note-2", + "notificationEpoch": "epoch-1", + "notificationSeq": 8 + } + ] + } + } + }, + { + "checkpoint": "replayed" + }, + { + "action": "stop", + "id": "stop" + }, + { + "complete": "notifications.unsubscribe#1", + "params": { + "subscriptionId": "sub-2" + }, + "reply": { + "ok": true, + "result": { + "unsubscribed": true + } + } + }, + { + "checkpoint": "stopped" + } + ] + }, + { + "id": "native-chat-page-earlier", + "operation": "session.native-chat-page", + "version": 1, + "family": "session.native-chat-page", + "sites": ["mobile/src/session/use-mobile-native-chat-session.ts"], + "schedules": [], + "steps": [ + { + "action": "mount", + "id": "mount" + }, + { + "checkpoint": "subscribed" + }, + { + "frame": "nativeChat.subscribe#1", + "params": { + "agent": "claude", + "sessionId": "session-1", + "limit": 40, + "subscriptionId": "claude:session-1", + "capabilities": { + "transcriptPending": 1 + }, + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + }, + "reply": { + "ok": true, + "streaming": true, + "result": { + "type": "snapshot", + "messages": [ + { + "id": "m-3", + "role": "assistant", + "source": "transcript", + "timestamp": 3000, + "blocks": [ + { + "type": "text", + "text": "third" + } + ] + }, + { + "id": "m-4", + "role": "assistant", + "source": "transcript", + "timestamp": 4000, + "blocks": [ + { + "type": "text", + "text": "fourth" + } + ] + } + ], + "hasMore": true, + "beforeOffset": 1200 + } + } + }, + { + "checkpoint": "snapshot" + }, + { + "action": "load-earlier", + "id": "page" + }, + { + "checkpoint": "paging" + }, + { + "complete": "nativeChat.readSession#1", + "params": { + "agent": "claude", + "sessionId": "session-1", + "limit": 60, + "beforeOffset": 1200, + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + }, + "reply": { + "ok": true, + "result": { + "messages": [ + { + "id": "m-1", + "role": "assistant", + "source": "transcript", + "timestamp": 1000, + "blocks": [ + { + "type": "text", + "text": "first" + } + ] + }, + { + "id": "m-2", + "role": "assistant", + "source": "transcript", + "timestamp": 2000, + "blocks": [ + { + "type": "text", + "text": "second" + } + ] + } + ], + "hasMore": false, + "beforeOffset": 0 + } + } + }, + { + "checkpoint": "paged" + }, + { + "action": "cutover", + "id": "cutover" + }, + { + "checkpoint": "re-subscribed" + }, + { + "frame": "nativeChat.subscribe#2", + "params": { + "agent": "claude", + "sessionId": "session-1", + "limit": 40, + "subscriptionId": "claude:session-1", + "capabilities": { + "transcriptPending": 1 + }, + "transcriptPath": "/work/feature/.claude/session-1.jsonl" + }, + "reply": { + "ok": true, + "streaming": true, + "result": { + "type": "snapshot", + "messages": [ + { + "id": "m-3", + "role": "assistant", + "source": "transcript", + "timestamp": 3000, + "blocks": [ + { + "type": "text", + "text": "third" + } + ] + }, + { + "id": "m-4", + "role": "assistant", + "source": "transcript", + "timestamp": 4000, + "blocks": [ + { + "type": "text", + "text": "fourth" + } + ] + }, + { + "id": "m-5", + "role": "assistant", + "source": "transcript", + "timestamp": 5000, + "blocks": [ + { + "type": "text", + "text": "fifth" + } + ] + } + ], + "hasMore": true, + "beforeOffset": 1200 + } + } + }, + { + "checkpoint": "replayed" + }, + { + "action": "unmount", + "id": "unmount" + }, + { + "checkpoint": "unmounted" + } + ] + }, + { + "id": "terminal-gesture-flush-and-clear", + "operation": "session.terminal-gesture-input", + "version": 1, + "family": "session.terminal-gesture-input", + "sites": ["mobile/src/session/use-mobile-session-terminal-input.ts"], + "schedules": [], + "steps": [ + { + "action": "mount", + "id": "mount" + }, + { + "action": "gesture", + "id": "gesture" + }, + { + "checkpoint": "queued" + }, + { + "advance": 16 + }, + { + "checkpoint": "flushing" + }, + { + "complete": "terminal.send#1", + "params": { + "terminal": "terminal-1", + "text": "\u001b[<64;10;5M", + "enter": false, + "client": { + "id": "device-token-1", + "type": "mobile" + } + }, + "reply": { + "ok": true, + "result": { + "send": { + "accepted": true + } + } + } + }, + { + "checkpoint": "sent" + }, + { + "complete": "orchestration.workerTerminalUserInput#1", + "params": { + "terminal": "terminal-1" + }, + "reply": { + "ok": true, + "result": { + "reported": true + } + } + }, + { + "checkpoint": "reported" + }, + { + "action": "clear", + "id": "clear" + }, + { + "checkpoint": "clearing" + }, + { + "complete": "terminal.clearBuffer#1", + "params": { + "terminal": "terminal-1" + }, + "reply": { + "ok": true, + "result": { + "cleared": true + } + } + }, + { + "checkpoint": "cleared" + } + ] + }, + { + "id": "notifications-desktop-stream-closed", + "operation": "notifications.desktop-stream", + "version": 1, + "family": "notifications.desktop-stream", + "sites": ["mobile/src/notifications/mobile-notifications.ts"], + "schedules": [], + "deviceStore": { + "orca:hosts": "[{\"id\":\"host-1\",\"name\":\"Desk\",\"endpoint\":\"wss://desk.test\",\"publicKeyB64\":\"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=\",\"lastConnected\":1700000000000}]" + }, + "deviceState": { + "notificationTray": [ + { + "request": { + "identifier": "tray-1", + "content": { + "data": { + "hostFingerprint": "Yw3NKWbEM2aRElRI", + "kind": "alert", + "notificationId": "note-1", + "notificationEpoch": "epoch-1", + "notificationSeq": 7 + } + } + } + }, + { + "request": { + "identifier": "tray-2", + "content": { + "data": { + "hostFingerprint": "Yw3NKWbEM2aRElRI", + "kind": "alert", + "notificationId": "note-2", + "notificationEpoch": "epoch-1", + "notificationSeq": 8 + } + } + } + } + ] + }, + "steps": [ + { + "action": "start", + "id": "start" + }, + { + "frame": "notifications.subscribe#1", + "params": { + "includeDesktopSuppressed": true + }, + "reply": { + "ok": true, + "streaming": true, + "result": { + "type": "ready", + "subscriptionId": "sub-1" + } + } + }, + { + "complete": "notifications.getMissedSince#1", + "params": { + "lastSeenSeq": 9007199254740991, + "deliveredPushes": [ + { + "notificationId": "note-1", + "notificationEpoch": "epoch-1", + "notificationSeq": 7 + }, + { + "notificationId": "note-2", + "notificationEpoch": "epoch-1", + "notificationSeq": 8 + } + ] + }, + "reply": { + "ok": true, + "result": { + "dismissedPushes": [] + } + } + }, + { + "checkpoint": "ready" + }, + { + "action": "stop", + "id": "stop" + }, + { + "complete": "notifications.unsubscribe#1", + "params": { + "subscriptionId": "sub-1" + }, + "reply": { + "ok": true, + "result": { + "unsubscribed": true + } + } + }, + { + "checkpoint": "stopped" + }, + { + "action": "cutover", + "id": "cutover" + }, + { + "checkpoint": "not-replayed" + } + ] } ] } diff --git a/mobile/src/notifications/desktop-notification-stream-operations.ts b/mobile/src/notifications/desktop-notification-stream-operations.ts new file mode 100644 index 00000000000..da48725a071 --- /dev/null +++ b/mobile/src/notifications/desktop-notification-stream-operations.ts @@ -0,0 +1,24 @@ +import { bindDeferredRpcOperation, defineRpcOperation } from '../transport/rpc-operation' +import { rpcUncheckedPayloadReader } from '../transport/rpc-reader-payload' + +/** + * Closing the desktop notification stream on the host. + * + * Its own module rather than a line in `mobile-push-registration-operations.ts`: that module is the + * push route this device holds with a gateway, and this is the socket subscription the paired + * connection holds. They are two different deliveries of the same alert and neither implies the + * other. + * + * A skip rather than a throw, and the reply is unread either way: the disposer sends this on its + * way out with nothing left to show a host message on, and main's `.catch(() => {})` already made a + * refusal and a dropped connection the same non-event. + */ +export const desktopNotificationStreamUnsubscribe = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'notifications.unsubscribe-or-skip', + method: 'notifications.unsubscribe', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('notification-stream-closed') + }) +) diff --git a/mobile/src/notifications/mobile-notifications.ts b/mobile/src/notifications/mobile-notifications.ts index 974c9516263..48f8e86f63e 100644 --- a/mobile/src/notifications/mobile-notifications.ts +++ b/mobile/src/notifications/mobile-notifications.ts @@ -1,4 +1,5 @@ import { requestNotificationCatchup } from './push-dismissal-reconciliation' +import { desktopNotificationStreamUnsubscribe } from './desktop-notification-stream-operations' import { dismissHostPushNotification } from './push-socket-dismissal' import type { DismissNotificationEvent } from './desktop-notification-events' import type { RpcClient } from '../transport/rpc-client' @@ -20,7 +21,8 @@ export function subscribeToDesktopNotifications(client: RpcClient, hostId: strin function unsubscribeServer(id: string) { if (client.getState() === 'connected') { - client.sendRequest('notifications.unsubscribe', { subscriptionId: id }).catch(() => {}) + // The reply is never read: the stream is already gone locally either way. + desktopNotificationStreamUnsubscribe.request(client, { subscriptionId: id }).catch(() => {}) } } diff --git a/mobile/src/session/mobile-session-read-operations.ts b/mobile/src/session/mobile-session-read-operations.ts index cce92927180..48be2b2b94d 100644 --- a/mobile/src/session/mobile-session-read-operations.ts +++ b/mobile/src/session/mobile-session-read-operations.ts @@ -5,8 +5,9 @@ import { } from '../transport/rpc-reader-payload' // What the session screen reads: the terminal inventory, the repo list two screens resolve a -// workspace's connection through, the session tab snapshot, the quick-command list, the -// worktree-stored review notes and a markdown tab's document. +// workspace's connection through, the session tab snapshot, native chat's workspace paths and +// older-history page, the quick-command list, the whole `worktree.show` record and a markdown +// tab's document. /** * The terminal inventory. A refused list leaves the strip exactly as it was — the screen treats it @@ -127,6 +128,27 @@ export const nativeChatFileInventoryRead = bindDeferredRpcOperation( }) ) +/** + * The older-history page native chat asks for when the transcript is scrolled back. + * + * A skip rather than a throw: a refused page leaves the window the subscription already delivered + * and the scroll simply does not grow, which is what the call site's `if (!response.ok) return` + * did. There is no screen to raise a host message on — the pane is already showing history. + * + * The payload stays whole rather than being narrowed to `messages`, because the reply is a union: + * an older runtime answers `{ error }` in place of a window, and the caller discriminates on that + * before it reads a message list. A member reader would have to pick one arm. + */ +export const nativeChatSessionPageRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'nativeChat.read-session-page-or-skip', + method: 'nativeChat.readSession', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('native-chat-session-page') + }) +) + /** Shared with the save leg in the write module: one list read, so neither leg can adopt `[]`. */ export const quickCommandsReader = rpcUncheckedPayloadReader('terminal-quick-commands') @@ -146,21 +168,26 @@ export const quickCommandsRead = bindDeferredRpcOperation( ) /** - * The review notes as they sit on the worktree record, and the fourth reader on `worktree.show`. - * Two of the other three project a narrower value and would answer this screen with no notes: the - * summary keeps `{ baseRef, linkedPR }`, the review screen keeps `{ diffComments, mobileDiffReview }`. - * The third, `fileOwnershipWorktreeRead`, reads the same `worktree` member whole with the same - * reader shape, so acceptance is the only thing separating them: a file mutation throws the host's - * message rather than write to the wrong host, where a session screen missing its notes just shows - * none and keeps working. + * The worktree record as the host holds it, and the fourth reader on `worktree.show`. Two consumers + * share it and project their own field off the member: the diff-comment loader reads + * `diffComments`, and the session header's live title reads `displayName` through + * `getLiveWorktreeDisplayName`. Widening either into its own family would be a second name for the + * same wire, so the member is read whole here and narrowed at each call site. + * + * Two of the other three readers project a narrower value and would answer both consumers with + * nothing: the summary keeps `{ baseRef, linkedPR }`, the review screen keeps + * `{ diffComments, mobileDiffReview }`. The third, `fileOwnershipWorktreeRead`, reads the same + * `worktree` member whole with the same reader shape, so acceptance is the only thing separating + * them: a file mutation throws the host's message rather than write to the wrong host, where a + * session screen missing its notes shows none, and a header missing a name keeps the route hint. */ -export const sessionWorktreeNotesRead = bindDeferredRpcOperation( +export const sessionWorktreeRecordRead = bindDeferredRpcOperation( defineRpcOperation({ - name: 'worktree.show-review-notes', + name: 'worktree.show-record-or-skip', method: 'worktree.show', acceptance: 'success-result-or-skip', barrier: 'after-caller-barrier', - read: rpcUncheckedMemberReader('worktree-review-notes', 'worktree') + read: rpcUncheckedMemberReader('worktree-record', 'worktree') }) ) diff --git a/mobile/src/session/mobile-session-route-parity.test.ts b/mobile/src/session/mobile-session-route-parity.test.ts index b1973782b7c..c3b53434f26 100644 --- a/mobile/src/session/mobile-session-route-parity.test.ts +++ b/mobile/src/session/mobile-session-route-parity.test.ts @@ -68,13 +68,17 @@ const HEAD_CALLBACK_IDENTITY_SHA256 = '2a9e4825df007f6ef53b81aa5004991d6318eee7507b44d625c07e630be432eb' // Pins that no callback body in the route changed unnoticed. Body text, not behaviour: the sends // and repo reads inside them now name their `RpcOperation` instead of the raw `sendRequest` port. -const HEAD_CALLBACK_BODY_SHA256 = 'bacd826b9fc4f16ddd052382787dad76cac1b962f7fdf6deb8c767e9fc8f09db' +// Refreshed in step 6 for the gesture flush, whose `terminal.send` became `terminalInputSend` and +// whose accepted-check became that operation's own verdict, then again when that check was spelled +// `=== true` to match the other four sites reading the same verdict. +const HEAD_CALLBACK_BODY_SHA256 = 'fe10d09cf10c6ddbc01dbcc611fcb37bd2acc4774db44ced772b66d1e8dbd970' const HEAD_EFFECT_SHA256 = '73d80845e0a4b6363cfb4bb55551af97965b1f676b97adf0b2a8504219b9a501' const HEAD_CONTENT_HOOK_SHA256 = '9c3b612fef3f370d66873aefdbe1d701f20cb64ded31fef5cc45fde6f8189581' // Same pin for the 12 bodies that sit in nested functions rather than callbacks, moved by the same -// rewrite of those send and read expressions. Count unchanged. +// rewrite of those send and read expressions. Count unchanged. Refreshed again in step 6 for +// `handleClearTerminal`, whose send became `terminalBufferClear`. const HEAD_NESTED_FUNCTION_SHA256 = - '258930d2955a3689f2ae2a25392a75fd294513ad141bc6fbf5b7d9bafccf374e' + '261ba1923b953f775dec8fc7219d68efc8f2ca17ab2b14dff0136c223a0c40c4' const HEAD_NATIVE_REGISTRATION_SHA256 = 'cab85e4e4a3f43289ba93ddea9ccce57aea83e0bf14fd1620a965aad0c1cb49e' const HEAD_NATIVE_REMOVAL_SHA256 = @@ -82,8 +86,10 @@ const HEAD_NATIVE_REMOVAL_SHA256 = const HEAD_TIMER_CREATION_SHA256 = '1a31b625e2174c3db77272249843196d2b6b06ab1e654a96d8f7858e3082e66b' const HEAD_TIMER_CLEANUP_SHA256 = 'c73f1d1c2cc89642f3d727d6f3b6b81860a9d6f34234541a2065ec3d1a8cd116' +// Two method literals fewer: `terminal.send` and `terminal.clearBuffer` are now fixed at their +// operation's definition instead of being spelled at the call site. const HEAD_RUNTIME_STRING_SHA256 = - '0c713141a9e8b75d1435ffa6cc5f446b72e3316b5b553a4f3bb8f767831173b8' + '418c490447eb65b5900408c0c6b971dc9b814f04d8034c6caf53124e7f948c8c' const HEAD_HOST_JSX_SHA256 = '390405926b1695fa3a33686f0bc192b432f5468d8576499d7cafbb4922defbb5' const HEAD_LEAF_JSX_SHA256 = '21dba981875e173f692590bf910d60964660c5f4cbb79f3a377c7e54f6a1f016' const HEAD_STYLE_REFERENCE_SHA256 = @@ -521,7 +527,7 @@ describe('mobile session route extraction parity', () => { it('preserves runtime strings, styles, and the expanded JSX tree', () => { const strings = readRuntimeStrings() - expect(strings).toHaveLength(537) + expect(strings).toHaveLength(535) expect(hash(strings)).toBe(HEAD_RUNTIME_STRING_SHA256) const jsx = readJsxFacts(readDefinitions()) expect(jsx.host).toHaveLength(124) diff --git a/mobile/src/session/use-live-worktree-name.ts b/mobile/src/session/use-live-worktree-name.ts index f0e9fa32138..1c77ba98b6b 100644 --- a/mobile/src/session/use-live-worktree-name.ts +++ b/mobile/src/session/use-live-worktree-name.ts @@ -3,7 +3,8 @@ import { useFocusEffect } from 'expo-router' import type { RuntimeClientEventStreamMessage } from '../../../src/shared/runtime-client-events' import { getRepoIdFromWorktreeId } from '../../../src/shared/worktree/id' import type { RpcClient } from '../transport/rpc-client' -import type { ConnectionState, RpcSuccess } from '../transport/types' +import type { ConnectionState } from '../transport/types' +import { sessionWorktreeRecordRead } from './mobile-session-read-operations' import { getLiveWorktreeDisplayName, type WorktreeDisplayNameSource } from './worktree-display-name' import { FLOATING_WORKSPACE_TITLE, isFloatingWorkspaceWorktreeId } from './floating-workspace' import { @@ -88,7 +89,7 @@ export function useLiveWorktreeName({ // only the newest read may publish or stop the retry poll. const generation = ++refreshGeneration try { - const response = await client.sendRequest('worktree.show', { + const response = await sessionWorktreeRecordRead.request(client, { worktree: `id:${worktreeId}` }) if (stale || generation !== refreshGeneration) { @@ -110,15 +111,17 @@ export function useLiveWorktreeName({ ? current : { worktreeId, resolution } ) - if (!response.ok) { + // The resolution above comes off the raw reply on purpose: `selector_not_found` is what + // proves the worktree is gone, and no acceptance policy carries a refusal code. The skip + // below is the same verdict as main's `!response.ok`, since a refusal is the only reply + // this policy declines. + const accepted = sessionWorktreeRecordRead.interpret(response) + if (!accepted.accepted) { return } - const result = (response as RpcSuccess).result as { - worktree?: WorktreeDisplayNameSource - } - const liveName = result.worktree - ? getLiveWorktreeDisplayName([result.worktree], worktreeId) - : null + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: main cast this member unread; the reader hands back the same `worktree` value. + const worktree = accepted.value as WorktreeDisplayNameSource | undefined + const liveName = worktree ? getLiveWorktreeDisplayName([worktree], worktreeId) : null if (liveName) { setWorktreeName((current) => current.worktreeId === worktreeId && current.name === liveName diff --git a/mobile/src/session/use-mobile-native-chat-session.ts b/mobile/src/session/use-mobile-native-chat-session.ts index e509b202c2a..9157fdecb65 100644 --- a/mobile/src/session/use-mobile-native-chat-session.ts +++ b/mobile/src/session/use-mobile-native-chat-session.ts @@ -7,6 +7,7 @@ import { createNativeChatMerger, replaceList } from '../../../src/shared/native- import type { NativeChatMessage } from '../../../src/shared/native-chat-types' import { buildNativeChatSubscriptionId } from '../../../src/shared/native-chat-stream-unsubscribe' import type { RpcClient } from '../transport/rpc-client' +import { nativeChatSessionPageRead } from './mobile-session-read-operations' import { applyMobileNativeChatStreamFrame, type MobileNativeChatStreamFrame @@ -239,17 +240,19 @@ export function useMobileNativeChatSession(args: { setLoadingEarlier(true) void (async () => { try { - const response = await client.sendRequest('nativeChat.readSession', { + const response = await nativeChatSessionPageRead.request(client, { agent, sessionId, limit: beforeOffset === null ? nextLimit : pageLimit, ...(beforeOffset === null ? {} : { beforeOffset }), ...(transcriptPath ? { transcriptPath } : {}) }) - if (!response.ok) { + const accepted = nativeChatSessionPageRead.interpret(response) + if (!accepted.accepted) { return } - const result = response.result as ReadSessionResult + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: main cast this payload unread; the reader hands back the same result. + const result = accepted.value as ReadSessionResult if ('error' in result) { return } diff --git a/mobile/src/session/use-mobile-session-diff-comments.ts b/mobile/src/session/use-mobile-session-diff-comments.ts index 59350d51d00..bd38e8d9343 100644 --- a/mobile/src/session/use-mobile-session-diff-comments.ts +++ b/mobile/src/session/use-mobile-session-diff-comments.ts @@ -1,7 +1,7 @@ import { useEffect, useCallback } from 'react' import * as Clipboard from 'expo-clipboard' import { interpretOrThrowRefusalMessage } from '../transport/rpc-refusal-message' -import { sessionWorktreeNotesRead } from './mobile-session-read-operations' +import { sessionWorktreeRecordRead } from './mobile-session-read-operations' import { sessionWorktreeNotesWrite } from './mobile-session-write-operations' import { triggerSelection, triggerSuccess, triggerError } from '../platform/haptics' import { @@ -32,8 +32,8 @@ export function useMobileSessionDiffComments(scope: MobileSessionDocumentReaders setDiffComments([]) return } - const response = sessionWorktreeNotesRead.interpret( - await sessionWorktreeNotesRead.request(client, { worktree: `id:${worktreeId}` }) + const response = sessionWorktreeRecordRead.interpret( + await sessionWorktreeRecordRead.request(client, { worktree: `id:${worktreeId}` }) ) if (!response.accepted) { return diff --git a/mobile/src/session/use-mobile-session-terminal-input.ts b/mobile/src/session/use-mobile-session-terminal-input.ts index 3f6e417e23a..f90563e443d 100644 --- a/mobile/src/session/use-mobile-session-terminal-input.ts +++ b/mobile/src/session/use-mobile-session-terminal-input.ts @@ -1,6 +1,6 @@ import { reportWorkerTerminalUserInput } from '../terminal/worker-terminal-takeover-report' import { useCallback } from 'react' -import { isTerminalSendRpcAccepted } from '../terminal/terminal-send-rpc-response' +import { terminalBufferClear, terminalInputSend } from '../terminal/mobile-terminal-operations' import { clearTerminalLiveInputFocusTimer, scheduleTerminalLiveInputFocus @@ -112,8 +112,8 @@ export function useMobileSessionTerminalInput(scope: MobileSessionFileActionsMod terminalGestureInputInFlightRef.current.add(handle) try { // Why: gesture arrows parked across a reconnect would move a TUI long after the swipe. - const response = await rpc.sendRequest( - 'terminal.send', + const response = await terminalInputSend.request( + rpc, buildTerminalSendParams({ terminal: handle, text: queued.bytes, @@ -122,7 +122,7 @@ export function useMobileSessionTerminalInput(scope: MobileSessionFileActionsMod }), TERMINAL_INPUT_SEND_OPTIONS ) - if (isTerminalSendRpcAccepted(response)) { + if (terminalInputSend.interpret(response) === true) { reportWorkerTerminalUserInput(rpc, handle) } } catch { @@ -234,9 +234,8 @@ export function useMobileSessionTerminalInput(scope: MobileSessionFileActionsMod } getTerminalRef(target.handle)?.clear() try { - await client.sendRequest('terminal.clearBuffer', { - terminal: target.handle - }) + // The reply is unread: main toasted success on any fulfilled envelope, refusal included. + await terminalBufferClear.request(client, { terminal: target.handle }) showToast('Terminal cleared') } catch { showToast("Couldn't clear terminal", 1500) diff --git a/mobile/src/terminal/mobile-terminal-operations.ts b/mobile/src/terminal/mobile-terminal-operations.ts index 3650ae6cb94..162f4b098fd 100644 --- a/mobile/src/terminal/mobile-terminal-operations.ts +++ b/mobile/src/terminal/mobile-terminal-operations.ts @@ -4,8 +4,8 @@ import { rpcReadUnchecked, rpcUncheckedPayloadReader } from '../transport/rpc-re import { isTerminalSendResultAccepted } from './terminal-send-rpc-response' import type { TerminalViewportUpdateOutcome } from './terminal-viewport-refit-state' -// Terminal input and the in-place viewport update. The `subscribe` and `sendUnsubscribe` ports -// these files also reach are a separate boundary and are untouched. +// Terminal input, the in-place viewport update and the buffer clear. The `subscribe` and +// `sendUnsubscribe` ports these files also reach are a separate boundary and are untouched. /** * Whether the runtime took the bytes, which is the whole of what a terminal send means to mobile: @@ -75,3 +75,19 @@ export const workerTerminalTakeoverReport = bindDeferredRpcOperation( read: rpcUncheckedPayloadReader('worker-terminal-input-reported') }) ) + +/** + * The terminal menu's buffer clear. A skip rather than a throw because main never looked at the + * envelope: it reported success on any fulfilled reply and only a transport rejection reached the + * failure toast, so a refusal telling the user the buffer was cleared is behaviour this preserves + * rather than repairs. + */ +export const terminalBufferClear = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'terminal.clear-buffer-or-skip', + method: 'terminal.clearBuffer', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('terminal-buffer-cleared') + }) +) diff --git a/mobile/src/terminal/terminal-send-rpc-response.test.ts b/mobile/src/terminal/terminal-send-rpc-response.test.ts index 5ef459a6fde..2cd026c3073 100644 --- a/mobile/src/terminal/terminal-send-rpc-response.test.ts +++ b/mobile/src/terminal/terminal-send-rpc-response.test.ts @@ -1,53 +1,31 @@ import { describe, expect, it } from 'vitest' -import type { RpcResponse } from '../transport/types' -import { isTerminalSendRpcAccepted } from './terminal-send-rpc-response' - -const runtimeMeta = { runtimeId: 'test-runtime' } as const +import { isTerminalSendResultAccepted } from './terminal-send-rpc-response' describe('terminal send RPC response', () => { - it('Given accepted terminal send response When checked Then reports success', () => { + it('Given accepted terminal send result When checked Then reports success', () => { // Given - const response: RpcResponse = { - id: '1', - ok: true, - result: { send: { handle: 'terminal-1', accepted: true, bytesWritten: 1 } }, - _meta: runtimeMeta - } + const result = { send: { handle: 'terminal-1', accepted: true, bytesWritten: 1 } } // When / Then - expect(isTerminalSendRpcAccepted(response)).toBe(true) + expect(isTerminalSendResultAccepted(result)).toBe(true) }) - it('Given rejected terminal send response When checked Then reports failure', () => { + it('Given rejected terminal send result When checked Then reports failure', () => { // Given - const response: RpcResponse = { - id: '1', - ok: true, - result: { send: { handle: 'terminal-1', accepted: false, bytesWritten: 0 } }, - _meta: runtimeMeta - } + const result = { send: { handle: 'terminal-1', accepted: false, bytesWritten: 0 } } // When / Then - expect(isTerminalSendRpcAccepted(response)).toBe(false) + expect(isTerminalSendResultAccepted(result)).toBe(false) }) - it('Given RPC failure or malformed terminal send response When checked Then reports failure', () => { - // Given - const rpcFailure: RpcResponse = { - id: '1', - ok: false, - error: { code: 'terminal_error', message: 'failed' }, - _meta: runtimeMeta - } - const malformedSuccess: RpcResponse = { - id: '2', - ok: true, - result: {}, - _meta: runtimeMeta - } + it('Given absent or malformed terminal send result When checked Then reports failure', () => { + // Given: a refusal envelope carries no result at all, and a fulfilled one may carry the + // wrong shape. + const absent = undefined + const malformed = {} // When / Then - expect(isTerminalSendRpcAccepted(rpcFailure)).toBe(false) - expect(isTerminalSendRpcAccepted(malformedSuccess)).toBe(false) + expect(isTerminalSendResultAccepted(absent)).toBe(false) + expect(isTerminalSendResultAccepted(malformed)).toBe(false) }) }) diff --git a/mobile/src/terminal/terminal-send-rpc-response.ts b/mobile/src/terminal/terminal-send-rpc-response.ts index 62a93e6130f..2e5d8415adb 100644 --- a/mobile/src/terminal/terminal-send-rpc-response.ts +++ b/mobile/src/terminal/terminal-send-rpc-response.ts @@ -1,14 +1,8 @@ -import type { RpcResponse } from '../transport/types' - function isRecord(value: unknown): value is Record { return typeof value === 'object' && value !== null } -/** The same verdict read off an admitted payload, for a call site that sends through an operation. */ +/** Whether an admitted terminal-send payload reports the write as accepted. */ export function isTerminalSendResultAccepted(result: unknown): boolean { return isRecord(result) && isRecord(result.send) && result.send.accepted === true } - -export function isTerminalSendRpcAccepted(response: RpcResponse): boolean { - return response.ok && isTerminalSendResultAccepted(response.result) -} diff --git a/mobile/src/test-support/rpc-recording/README.md b/mobile/src/test-support/rpc-recording/README.md index 2484d969935..0c945fcc135 100644 --- a/mobile/src/test-support/rpc-recording/README.md +++ b/mobile/src/test-support/rpc-recording/README.md @@ -97,6 +97,17 @@ and which the registry reports to the listener as an error. A streaming frame ar is accepted and observes nothing, because the opener path answers for an id it no longer holds; a non-streaming one names the scenario that has stopped matching. +A listener that throws on a frame is recorded as a `stream-listener-crash` effect rather than +failing the suite, the same rule the crash boundary holds for a screen and the unhandled-rejection +window holds for a detached effect. Only three listeners check the payload is an object before +reading its `type` — the two `runtime.clientEvents` ones and the structured agent session's, which +guards with `isSubscribeEvent` in `use-mobile-structured-agent-state.ts` — so without this every +other subscribing family died on the matrix's `result-absent` and `result-null` partitions — the +two shapes a stream listener is most likely to be wrong about were the only ones the oracle could +not record. The scenario's own faults +stay loud: a missing subscribe payload, a params mismatch and a closed stream are all raised before +or after the listener runs, and none of them is caught. + ### Recorded time Every settlement carries `startedAt` and `settledAt` in virtual milliseconds since the pinned epoch, @@ -350,13 +361,13 @@ families because no reference states are defined for them. ## What this oracle does and does not see -It replays 342 manifest scenarios against frozen goldens and fails on any divergence: 679 goldens -over 796 tests, all inside `pnpm --dir mobile test`. Counts quoted further down are measurements of +It replays 347 manifest scenarios against frozen goldens and fails on any divergence: 694 goldens +over 811 tests, all inside `pnpm --dir mobile test`. Counts quoted further down are measurements of the change they describe and are not restatements of this one. For a migration it answers one question — does the rewritten call site produce the same sender calls, settlements, state and effects as main did? -It is not a substitute for reading the diff. Three facts bound it, all learned the hard way: +It is not a substitute for reading the diff. Four facts bound it, all learned the hard way: - **It was blind to refusal ordering.** Reordering the settings and sibling refusal checks in `mobile-new-tab-agent-loader.ts` survives every golden except `probe-new-tab-both-refused` — @@ -376,6 +387,15 @@ It is not a substitute for reading the diff. Three facts bound it, all learned t all 163 tests, because no scenario rejected `git.status` for that family. Driving every scripted reply kills it on five matrix goldens. The lesson is about the skip, not about that call site: a generator that opts a family out without failing is indistinguishable from coverage. +- **It was blind to a stream close with no frame behind it.** Deleting `unsubscribeStream()` from + `mobile-notifications.ts`'s cleanup — the local close, not the `notifications.unsubscribe` RPC + beside it — survived all 810 tests. Neither unsubscribe builder in `rpc-client-stream-registry.ts` + knows `notifications.subscribe`, so closing that stream writes nothing to the wire: what the + mutant leaks is a live subscription record, and the leak stays invisible until a cutover replays + it. `notifications-desktop-stream-closed` stops the stream and then cuts over, where the leak + becomes a second `notifications.subscribe` payload. A family whose method does build an + unsubscribe (`nativeChat.subscribe`, `runtime.clientEvents.subscribe`) is pinned by that payload + at unmount and needs no such scenario. `mutants/probe-hole-witness.test.ts` closes the first two and keeps them closed. It asserts the hole and the closure together: each probe must kill its mutation _and_ every pre-probe scenario of @@ -384,21 +404,22 @@ lingering. What is still not covered: what the count-based raw-port inventory covers instead (which files reach `sendRequest`, and how often), native storage, transport skew, and the two mutations under -_Known-open holes_ below. The `subscribe` / `sendUnsubscribe` ports are covered for -`runtime.clientEvents.subscribe` only — the two client-event families are the whole of it. Nine -product call sites call `client.subscribe`; those two are recorded and seven are not, and no golden -mentions any of their methods: `notifications.subscribe`, `agentSession.subscribe`, -`session.tabs.subscribe`, `nativeChat.subscribe`, `terminal.subscribe`, `browser.screencast` and -`accounts.subscribe`. The frame plumbing is method-agnostic, so what stops each of the seven is its -consumer, not the runner. `terminal.subscribe` and `browser.screencast` write to a webview terminal -ref this runner has no substitute for. `accounts.subscribe` is wired on a per-host client from -`useAllHostClients`, and the runner hands an adapter one client rather than the multi-host context -that hook reads. Its snapshot decoder is not the wall: the loader reaches -`decodeAccountsSnapshot` and it throws its own domain error on a bad snapshot. The remaining four are unwritten scenarios, not walls. Blur is -unrecorded across all of them: `useFocusEffect` is substituted as `useEffect`, so a route's focus -cleanup is recorded at unmount and an unsubscribe only a blur would reach is not — driving focus -needs a substitute, and no recording reads one yet. Four of the nine -probes pin behaviour with no demonstrated mutation — the two mixed reject/refusal new-tab orders +_Known-open holes_ below. + +Which subscriptions are covered is no longer stated here. It is held as data in +`mobile/src/transport/rpc-subscription-inventory.ts`, where every product `client.subscribe` is +classified as recorded, an unwritten scenario, or walled with the wall named, and +`rpc-subscription-boundary.test.ts` fails on a new site, a stale entry, a wrong method and a +`recorded` entry naming a family this manifest does not have. This paragraph is why: it said nine +sites when there were ten — the count was taken over `mobile/src`, and the host screen's +`accounts.subscribe` lives under `app/`. A count in prose cannot fail. Today four of the ten are +recorded, two are unwritten scenarios and four are walled, and the list is what says so. + +The frame plumbing is method-agnostic, so what stops a site is its consumer rather than the runner. +Blur is unrecorded across all ten subscribing sites: `useFocusEffect` is substituted as `useEffect`, +so a route's focus cleanup is recorded at unmount and an unsubscribe only a blur would reach is not +— driving focus needs a substitute, and no recording reads one yet. Four of the nine probes pin +behaviour with no demonstrated mutation — the two mixed reject/refusal new-tab orders and the home-providers and resume-metadata refresh refusals; they are frozen observations, not proven defect detectors. `settings.resume-metadata` projects `{}` as its state, so its probe observes only sender calls and settlements. diff --git a/mobile/src/test-support/rpc-recording/adapters/desktop-notification-stream-mount-adapters.ts b/mobile/src/test-support/rpc-recording/adapters/desktop-notification-stream-mount-adapters.ts new file mode 100644 index 00000000000..b57f5d2f940 --- /dev/null +++ b/mobile/src/test-support/rpc-recording/adapters/desktop-notification-stream-mount-adapters.ts @@ -0,0 +1,46 @@ +import type { operationModuleLoader } from '../operation-module-loader' +import type { MountAdapter } from '../recording-scenario' + +const HOST = 'host-1' + +/** + * The desktop notification socket: one subscribe, the catch-up read its `ready` arms, the tray + * dismissals its events drive, and the server unsubscribe the disposer sends. + * + * The disposer is the whole output — it is what a host connection calls when the client goes away — + * so the recording drives `start` and `stop` and observes what each put on the wire. Everything the + * reconciliation reads off the device is declared by the scenario, the way + * `push-dismissal-mount-adapters.ts` declares it, so the identities that reach the host are + * scenario bytes. + */ +export function desktopNotificationStreamMountAdapters( + modules: ReturnType +): Record { + return { + 'notifications.desktop-stream': ({ client }) => { + const subscribeToDesktopNotifications = modules.load< + typeof import('../../../notifications/mobile-notifications') + >('mobile/src/notifications/mobile-notifications.ts').subscribeToDesktopNotifications + let stop: (() => void) | null = null + return { + action(name) { + if (name === 'start') { + stop = subscribeToDesktopNotifications(client, HOST) + return + } + if (name === 'stop') { + stop?.() + stop = null + return + } + throw new Error(`Unknown desktop notification stream action: ${name}`) + }, + state: () => ({ running: stop !== null }), + dispose: () => { + stop?.() + stop = null + } + } + } + } +} 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 8fcf755b6a4..508bea8f049 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 @@ -11,6 +11,7 @@ import { browserMountAdapters } from './browser-mount-adapters' import { clientEventStreamMountAdapters } from './client-event-stream-mount-adapters' import { clipboardImageMountAdapters } from './clipboard-image-mount-adapters' import { codexResetCreditMountAdapters } from './codex-reset-credit-mount-adapters' +import { desktopNotificationStreamMountAdapters } from './desktop-notification-stream-mount-adapters' import { dictationMountAdapters } from './dictation-mount-adapters' import { diffReviewActionMountAdapters } from './diff-review-action-mount-adapters' import { diffReviewMountAdapters } from './diff-review-mount-adapters' @@ -26,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 { nativeChatPagingMountAdapters } from './native-chat-paging-mount-adapters' import { nativeChatWriteMountAdapters } from './native-chat-write-mount-adapters' import { newTabAgentMountAdapters } from './new-tab-agent-mount-adapters' import { @@ -45,6 +47,7 @@ import { sessionNotesMountAdapters } from './session-notes-mount-adapters' import { sessionScreenReadMountAdapters } from './session-screen-read-mount-adapters' import { sessionScreenTabMountAdapters } from './session-screen-tab-mount-adapters' import { sessionTabMountAdapters } from './session-tab-mount-adapters' +import { sessionTerminalGestureMountAdapters } from './session-terminal-gesture-mount-adapters' import { sessionTerminalInputMountAdapters } from './session-terminal-input-mount-adapters' import { settingsMountAdapters, settingsMountExposures } from './settings-mount-adapters' import { sourceControlMountAdapters } from './source-control-mount-adapters' @@ -95,6 +98,10 @@ export const MOUNTED_OPERATION_MODULES: readonly MountedOperationModule[] = [ { source: 'client-event-stream-mount-adapters.ts', mounts: clientEventStreamMountAdapters }, { source: 'clipboard-image-mount-adapters.ts', mounts: clipboardImageMountAdapters }, { source: 'codex-reset-credit-mount-adapters.ts', mounts: codexResetCreditMountAdapters }, + { + source: 'desktop-notification-stream-mount-adapters.ts', + mounts: desktopNotificationStreamMountAdapters + }, { source: 'dictation-mount-adapters.ts', mounts: dictationMountAdapters }, { source: 'diff-review-action-mount-adapters.ts', mounts: diffReviewActionMountAdapters }, { source: 'diff-review-mount-adapters.ts', mounts: diffReviewMountAdapters }, @@ -114,6 +121,7 @@ export const MOUNTED_OPERATION_MODULES: readonly MountedOperationModule[] = [ mounts: hostWorktreeActionMountAdapters }, { source: 'hosted-review-mount-adapters.ts', mounts: hostedReviewMountAdapters }, + { 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 }, { source: 'new-workspace-mount-adapters.ts', mounts: newWorkspaceMountAdapters }, @@ -141,6 +149,10 @@ export const MOUNTED_OPERATION_MODULES: readonly MountedOperationModule[] = [ }, { source: 'session-screen-tab-mount-adapters.ts', mounts: sessionScreenTabMountAdapters }, { source: 'session-tab-mount-adapters.ts', mounts: sessionTabMountAdapters }, + { + source: 'session-terminal-gesture-mount-adapters.ts', + mounts: sessionTerminalGestureMountAdapters + }, { source: 'session-terminal-input-mount-adapters.ts', mounts: sessionTerminalInputMountAdapters diff --git a/mobile/src/test-support/rpc-recording/adapters/native-chat-paging-mount-adapters.ts b/mobile/src/test-support/rpc-recording/adapters/native-chat-paging-mount-adapters.ts new file mode 100644 index 00000000000..d110df49324 --- /dev/null +++ b/mobile/src/test-support/rpc-recording/adapters/native-chat-paging-mount-adapters.ts @@ -0,0 +1,66 @@ +import { hookScreenMount } from '../mounted-screen-tree' +import type { operationModuleLoader } from '../operation-module-loader' +import type { MountAdapter } from '../recording-scenario' + +const SOURCE_IDENTITY = 'host-1::repo-1::/work/feature' +const AGENT = 'claude' +const SESSION = 'session-1' +const TRANSCRIPT_PATH = '/work/feature/.claude/session-1.jsonl' + +/** + * Native chat's older-history page. + * + * The read is a callback, but only the mount effect's `nativeChat.subscribe` arms what it pages + * against: `hasMore` gates the call at all, and the snapshot's `beforeOffset` decides whether the + * request carries a cursor or asks for a growing tail. So the stream is the setup, not decoration — + * the frames a scenario delivers are what make a page request exist and what shape it takes. + * + * Message ids rather than bodies: paging is about which window is held, and a full transcript in + * every checkpoint would cost bytes without making a reordered or dropped page more visible. + */ +export function nativeChatPagingMountAdapters( + modules: ReturnType +): Record { + return { + 'session.native-chat-page': ({ client, effect }) => { + const useMobileNativeChatSession = modules.load< + typeof import('../../../session/use-mobile-native-chat-session') + >('mobile/src/session/use-mobile-native-chat-session.ts').useMobileNativeChatSession + let value: ReturnType | undefined + const screen = hookScreenMount(() => { + value = useMobileNativeChatSession({ + client, + sourceIdentity: SOURCE_IDENTITY, + agent: AGENT, + sessionId: SESSION, + transcriptPath: TRANSCRIPT_PATH + }) + }, effect) + return { + action(name) { + if (name === 'mount' || name === 'remount') { + return screen.mount() + } + if (name === 'load-earlier') { + value?.loadEarlier() + return screen.update() + } + if (name === 'unmount') { + return screen.unmount() + } + throw new Error(`Unknown native chat paging action: ${name}`) + }, + state: () => ({ + messageIds: value?.messages.map((message) => message.id) ?? null, + status: value?.status ?? null, + transcriptLoading: value?.transcriptLoading ?? null, + hasMore: value?.hasMore ?? null, + loadingEarlier: value?.loadingEarlier ?? null, + error: value?.error ?? null, + crash: screen.crash() + }), + dispose: screen.unmount + } + } + } +} diff --git a/mobile/src/test-support/rpc-recording/adapters/session-terminal-gesture-mount-adapters.ts b/mobile/src/test-support/rpc-recording/adapters/session-terminal-gesture-mount-adapters.ts new file mode 100644 index 00000000000..4463e9bf25c --- /dev/null +++ b/mobile/src/test-support/rpc-recording/adapters/session-terminal-gesture-mount-adapters.ts @@ -0,0 +1,114 @@ +import { hookScreenMount } from '../mounted-screen-tree' +import { mountFixture } from '../recorder-fixture-shape' +import type { operationModuleLoader } from '../operation-module-loader' +import type { MountAdapter } from '../recording-scenario' +import type { TerminalModes } from '../../../terminal/terminal-webview-contract' +import type { + Terminal, + TerminalGestureInputBucket, + TerminalGestureInputQueue +} from '../../../session/mobile-session-route-types' + +const HANDLE = 'terminal-1' +const DEVICE_TOKEN = 'device-token-1' +/** A two-finger scroll as the WebView bridge reports it: one SGR wheel sequence. */ +const WHEEL_REPORT = '[<64;10;5M' +/** Mouse reporting on, alt screen off: the gate a gesture byte has to pass to reach the wire. */ +const PTY_MODES: TerminalModes = { + bracketedPasteMode: false, + altScreen: false, + mouseTrackingMode: 'any', + sgrMouseMode: true, + sgrMousePixelsMode: false +} + +/** + * The two sends the session screen's gesture surface makes: the debounced flush of buffered wheel + * and arrow reports, and the clear-buffer the terminal menu issues. + * + * Neither rides a subscription. The flush reads refs — client, connection state, PTY modes, the + * gesture buckets, the active handle and tab type — and the clear optional-chains the webview, so a + * mount holding no terminal ref reaches both. The webview is absent rather than substituted: the + * local `clear()` on it is a device call this oracle has no observation of, and the send after it is + * what the recording is evidence of. + * + * State is the queue accounting the hook owns — what is buffered, what is in flight, and what the + * rate limiter has left — because that is the hook's own value; it returns callbacks and nothing + * else. What each reply decided lands in the other two lists: an accepted send is a takeover report + * in the sender list, and a refused clear is a toast in the effects. + */ +export function sessionTerminalGestureMountAdapters( + modules: ReturnType +): Record { + return { + 'session.terminal-gesture-input': ({ client, effect }) => { + const useTerminalInput = modules.load< + typeof import('../../../session/use-mobile-session-terminal-input') + >('mobile/src/session/use-mobile-session-terminal-input.ts').useMobileSessionTerminalInput + const takeover = modules.load< + typeof import('../../../terminal/worker-terminal-takeover-report') + >('mobile/src/terminal/worker-terminal-takeover-report.ts') + // The per-client report window is module state; a fresh recording must not inherit one. + takeover.resetWorkerTerminalTakeoverReportsForTest() + + const buckets = { current: new Map() } + const queues = { current: new Map() } + const inFlight = { current: new Set() } + let input: ReturnType | undefined + const screen = hookScreenMount(() => { + input = useTerminalInput( + mountFixture[0]>({ + client, + connState: 'connected', + activeHandle: HANDLE, + clientRef: { current: client }, + connStateRef: { current: 'connected' }, + deviceTokenRef: { current: DEVICE_TOKEN }, + activeHandleRef: { current: HANDLE }, + activeSessionTabTypeRef: { current: 'terminal' }, + ptyModesRef: { current: new Map([[HANDLE, PTY_MODES]]) }, + terminalGestureInputBucketsRef: buckets, + terminalGestureInputQueuesRef: queues, + terminalGestureInputInFlightRef: inFlight, + liveInputRef: { current: null }, + liveInputFocusTimerRef: { current: null }, + terminalUnsubsRef: { current: new Map() }, + hostQueryReplyInputSupportedRef: { current: false }, + clearPendingLiveInputCommit: () => {}, + toggleTerminalLiveInput: () => false, + getTerminalRef: () => undefined, + showToast: (message: string, durationMs?: number) => + effect('toast', { message, durationMs: durationMs ?? null }) + }) + ) + }, effect) + + return { + action(name, args) { + if (name === 'mount') { + return screen.mount() + } + if (name === 'gesture') { + return input!.handleTerminalInput(HANDLE, String(args.bytes ?? WHEEL_REPORT)) + } + if (name === 'clear') { + const target: Terminal = { handle: HANDLE, title: 'zsh', isActive: true } + return input!.handleClearTerminal(target) + } + throw new Error(`Unknown terminal gesture action: ${name}`) + }, + state: () => ({ + queuedSequences: queues.current.get(HANDLE)?.sequenceCount ?? null, + queuedBytes: queues.current.get(HANDLE)?.bytes ?? null, + inFlight: inFlight.current.has(HANDLE), + bucketTokens: buckets.current.get(HANDLE)?.tokens ?? null, + crash: screen.crash() + }), + dispose: () => { + takeover.resetWorkerTerminalTakeoverReportsForTest() + screen.unmount() + } + } + } + } +} diff --git a/mobile/src/test-support/rpc-recording/recording-runner.test.ts b/mobile/src/test-support/rpc-recording/recording-runner.test.ts index 7d8e88aec19..e64b54b7bd6 100644 --- a/mobile/src/test-support/rpc-recording/recording-runner.test.ts +++ b/mobile/src/test-support/rpc-recording/recording-runner.test.ts @@ -14,6 +14,7 @@ import { describe, expect, it } from 'vitest' import { captureArguments, captureError, captureValue } from './recording-values' import { RECORDER_DIRECTORY, recorderSha256 } from './recorder-digest' import { RECORDING_DRIVERS } from './recording-drivers' +import { RpcClientStreamRegistry } from '../../transport/rpc-client-stream-registry' import { ScriptedRpcTransport } from './scripted-rpc-transport' import { vitestRecordingScheduler } from './vitest-recording-scheduler' import { @@ -34,6 +35,7 @@ import { import { runRecording } from './run-recording' import { valueHash, type InternedObservation } from './golden-value-pool' import type { Observation, RecordingScenario } from './recording-scenario' +import type { RpcClient } from '../../transport/rpc-client' import type { RecordedValue } from './recording-values' describe('recording boundaries', () => { @@ -530,6 +532,83 @@ describe('recording boundaries', () => { } }) + it('separates a stream listener that dies from a registry that dies before it', async () => { + const listened: unknown[] = [] + const mount = (client: RpcClient) => { + const dispose = client.subscribe(CLIENT_EVENTS, null, (result) => { + listened.push(result) + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the assertion is the behaviour under test — a product listener asserts the frame shape and dies when a reply partition breaks it. + void (result as { type: string }).type + }) + return { action: () => {}, state: () => ({}), dispose } + } + const scenario = (reply: unknown): RecordingScenario => ({ + id: 'stream-crash', + operation: 'op', + version: 1, + family: 'op', + sites: [], + schedules: [], + steps: [{ frame: `${CLIENT_EVENTS}#1`, params: null, reply }, { checkpoint: 'delivered' }] + }) + const recording = await runRecording( + scenario({ ok: true, streaming: true, result: null }), + ({ client }) => mount(client), + vitestRecordingScheduler() + ) + expect(recording.checkpoints[0]!.observation.effects).toMatchObject([ + { name: 'stream-listener-crash', value: { frame: `${CLIENT_EVENTS}#1` } } + ]) + expect(listened).toEqual([null]) + + // A reply the registry cannot read at all: it throws reaching for `error.message` on its way to + // the listener, so nothing was delivered and there is no recording to keep. + listened.length = 0 + await expect( + runRecording( + scenario({ ok: false }), + ({ client }) => mount(client), + vitestRecordingScheduler() + ) + ).rejects.toThrow("Cannot read properties of undefined (reading 'message')") + expect(listened).toEqual([]) + }) + + it('aborts when the registry throws with nothing stashed, including a thrown undefined', async () => { + // `throw undefined` is the one registry failure that cannot be told from an empty stash by + // value alone, so the compare has to ask whether a listener crashed at all. + const handleResponse = RpcClientStreamRegistry.prototype.handleResponse + RpcClientStreamRegistry.prototype.handleResponse = () => { + throw undefined + } + try { + await expect( + runRecording( + { + id: 'registry-throws-undefined', + operation: 'op', + version: 1, + family: 'op', + sites: [], + schedules: [], + steps: [ + { frame: `${CLIENT_EVENTS}#1`, params: null, reply: { ok: true, streaming: true } }, + { checkpoint: 'delivered' } + ] + }, + ({ client }) => ({ + action: () => {}, + state: () => ({}), + dispose: client.subscribe(CLIENT_EVENTS, null, () => {}) + }), + vitestRecordingScheduler() + ) + ).rejects.toBeUndefined() + } finally { + RpcClientStreamRegistry.prototype.handleResponse = handleResponse + } + }) + it('files only a subscribe as an open stream, not the unsubscribe it publishes later', async () => { const clock = vitestRecordingScheduler() clock.start() diff --git a/mobile/src/test-support/rpc-recording/run-recording.ts b/mobile/src/test-support/rpc-recording/run-recording.ts index cfa5f0fcd0f..3111cdadec5 100644 --- a/mobile/src/test-support/rpc-recording/run-recording.ts +++ b/mobile/src/test-support/rpc-recording/run-recording.ts @@ -1,5 +1,6 @@ import { recordUnhandledRejections } from './unhandled-recording' import { + captureError, captureValue, observeSettlement, rejectedSettlement, @@ -68,7 +69,16 @@ export async function runRecording( transport.complete(step.complete, step.params, step.reply, step.reject) } } else if ('frame' in step) { - transport.frame(step.frame, step.params, step.reply) + const crash = transport.frame(step.frame, step.params, step.reply) + if (crash) { + // The listener died on this frame. Recorded rather than raised, the way a screen crash and + // a detached rejection are: what a malformed frame does to a subscription is an + // observation, and the transport still raises a scenario that stopped matching. + effect('stream-listener-crash', { + frame: step.frame, + error: captureError(crash.error) + }) + } } else if ('bind' in step) { if (!step.optional || transport.outstanding(step.request)) { transport.bind(step.bind, step.request, step.params) diff --git a/mobile/src/test-support/rpc-recording/scripted-rpc-transport.ts b/mobile/src/test-support/rpc-recording/scripted-rpc-transport.ts index 11fc7e44d01..2a4dbf6c0aa 100644 --- a/mobile/src/test-support/rpc-recording/scripted-rpc-transport.ts +++ b/mobile/src/test-support/rpc-recording/scripted-rpc-transport.ts @@ -12,6 +12,9 @@ import { } from './recording-values' import type { Rejection } from './recording-scenario' +/** What a product stream listener threw on one delivered frame. */ +type FrameListenerCrash = { readonly error: unknown } + /** The one device identity every recorded frame carries; nothing here reads a keychain. */ const DEVICE_TOKEN = 'recording-device' @@ -33,6 +36,7 @@ export class ScriptedRpcTransport { >() private activeName = '' private opening = false + private listenerCrash: FrameListenerCrash | null = null private frameCount = 0 private state: ConnectionState = 'connected' private listeners = new Set<(state: ConnectionState) => void>() @@ -124,7 +128,12 @@ export class ScriptedRpcTransport { subscribe: (method, params, onData, options) => { this.opening = true try { - return streams.subscribe(method, params, onData, options) + return streams.subscribe( + method, + params, + (result) => this.deliverToListener(onData, result), + options + ) } finally { this.opening = false } @@ -151,6 +160,27 @@ export class ScriptedRpcTransport { return `frame-${++this.frameCount}` } + /** + * The product's stream listener, wrapped so `frame` can tell a dead listener from a dead registry. + * The throw is stashed and rethrown unchanged: the registry has to see it the way a device's + * message handler does, so what it skips after a listener dies is recorded rather than invented. + */ + private deliverToListener(onData: (result: unknown) => void, result: unknown): void { + try { + onData(result) + } catch (error) { + this.listenerCrash = { error } + throw error + } + } + + /** Reads the stash through the declared type, which assigning it in `frame` would narrow away. */ + private takeListenerCrash(): FrameListenerCrash | null { + const crash = this.listenerCrash + this.listenerCrash = null + return crash + } + /** One occurrence counter per method, so a subscribe payload is named the way a request is. */ private occurrence(method: string): string { const next = (this.counts.get(method) ?? 0) + 1 @@ -168,8 +198,17 @@ export class ScriptedRpcTransport { /** * A whole host response delivered at a subscribe payload's wire id, through the real registry, so * `ready`, a data event, `end` and a refusal are one step kind rather than four. + * + * What the product listener threw is returned rather than thrown on, because the two failures a + * frame can produce have to stay apart. A missing payload, a params mismatch and a closed stream + * are the scenario no longer matching and stay loud. A listener that dies on a frame is the + * recording — the same rule the crash boundary holds for a screen, and without it the reply + * shapes that break a subscription are the only ones this oracle cannot see: only three + * listeners check the payload is an object before reading its `type` — the two + * `runtime.clientEvents` ones and the structured agent session's, which guards with + * `isSubscribeEvent` — so the absent-result and null-result partitions take every other one down. */ - frame(name: string, params: unknown, reply: unknown): void { + frame(name: string, params: unknown, reply: unknown): FrameListenerCrash | null { const stream = this.openStreams.get(name) if (!stream) { throw new Error(`Missing subscription payload: ${name}`) @@ -177,14 +216,31 @@ export class ScriptedRpcTransport { if (JSON.stringify(captureValue(stream.params)) !== JSON.stringify(captureValue(params))) { throw new Error(`Subscribe params mismatch: ${name}`) } - // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the scenario supplies the response as JSON; the wire id is the transport’s. - const routed = stream.deliver({ ...(reply as object), id: stream.id } as RpcResponse) + this.takeListenerCrash() + let routed = false + try { + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the scenario supplies the response as JSON; the wire id is the transport’s. + routed = stream.deliver({ ...(reply as object), id: stream.id } as RpcResponse) + } catch (error) { + // Only the product listener's own throw is a recording; anything the registry raised on its + // way to the listener is the scenario no longer matching, and stays loud. + const crashed = this.takeListenerCrash() + if (!crashed || crashed.error !== error) { + throw error + } + return crashed + } + const crash = this.takeListenerCrash() + if (crash) { + return crash + } if (!routed) { // Only a non-streaming reply lands here: the registry routes every streaming response to the // id that opened the stream, retired or not. A scenario that has stopped matching, not a // stream that closed early. throw new Error(`No open stream for frame: ${name}`) } + return null } /** Whether a scripted name names a request that was sent and is still waiting for its reply. */ diff --git a/mobile/src/transport/rpc-subscription-boundary.test.ts b/mobile/src/transport/rpc-subscription-boundary.test.ts new file mode 100644 index 00000000000..2bc9239c613 --- /dev/null +++ b/mobile/src/transport/rpc-subscription-boundary.test.ts @@ -0,0 +1,195 @@ +import { readFileSync, readdirSync } from 'node:fs' +import { fileURLToPath } from 'node:url' +import { extname, join, relative, resolve } from 'node:path' +import ts from 'typescript' +import { describe, expect, it } from 'vitest' +import { readScenarios } from '../test-support/rpc-recording/scenario-input' +import { RPC_SUBSCRIPTION_SITES, type RpcSubscriptionSite } from './rpc-subscription-inventory' + +/** + * Makes the subscription inventory bind. + * + * Four failures, all of which mean "edit the list": + * - a file opens a stream and is not listed, + * - a listed file no longer opens one (stale entry — how allow-lists rot), + * - a listed file opens a different method than its entry claims, + * - a `recorded` entry names a family the scenario manifest does not have. + * + * The last one is what separates this from prose. A comment saying a stream is covered stays true + * forever; an entry that has to resolve against `pilot-scenarios.json` stops being true the moment + * the family is renamed or deleted. + * + * What this does NOT catch, all accepted: + * - A method that is not a string literal at the call site. `client.subscribe(method, …)` with a + * variable is invisible here, the same gap the raw-port ratchet accepts for a computed + * `sendRequest`. Every product site today spells its method. + * - Whether a `recorded` family's golden actually drives that file. `sites` in the manifest says + * so and no check ties the two together; that is one indirection further than this list is for. + * - Whether a wall is still real. A wall is prose by construction — it says why a recording + * cannot exist, and the only proof of the opposite is the recording. + * - `transport/` and `test-support/`, which implement and script the port rather than consuming + * it. A registry that forwards `subscribe` is not a call site. + */ + +const mobileRoot = fileURLToPath(new URL('../..', import.meta.url)) +const repoRoot = resolve(mobileRoot, '..') +const scannedRoots = ['app', 'src'].map((directory) => join(mobileRoot, directory)) +const sourceExtensions = new Set(['.js', '.jsx', '.ts', '.tsx']) +/** The port's own implementation and the oracle that scripts it. Neither consumes a stream. */ +const EXCLUDED_DIRECTORIES = ['src/transport/', 'src/test-support/'] + +function sourceFiles(directory: string): string[] { + return readdirSync(directory, { withFileTypes: true }).flatMap((entry) => { + const path = join(directory, entry.name) + if (entry.isDirectory()) { + return entry.name === 'node_modules' ? [] : sourceFiles(path) + } + return [path] + }) +} + +function parse(path: string, source: string): ts.SourceFile { + const extension = extname(path) + return ts.createSourceFile( + path, + source, + ts.ScriptTarget.Latest, + true, + extension === '.tsx' || extension === '.jsx' ? ts.ScriptKind.TSX : ts.ScriptKind.TS + ) +} + +/** Every method this file opens a stream on, in source order. */ +export function subscribedMethods(path: string, source: string): string[] { + const methods: string[] = [] + const visit = (node: ts.Node): void => { + if ( + ts.isCallExpression(node) && + ts.isPropertyAccessExpression(node.expression) && + node.expression.name.text === 'subscribe' + ) { + const [method] = node.arguments + if (method && ts.isStringLiteral(method)) { + methods.push(method.text) + } + } + ts.forEachChild(node, visit) + } + visit(parse(path, source)) + return methods +} + +const scanned = scannedRoots + .flatMap(sourceFiles) + .filter((path) => sourceExtensions.has(extname(path))) + .filter((path) => !/\.test\.tsx?$/.test(path)) + .map((path) => relative(mobileRoot, path).split(/[/\\]/).join('/')) + .filter((file) => !EXCLUDED_DIRECTORIES.some((directory) => file.startsWith(directory))) + +const observed = new Map( + scanned + .map( + (file) => + [ + file, + subscribedMethods(join(mobileRoot, file), readFileSync(join(mobileRoot, file), 'utf8')) + ] as const + ) + .filter(([, methods]) => methods.length > 0) +) + +const families = new Set( + readScenarios(join(repoRoot, 'mobile', 'rpc-foundation', 'pilot-scenarios.json')).scenarios.map( + (scenario) => scenario.family + ) +) + +function listedMethods(file: string): string[] { + return RPC_SUBSCRIPTION_SITES.filter((site) => site.file === file).map((site) => site.method) +} + +describe('RPC subscription boundary', () => { + const probe = join(mobileRoot, 'src', 'session', 'probe.ts') + + it('reads the method off each subscribe and ignores everything else', () => { + expect( + subscribedMethods(probe, "client.subscribe('terminal.subscribe', params, onData)") + ).toEqual(['terminal.subscribe']) + expect( + subscribedMethods(probe, "entry.client.subscribe('accounts.subscribe', null, cb)") + ).toEqual(['accounts.subscribe']) + expect( + subscribedMethods(probe, "a.subscribe('one', p, cb); b.subscribe('two', p, cb)") + ).toEqual(['one', 'two']) + // A store listener, not a host stream: the first argument is not a method. + expect(subscribedMethods(probe, 'connectionLogStore.subscribe(selectedId, listener)')).toEqual( + [] + ) + expect(subscribedMethods(probe, 'args.subscribe(handle)')).toEqual([]) + expect(subscribedMethods(probe, "await client.sendRequest('worktree.ps', {})")).toEqual([]) + expect( + subscribedMethods(probe, '// calls client.subscribe("x", p, cb) under the hood') + ).toEqual([]) + }) + + it('scans a plausible number of files', () => { + // A broken root or filter would make every check below vacuously pass. + expect(scanned.length).toBeGreaterThan(400) + expect(observed.size).toBeGreaterThan(5) + }) + + it('lists each file and method once', () => { + const seen = RPC_SUBSCRIPTION_SITES.map((site) => `${site.file}\0${site.method}`) + expect(seen.filter((key, index) => seen.indexOf(key) !== index)).toEqual([]) + }) + + it('has no unlisted file opening a stream', () => { + const unlisted = [...observed.keys()].filter((file) => listedMethods(file).length === 0) + expect( + unlisted, + 'A new subscription must be classified in rpc-subscription-inventory.ts: recorded, an unwritten scenario, or walled with the wall named.' + ).toEqual([]) + }) + + it('has no stale inventory entry', () => { + const stale = RPC_SUBSCRIPTION_SITES.filter((site) => !observed.has(site.file)).map( + (site) => site.file + ) + expect( + stale, + 'File no longer opens a stream — delete its line from rpc-subscription-inventory.ts.' + ).toEqual([]) + }) + + it('classifies every method each listed file opens', () => { + const mismatched = [...observed] + .filter(([file]) => listedMethods(file).length > 0) + .flatMap(([file, methods]) => { + const listed = [...listedMethods(file)].sort() + const found = [...new Set(methods)].sort() + return JSON.stringify(listed) === JSON.stringify(found) + ? [] + : [`${file}: listed ${listed.join(', ')}, found ${found.join(', ')}`] + }) + expect(mismatched, 'The method an entry names is what the file opens.').toEqual([]) + }) + + it('resolves every recorded family against the scenario manifest', () => { + const missing = RPC_SUBSCRIPTION_SITES.flatMap((site: RpcSubscriptionSite) => + site.coverage.kind === 'recorded' && !families.has(site.coverage.family) + ? [`${site.file}: no family ${site.coverage.family}`] + : [] + ) + expect( + missing, + 'A recorded entry must name a family in pilot-scenarios.json, or the claim is prose.' + ).toEqual([]) + }) + + it('names the wall on every walled entry', () => { + const unnamed = RPC_SUBSCRIPTION_SITES.flatMap((site) => + site.coverage.kind === 'walled' && site.coverage.wall.trim().length < 40 ? [site.file] : [] + ) + expect(unnamed, 'A wall has to say what it is; "not supported" is not a wall.').toEqual([]) + }) +}) diff --git a/mobile/src/transport/rpc-subscription-inventory.ts b/mobile/src/transport/rpc-subscription-inventory.ts new file mode 100644 index 00000000000..c1320c8f5c9 --- /dev/null +++ b/mobile/src/transport/rpc-subscription-inventory.ts @@ -0,0 +1,102 @@ +/** + * Every product call site that opens a host stream, and what the recording oracle can see of it. + * + * The raw-request-port inventory next door counts down to zero; this one does not. A subscribe is + * not something a typed operation replaces — `RpcOperation` fixes a method, an acceptance policy + * and a reader for one reply, and a stream has many. What this list is for is the other half of + * the same question: which of these streams is a golden actually holding, and for the ones it is + * not, what exactly stops it. Left as prose in a README that answer went stale twice, because + * nothing failed when a new `client.subscribe` appeared. + * + * So each site is classified, and `rpc-subscription-boundary.test.ts` makes the classification + * bind: a new site with no entry fails, an entry whose file no longer subscribes fails, an entry + * naming the wrong method fails, and a `recorded` entry whose family is not in the scenario + * manifest fails. A wall must name itself; "not recorded yet" and "cannot be recorded" are + * different claims and only one of them is a backlog item. + */ +export type RpcSubscriptionCoverage = + /** A golden holds this stream. `family` is a family in `pilot-scenarios.json`. */ + | { readonly kind: 'recorded'; readonly family: string } + /** The recorder could mount this site; nobody has written the scenario. A backlog item. */ + | { readonly kind: 'unwritten-scenario' } + /** Something structural stops a recording. Not a backlog item until the wall moves. */ + | { readonly kind: 'walled'; readonly wall: string } + +export type RpcSubscriptionSite = { + readonly file: string + readonly method: string + readonly coverage: RpcSubscriptionCoverage +} + +export const RPC_SUBSCRIPTION_SITES: readonly RpcSubscriptionSite[] = [ + // The account snapshot, opened twice. The home screen wires one per connected host; the host + // screen opens its own. Both decode the same snapshot, and neither is the wall — the loader + // reaches `decodeAccountsSnapshot` and it throws its own domain error on a bad one. + { + file: 'app/h/[hostId]/accounts.tsx', + method: 'accounts.subscribe', + coverage: { + kind: 'walled', + wall: 'The screen renders `react-native.ScrollView` and calls `react-native.Alert` to report a failed switch, neither a substituted member, so the mount trap refuses on the first render: `Unsubstituted native member: react-native.ScrollView`.' + } + }, + { + file: 'src/home/use-mobile-home-host-connections.ts', + method: 'accounts.subscribe', + coverage: { + kind: 'walled', + wall: 'Wired on a per-host client from `useAllHostClients`, and the runner hands an adapter one client rather than the multi-host context that hook reads.' + } + }, + // The browser tab's screencast. Frames are pixels, not JSON. + { + file: 'src/browser/use-mobile-browser-stream.ts', + method: 'browser.screencast', + coverage: { + kind: 'walled', + wall: 'Writes to a webview terminal/browser ref this runner has no substitute for, and a substitute that shaped what the stream delivered would be inventing the device.' + } + }, + { + file: 'src/notifications/mobile-notifications.ts', + method: 'notifications.subscribe', + coverage: { kind: 'recorded', family: 'notifications.desktop-stream' } + }, + { + file: 'src/session/mobile-terminal-stream-subscribe.ts', + method: 'terminal.subscribe', + coverage: { + kind: 'walled', + wall: 'Writes to a webview terminal ref this runner has no substitute for: the stream consumer calls `ref.init` and `dataRef.write`, so what a frame does is a device effect rather than an observation.' + } + }, + { + file: 'src/session/use-live-worktree-name.ts', + method: 'runtime.clientEvents.subscribe', + coverage: { kind: 'recorded', family: 'live-worktree-name' } + }, + { + file: 'src/session/use-mobile-native-chat-session.ts', + method: 'nativeChat.subscribe', + coverage: { kind: 'recorded', family: 'session.native-chat-page' } + }, + // The structured agent session's event stream. Mountable: its listener guards the payload, and + // the hold that precedes it is a plain request. What is missing is the scenario. + { + file: 'src/session/use-mobile-structured-agent-state.ts', + method: 'agentSession.subscribe', + coverage: { kind: 'unwritten-scenario' } + }, + // The session tab snapshot. Mountable behind the reconciliation controller the hook already + // takes; no device surface is involved. + { + file: 'src/session/use-mobile-session-tabs-reconciliation.ts', + method: 'session.tabs.subscribe', + coverage: { kind: 'unwritten-scenario' } + }, + { + file: 'src/worktree/host-worktree-refresh.ts', + method: 'runtime.clientEvents.subscribe', + coverage: { kind: 'recorded', family: 'host-worktree-refresh' } + } +] diff --git a/mobile/src/transport/unvalidated-rpc-request-port-inventory.ts b/mobile/src/transport/unvalidated-rpc-request-port-inventory.ts index 90f62db5880..2f7db8804b0 100644 --- a/mobile/src/transport/unvalidated-rpc-request-port-inventory.ts +++ b/mobile/src/transport/unvalidated-rpc-request-port-inventory.ts @@ -92,46 +92,36 @@ export const UNVALIDATED_RPC_REQUEST_PORT_PENDING: readonly UnvalidatedRpcReques // pinning a device input. { file: 'src/host-screen/host-screen-overlays.tsx', references: 1 }, - // src/notifications/ — push registration and delivery. Registration and unregistration migrated - // in step 4; see mobile-push-registration-operations.ts. Tray reconciliation followed once a - // scenario could declare the notification tray and the stored host list it resolves against; - // see push-dismissal-operations.ts. - // Holdout: the unsubscribe is a closure inside a `subscribe` callback, and subscriptions are a - // later step; the request-only recording runner refuses to open one. - { file: 'src/notifications/mobile-notifications.ts', references: 1 }, + // src/notifications/ — push registration and delivery. Nothing is left here. Registration and + // unregistration migrated in step 4; see mobile-push-registration-operations.ts. Tray + // reconciliation followed once a scenario could declare the notification tray and the stored host + // list it resolves against; see push-dismissal-operations.ts. The stream unsubscribe inside the + // `notifications.subscribe` callback migrated in step 6 once the recorder could script the + // `ready` frame that hands it a subscription id; see desktop-notification-stream-operations.ts. // src/session/ — session screen: chat, diff review, PR actions, tabs. The github.* PR surface, // the diff-review loaders and the rest of the screen migrated in step 4; see // mobile-session-{read,write,launch}-operations.ts, mobile-clipboard-image-operations.ts and // mobile-diff-review-git-operations.ts. The terminal input surface followed: the composed send, - // the live keystroke send and the clipboard paste all send through terminal.input-send in - // terminal/mobile-terminal-operations.ts, and the accessory's connection lookup reads the repo - // list through the new-tab operation. Every holdout below opens or rides a subscription or takes its - // method as a parameter, except the gesture-input file, which this PR simply did not cover. + // the live keystroke send, the clipboard paste and — in step 6 — the gesture flush all send + // through terminal.input-send in terminal/mobile-terminal-operations.ts, the menu's clear goes + // through terminal.clear-buffer-or-skip beside it, and the accessory's connection lookup reads + // the repo list through the new-tab operation. Step 6 also took the two requests that share an + // effect with a subscribe: the header's live title (worktree.show-record-or-skip) and native + // chat's older-history page (nativeChat.read-session-page-or-skip), both in + // mobile-session-read-operations.ts. Every holdout below opens or rides a subscription the + // recorder has no substitute for, or takes its method as a parameter. // Holdout: the method is a parameter. `callAgentSession` takes a method string and a generic // result type, and five call sites across two hooks pass their own, plus one inside this module's // own mutation wrapper; an operation fixes the method at definition time, so migrating it is a // restructure of those callers rather than of this send. { file: 'src/session/mobile-structured-agent-session-rpc.ts', references: 1 }, - // Holdout: unrecorded site, record-first rule. `worktree.show` here sits inside the same focus - // effect as a `runtime.clientEvents` subscription, and the request-only recording runner refuses - // to open one, so no golden can hold this file's behaviour. - { file: 'src/session/use-live-worktree-name.ts', references: 1 }, - // Holdout: unrecorded site, record-first rule. The `nativeChat.readSession` read lives in the - // paging callback, not in an effect, but only the mount effect's `nativeChat.subscribe` arms the - // offset and generation it pages against — and the request-only runner refuses to open one. - { file: 'src/session/use-mobile-native-chat-session.ts', references: 1 }, // Holdout: unrecorded site, record-first rule. The startup effect drives 36 members of the // session model including the terminal subscription lifecycle, which is a later step. { file: 'src/session/use-mobile-session-startup.ts', references: 2 }, // Holdout: unrecorded site, record-first rule. The create path subscribes to the terminal it // makes, and the request-only runner refuses the subscription. { file: 'src/session/use-mobile-session-terminal-create-actions.ts', references: 2 }, - // Holdout: scope only, no recorder gap. The gesture flush reads refs (client, connection state, - // PTY modes, the gesture buckets, active handle and tab type), and the clear-buffer ref optional- - // chains the webview, so a mount with a null terminal ref records both sends. These 2 refs are - // migratable as they stand; they were out of this PR's bucket. - { file: 'src/session/use-mobile-session-terminal-input.ts', references: 2 }, // Holdout: unrecorded site, record-first rule. The display-mode write is gated on an open // terminal subscription, which is a later step. { file: 'src/session/use-mobile-session-terminal-stream-display.ts', references: 1 }, diff --git a/src/main/agent-hooks/first-work-branch-rename.test.ts b/src/main/agent-hooks/first-work-branch-rename.test.ts index 8ecd4997aa0..6332a4c23f6 100644 --- a/src/main/agent-hooks/first-work-branch-rename.test.ts +++ b/src/main/agent-hooks/first-work-branch-rename.test.ts @@ -118,7 +118,21 @@ describe('maybeAutoRenameBranchOnFirstWork', () => { }) const feed = new StructuredAgentSessionStatusFeed({ sessions: new Map([ - ['session', { journal, params: { location: { workspaceId }, provider: agent } }] + [ + 'session', + { + journal, + params: { + location: { + executionHostId: 'local', + wslDistro: null, + workspaceId, + workspaceKind: 'git-worktree' + }, + provider: agent + } + } + ] ]), getRecord: () => null, now: () => 1, @@ -193,7 +207,12 @@ describe('maybeAutoRenameBranchOnFirstWork', () => { ] }) } as unknown as AgentSessionJournal - const location = { workspaceId, workspaceKind: 'git-worktree' as const } + const location = { + executionHostId: 'local' as const, + wslDistro: null, + workspaceId, + workspaceKind: 'git-worktree' as const + } const pending: Promise[] = [] const feed = new StructuredAgentSessionStatusFeed({ sessions: new Map([['session', { journal, params: { location, provider: 'codex' } }]]), diff --git a/src/main/agent-hooks/installer-utils.test.ts b/src/main/agent-hooks/installer-utils.test.ts index e68e3cc3554..40966c0f725 100644 --- a/src/main/agent-hooks/installer-utils.test.ts +++ b/src/main/agent-hooks/installer-utils.test.ts @@ -707,10 +707,7 @@ describe('wrapWindowsHookCommand', () => { describe('wrapWindowsCmdHookCommand', () => { it('returns the bare, directly-spawnable path for a cmd-safe managed script', () => { - // Why: Codex/Antigravity/Devin launch the command as a program (argv[0]), - // not via cmd.exe, so the launcher must be a single spawnable token — a bare - // .cmd path. A cmd-builtin `if …` launcher has argv[0] = `if`, which is - // unspawnable and fails every hook with exit 1 (#8430 regression). + // Direct-spawn consumers need a launchable argv[0], not a cmd builtin such as `if`. const scriptPath = 'C:\\Users\\alice\\.orca\\agent-hooks\\codex-hook.cmd' const command = wrapWindowsCmdHookCommand(scriptPath) expect(command).toBe(scriptPath) @@ -721,12 +718,7 @@ describe('wrapWindowsCmdHookCommand', () => { it.skipIf(process.platform !== 'win32')( 'resolves the launcher to a real executable file, not a shell fragment', () => { - // Regression guard for #8430: Codex/Antigravity/Devin spawn the launcher as - // a program (argv[0]), so it must be an existing, launchable file. The broken - // `if exist … (call …)` form had argv[0] = `if` — a cmd builtin, not a file — - // which is unspawnable and failed every hook. The bare path is the file. - // win32-only: the real temp path is cmd-safe only with backslashes; a POSIX - // tmpDir has `/`, which routes to the encoded fallback by design. + // POSIX temp paths contain `/`, which selects the encoded fallback instead. const scriptPath = join(tmpDir, 'codex-hook.cmd') writeFileSync(scriptPath, '@echo off\r\nexit /b 0\r\n', 'utf-8') const command = wrapWindowsCmdHookCommand(scriptPath) diff --git a/src/main/agent-hooks/installer-utils.ts b/src/main/agent-hooks/installer-utils.ts index a53721d42fe..ac4abee9469 100644 --- a/src/main/agent-hooks/installer-utils.ts +++ b/src/main/agent-hooks/installer-utils.ts @@ -118,6 +118,16 @@ export { } from './windows-powershell-hook-launcher' export function wrapWindowsHookCommand( + scriptPath: string, + env: Record = {}, + options: { fallbackStdout?: string } = {} +): string { + return wrapWindowsPowerShellEncodedCommand( + buildWindowsHookPowerShellCommand(scriptPath, env, options) + ) +} + +export function buildWindowsHookPowerShellCommand( scriptPath: string, env: Record = {}, // Why: POSIX wrap already answers missing-script with stdout; Windows must match so gate events cannot drift (#15462). @@ -135,14 +145,13 @@ export function wrapWindowsHookCommand( // Why the order: answer first (a gate event reads silence as deny), then the shared // env guard, and only then own stdin — outside an Orca pane the caller may abandon the // pipe, and ReadToEnd would strand the launcher there forever (#11549). - const command = `${envPrefix}if (Test-Path -LiteralPath ${quoted} -PathType Leaf) { & ${quoted}; exit $LASTEXITCODE }; ${fallback}${WINDOWS_POWERSHELL_HOOK_ENVIRONMENT_GUARD}; [Console]::In.ReadToEnd() | Out-Null; exit 0` - return wrapWindowsPowerShellEncodedCommand(command) + return `${envPrefix}if (Test-Path -LiteralPath ${quoted} -PathType Leaf) { & ${quoted}; exit $LASTEXITCODE }; ${fallback}${WINDOWS_POWERSHELL_HOOK_ENVIRONMENT_GUARD}; [Console]::In.ReadToEnd() | Out-Null; exit 0` } export const WINDOWS_CMD_SAFE_PATH = /^[A-Za-z0-9_.:\\~-]+$/ export function wrapWindowsCmdHookCommand(scriptPath: string): string { - // Why: Codex/Antigravity/Devin spawn the hook as argv[0], not via cmd.exe, so it must be one spawnable token; a cmd `if exist` launcher isn't (#8430). + // Direct-spawn consumers need one executable token; a cmd `if exist` fragment is not one (#8430). return WINDOWS_CMD_SAFE_PATH.test(scriptPath) ? scriptPath : wrapWindowsHookCommand(scriptPath) } diff --git a/src/main/agent-hooks/managed-hook-command-contract.test.ts b/src/main/agent-hooks/managed-hook-command-contract.test.ts index 72b522e8ff5..a49b45b6df4 100644 --- a/src/main/agent-hooks/managed-hook-command-contract.test.ts +++ b/src/main/agent-hooks/managed-hook-command-contract.test.ts @@ -182,7 +182,12 @@ describe('managed hook command contract', () => { expect(commands.length).toBeGreaterThan(0) for (const command of commands) { expect(command.length).toBeGreaterThan(0) - expect(findBareHookCommandVariables(command), command).toEqual([]) + // Native Windows Codex evaluates PowerShell variables without Grok's dollar-byte scanner. + const scannedCommand = + agent === 'codex' && platform === 'win32' && command.startsWith('if (Test-Path') + ? command.replaceAll('$LASTEXITCODE', '').replaceAll('$env:', '') + : command + expect(findBareHookCommandVariables(scannedCommand), command).toEqual([]) } }) }) diff --git a/src/main/agent-hooks/server-ingest-structured-status.test.ts b/src/main/agent-hooks/server-ingest-structured-status.test.ts index 5b43cc10bce..55a130b5787 100644 --- a/src/main/agent-hooks/server-ingest-structured-status.test.ts +++ b/src/main/agent-hooks/server-ingest-structured-status.test.ts @@ -1,3 +1,4 @@ +import { makeStructuredAgentStatusSubject } from '../../shared/agent-status-subject' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { mkdtempSync, readFileSync, rmSync, writeFileSync, mkdirSync } from 'node:fs' import { tmpdir } from 'node:os' @@ -24,6 +25,15 @@ vi.mock('../telemetry/cohort-classifier', () => ({ })) const SESSION = 'a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d' +const SUBJECT = makeStructuredAgentStatusSubject( + { + executionHostId: 'local', + wslDistro: null, + workspaceId: 'repo-1::/workspace/app', + workspaceKind: 'git-worktree' + }, + SESSION +) const TAB = structuredAgentSessionTabId(SESSION) const STRUCTURED_PANE = structuredAgentSessionPaneKey(TAB, SESSION) const OBSERVED_AT = 1_757_030_400_000 @@ -59,7 +69,7 @@ afterEach(() => { describe('AgentHookServer ingestStructuredStatus', () => { it('stores the projection as a row under the pane key the renderer derives', () => { const server = new AgentHookServer() - server.ingestStructuredStatus(summary()) + server.ingestStructuredStatus(summary(), SUBJECT) expect(server.getStatusSnapshot()).toEqual([ expect.objectContaining({ @@ -86,22 +96,25 @@ describe('AgentHookServer ingestStructuredStatus', () => { // The same mapping the sidebar applies, so the two surfaces cannot disagree about one session. it('maps attention to blocked and idle to done', () => { const server = new AgentHookServer() - server.ingestStructuredStatus(summary({ status: 'attention' })) + server.ingestStructuredStatus(summary({ status: 'attention' }), SUBJECT) expect(server.getStatusSnapshot()[0]?.state).toBe('blocked') - server.ingestStructuredStatus(summary({ status: 'idle', updatedAt: OBSERVED_AT + 1 })) + server.ingestStructuredStatus(summary({ status: 'idle', updatedAt: OBSERVED_AT + 1 }), SUBJECT) expect(server.getStatusSnapshot()[0]?.state).toBe('done') }) it('marks a session whose provider child is gone as held, not owned', () => { const server = new AgentHookServer() - server.ingestStructuredStatus(summary({ hostExecutionOwned: undefined })) + server.ingestStructuredStatus(summary({ hostExecutionOwned: undefined }), SUBJECT) expect(server.getStatusSnapshot()[0]?.structuredHost).toBe('held') }) it('keeps the state start while later evidence of the same state arrives', () => { const server = new AgentHookServer() - server.ingestStructuredStatus(summary()) - server.ingestStructuredStatus(summary({ toolName: 'read', updatedAt: OBSERVED_AT + 5_000 })) + server.ingestStructuredStatus(summary(), SUBJECT) + server.ingestStructuredStatus( + summary({ toolName: 'read', updatedAt: OBSERVED_AT + 5_000 }), + SUBJECT + ) expect(server.getStatusSnapshot()[0]).toMatchObject({ toolName: 'read', @@ -113,18 +126,18 @@ describe('AgentHookServer ingestStructuredStatus', () => { // Null status means no turn has been persisted; the chat shows nothing, so neither does this. it('holds no row for a session without a persisted turn, and drops one that regresses to none', () => { const server = new AgentHookServer() - server.ingestStructuredStatus(summary({ status: null })) + server.ingestStructuredStatus(summary({ status: null }), SUBJECT) expect(server.getStatusSnapshot()).toEqual([]) - server.ingestStructuredStatus(summary()) - server.ingestStructuredStatus(summary({ status: null })) + server.ingestStructuredStatus(summary(), SUBJECT) + server.ingestStructuredStatus(summary({ status: null }), SUBJECT) expect(server.getStatusSnapshot()).toEqual([]) }) it('drops the row when the host stops holding the session', () => { const server = new AgentHookServer() - server.ingestStructuredStatus(summary()) - server.dropStructuredStatus(SESSION) + server.ingestStructuredStatus(summary(), SUBJECT) + server.dropStructuredStatus(SUBJECT) expect(server.getStatusSnapshot()).toEqual([]) }) @@ -136,13 +149,13 @@ describe('AgentHookServer ingestStructuredStatus', () => { const withProviderSession = summary({ providerSession: { key: 'session_id', id: 'codex-thread-1' } }) - server.ingestStructuredStatus(withProviderSession) + server.ingestStructuredStatus(withProviderSession, SUBJECT) expect(server.getStatusSnapshot()[0]?.providerSession).toEqual({ key: 'session_id', id: 'codex-thread-1' }) - server.dropStructuredStatus(SESSION) + server.dropStructuredStatus(SUBJECT) expect(server.getStatusSnapshot()).toEqual([]) }) @@ -157,8 +170,8 @@ describe('AgentHookServer ingestStructuredStatus', () => { server.setPaneStatusClearListener((clear) => cleared.push(clear)) server.subscribeStatusDrop((paneKey) => dropped.push(paneKey)) - server.ingestStructuredStatus(summary()) - server.dropStructuredStatus(SESSION) + server.ingestStructuredStatus(summary(), SUBJECT) + server.dropStructuredStatus(SUBJECT) expect(server.getStatusSnapshot()).toEqual([]) expect(cleared).toEqual([]) @@ -175,7 +188,7 @@ describe('AgentHookServer ingestStructuredStatus', () => { original() } - server.ingestStructuredStatus(summary()) + server.ingestStructuredStatus(summary(), SUBJECT) expect(persists).toHaveLength(0) server.ingestTerminalStatus({ @@ -193,7 +206,7 @@ describe('AgentHookServer ingestStructuredStatus', () => { connectionId: null, payload: { state: 'working', prompt: 'watch the build', agentType: 'claude' } }) - server.ingestStructuredStatus(summary()) + server.ingestStructuredStatus(summary(), SUBJECT) const byPane = new Map(server.getStatusSnapshot().map((row) => [row.paneKey, row])) expect(byPane.get(PANE)?.structuredHost).toBeUndefined() @@ -227,7 +240,7 @@ describe('structured rows and last-status.json', () => { connectionId: null, payload: { state: 'working', prompt: 'watch the build', agentType: 'claude' } }) - server.ingestStructuredStatus(summary()) + server.ingestStructuredStatus(summary(), SUBJECT) server.flushStatusPersistSync() } finally { server.stop() diff --git a/src/main/agent-hooks/server-structured-canonical-status.test.ts b/src/main/agent-hooks/server-structured-canonical-status.test.ts new file mode 100644 index 00000000000..2c5c9e31912 --- /dev/null +++ b/src/main/agent-hooks/server-structured-canonical-status.test.ts @@ -0,0 +1,221 @@ +import { afterEach, describe, expect, it, vi } from 'vitest' +import { + makeStructuredAgentStatusSubject, + type AgentStatusExecutionScope, + type AgentStatusStructuredSessionSubject +} from '../../shared/agent-status-subject' +import type { AgentSessionStatusSummary } from '../../shared/agent-session-wire' +import { makePaneKey } from '../../shared/stable-pane-id' +import { + structuredAgentSessionPaneKey, + structuredAgentSessionTabId +} from '../../shared/structured-agent-session-projection' +import { AgentHookServer } from './server' +import { GOOD_PANE, PANE } from './server.test-fixtures' + +vi.mock('../telemetry/client', () => ({ track: vi.fn() })) +vi.mock('../telemetry/cohort-classifier', () => ({ getCohortAtEmit: vi.fn(() => ({})) })) + +const SESSION = 'canonical-session-one' +const SCOPE: AgentStatusExecutionScope = { + executionHostId: 'local', + wslDistro: null, + workspaceId: 'workspace-one', + workspaceKind: 'git-worktree' +} +const SUBJECT = makeStructuredAgentStatusSubject(SCOPE, SESSION) +const PANE_KEY = structuredAgentSessionPaneKey(structuredAgentSessionTabId(SESSION), SESSION) + +function summary( + subject: AgentStatusStructuredSessionSubject = SUBJECT +): AgentSessionStatusSummary { + return { + sessionId: subject.sessionId, + workspaceId: subject.workspaceId, + agent: 'codex', + status: 'working', + hostExecutionOwned: true, + latestPrompt: 'trusted journal', + updatedAt: 100 + } +} + +function terminal(server: AgentHookServer, paneKey: string): void { + server.ingestTerminalStatus({ + paneKey, + worktreeId: SCOPE.workspaceId, + connectionId: null, + payload: { state: 'working', prompt: 'legacy PTY', agentType: 'claude' } + }) +} + +afterEach(() => vi.restoreAllMocks()) + +describe('structured canonical production slice', () => { + it('stores once canonically and supplies every legacy reader from that row', () => { + const server = new AgentHookServer() + const changed = vi.fn() + const enriched = vi.fn() + server.subscribeStatusChanges(changed) + server.subscribeEnrichedStatus(enriched) + server.ingestStructuredStatus(summary(), SUBJECT) + expect(server._getStateForTests().lastStatusByPaneKey.size).toBe(0) + expect(server.getCanonicalStatusSnapshot().parents).toEqual([ + expect.objectContaining({ + subject: SUBJECT, + status: expect.objectContaining({ paneKey: PANE_KEY }) + }) + ]) + expect(server.getStatusSnapshotForPane(PANE_KEY)).toEqual(server.getStatusSnapshot()) + expect(changed).toHaveBeenCalledExactlyOnceWith([ + expect.objectContaining({ + paneKey: PANE_KEY, + state: 'working', + observedInCurrentRuntime: true + }) + ]) + expect(enriched).toHaveBeenCalledOnce() + const replay = vi.fn() + server.setListener(replay) + expect(replay).toHaveBeenCalledExactlyOnceWith( + expect.objectContaining({ paneKey: PANE_KEY, isReplay: true }) + ) + }) + + it('keeps mixed legacy enumeration in original insertion order through updates and re-admission', () => { + vi.spyOn(Date, 'now').mockReturnValue(200) + const server = new AgentHookServer() + const second = makeStructuredAgentStatusSubject(SCOPE, 'canonical-session-two') + const secondPane = structuredAgentSessionPaneKey( + structuredAgentSessionTabId(second.sessionId), + second.sessionId + ) + const baseline = new Map() + terminal(server, PANE) + baseline.set(PANE, 'legacy PTY') + server.ingestStructuredStatus(summary(), SUBJECT) + baseline.set(PANE_KEY, 'trusted journal') + terminal(server, GOOD_PANE) + baseline.set(GOOD_PANE, 'legacy PTY') + server.ingestStructuredStatus(summary(second), second) + baseline.set(secondPane, 'trusted journal') + terminal(server, PANE) + server.ingestStructuredStatus({ ...summary(), latestPrompt: 'updated' }, SUBJECT) + baseline.set(PANE_KEY, 'updated') + const listing = () => server.getStatusSnapshot().map((row) => [row.paneKey, row.prompt]) + expect(listing()).toEqual([...baseline]) + expect(server.getStatusChangeSnapshot().map((row) => row.paneKey)).toEqual([...baseline.keys()]) + const replay: string[] = [] + server.setListener((entry) => replay.push(entry.paneKey)) + expect(replay).toEqual([...baseline.keys()]) + server.dropStructuredStatus(SUBJECT) + baseline.delete(PANE_KEY) + server.ingestStructuredStatus(summary(), SUBJECT) + baseline.set(PANE_KEY, 'trusted journal') + expect(listing()).toEqual([...baseline]) + const relocated = makePaneKey('relocated-tab', '88888888-8888-4888-8888-888888888888') + server.transferPaneAuthority(PANE, relocated, undefined, 200, { authorityVerified: true }) + baseline.delete(PANE) + baseline.set(relocated, 'legacy PTY') + expect(listing()).toEqual([...baseline]) + expect(server._getStateForTests().lastStatusByPaneKey.size).toBe(2) + expect(server.getCanonicalStatusSnapshot().parents).toHaveLength(2) + }) + + it('isolates identical session identifiers across host, WSL and workspace kind scopes', () => { + const server = new AgentHookServer() + const scopes: AgentStatusExecutionScope[] = [ + SCOPE, + { ...SCOPE, wslDistro: 'Ubuntu' }, + { ...SCOPE, wslDistro: 'Debian' }, + { ...SCOPE, executionHostId: 'ssh:first' }, + { ...SCOPE, executionHostId: 'ssh:second' }, + { ...SCOPE, executionHostId: 'runtime:paired' }, + { ...SCOPE, workspaceKind: 'folder' } + ] + const subjects = scopes.map((scope) => makeStructuredAgentStatusSubject(scope, SESSION)) + for (const subject of subjects) { + server.ingestStructuredStatus(summary(subject), subject) + } + expect(server.getCanonicalStatusSnapshot().parents.map((row) => row.subject)).toEqual(subjects) + server.dropStructuredStatus(SUBJECT) + expect(server.getCanonicalStatusSnapshot().parents.map((row) => row.subject)).toEqual( + subjects.slice(1) + ) + expect(server._getStateForTests().lastStatusByPaneKey.size).toBe(0) + }) + + it('rejects missing or mismatched structured scope without fabricating a parent', () => { + const server = new AgentHookServer() + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: models a caller at an untyped boundary (e.g. IPC) invoking with fewer arguments than the method declares; no typed call expresses a missing required parameter. + const ingestMissingSubject = server.ingestStructuredStatus.bind(server) as unknown as ( + summary: AgentSessionStatusSummary + ) => void + expect(() => ingestMissingSubject(summary())).toThrow('trusted owner subject') + expect(() => + server.ingestStructuredStatus({ ...summary(), workspaceId: 'other' }, SUBJECT) + ).toThrow('trusted owner subject') + expect(server.getCanonicalStatusSnapshot().parents).toEqual([]) + expect(server.getStatusSnapshot()).toEqual([]) + }) + + it('refuses late PTY and relay evidence at a canonically owned address without fanout', () => { + const server = new AgentHookServer() + server.ingestStructuredStatus(summary(), SUBJECT) + const before = server.getCanonicalStatusSnapshot() + const changed = vi.fn() + const enriched = vi.fn() + server.subscribeStatusChanges(changed) + server.subscribeEnrichedStatus(enriched) + terminal(server, PANE_KEY) + server.ingestRemote( + { paneKey: PANE_KEY, payload: { state: 'done', prompt: 'late', agentType: 'claude' } }, + 'ssh-route' + ) + expect(server.getCanonicalStatusSnapshot()).toEqual(before) + expect(server._getStateForTests().lastStatusByPaneKey.size).toBe(0) + expect(server.getStatusSnapshot()).toHaveLength(1) + expect(changed).not.toHaveBeenCalled() + expect(enriched).not.toHaveBeenCalled() + }) + + it('refuses a canonical address already occupied by unbound legacy evidence', () => { + const server = new AgentHookServer() + terminal(server, PANE_KEY) + expect(() => server.ingestStructuredStatus(summary(), SUBJECT)).toThrow( + 'conflicts with legacy evidence' + ) + expect(server.getCanonicalStatusSnapshot().parents).toEqual([]) + expect(server.getStatusSnapshot()).toEqual([ + expect.objectContaining({ paneKey: PANE_KEY, prompt: 'legacy PTY' }) + ]) + }) + + it('keeps incomplete remote evidence exclusively legacy and pane cleanup cannot remove a canonical row', () => { + const server = new AgentHookServer() + server.ingestRemote( + { paneKey: PANE, payload: { state: 'working', prompt: 'remote', agentType: 'claude' } }, + 'ssh-route' + ) + expect(server.getCanonicalStatusSnapshot().parents).toEqual([]) + expect(server.getStatusSnapshot()[0]).toMatchObject({ + connectionId: 'ssh-route', + paneKey: PANE + }) + server.ingestStructuredStatus(summary(), SUBJECT) + server.dropStatusEntry(PANE_KEY) + server.retirePaneAuthority(PANE_KEY) + expect(server.getCanonicalStatusSnapshot().parents).toHaveLength(1) + expect(server.getStatusSnapshotForPane(PANE_KEY)).toHaveLength(1) + }) + + it('clears canonical state and renews the owner epoch when the server stops', () => { + const server = new AgentHookServer() + server.ingestStructuredStatus(summary(), SUBJECT) + const epoch = server.getCanonicalStatusSnapshot().epoch + server.stop() + expect(server.getCanonicalStatusSnapshot().parents).toEqual([]) + expect(server.getCanonicalStatusSnapshot().epoch).not.toBe(epoch) + expect(server.getStatusSnapshot()).toEqual([]) + }) +}) diff --git a/src/main/agent-hooks/server.ts b/src/main/agent-hooks/server.ts index 3fb3f51f5f1..b2aedfc2dfc 100644 --- a/src/main/agent-hooks/server.ts +++ b/src/main/agent-hooks/server.ts @@ -42,6 +42,7 @@ export const _internals = { parseFormEncodedBody, resetCachesForTests: (): void => { clearAllListenerCaches(agentHookServer._getStateForTests()) + agentHookServer._resetCanonicalStatusForTests() agentHookServer._resetRowOwnershipForTests() agentHookServer._resetPromptSentDedupeForTests() agentHookServer._resetConnectionTimestampWatermarksForTests() diff --git a/src/main/agent-hooks/server/server-ingest-structured.ts b/src/main/agent-hooks/server/server-ingest-structured.ts index 45b0e5c0015..19d42913a78 100644 --- a/src/main/agent-hooks/server/server-ingest-structured.ts +++ b/src/main/agent-hooks/server/server-ingest-structured.ts @@ -1,30 +1,55 @@ import type { AgentSessionStatusSummary } from '../../../shared/agent-session-wire' -import type { ParsedAgentStatusPayload } from '../../../shared/agent-status-types' +import type { AgentStatusIpcPayload } from '../../../shared/agent-status-types' +import { + parseAgentStatusSubject, + serializeAgentStatusSubject, + type AgentStatusStructuredSessionSubject +} from '../../../shared/agent-status-subject' import { structuredAgentSessionPaneKey, structuredAgentSessionStatusState, structuredAgentSessionTabId } from '../../../shared/structured-agent-session-projection' +import { structuredStatusLegacyEvent } from './server-structured-status-row' import { AgentHookServerIngestTerminal } from './server-ingest-terminal' -/** - * Structured (native chat) sessions have no PTY and no hook script, so nothing else reaches this - * store for them. The host projects each session's journal into a summary; this is where that - * summary becomes the same row every other agent has, keyed by the pane key the renderer derives. - */ export abstract class AgentHookServerIngestStructured extends AgentHookServerIngestTerminal { - ingestStructuredStatus(summary: AgentSessionStatusSummary): void { - const paneKey = structuredStatusPaneKey(summary.sessionId) - // No persisted turn yet: the chat shows nothing, so neither does any status reader. + ingestStructuredStatus( + summary: AgentSessionStatusSummary, + subject: AgentStatusStructuredSessionSubject + ): void { + const parsed = parseAgentStatusSubject(subject) + if ( + !parsed || + parsed.kind !== 'structured-session' || + parsed.sessionId !== summary.sessionId || + parsed.workspaceId !== summary.workspaceId || + !Number.isFinite(summary.updatedAt) || + summary.updatedAt < 0 + ) { + throw new Error('Structured status does not match its trusted owner subject') + } if (!summary.status) { - this.dropStructuredStatus(summary.sessionId) + this.dropStructuredStatus(parsed) return } - if (this.getAgentStatusDisposition(paneKey) !== 'accept') { - return + const previous = this.canonicalStatusStore.getParent(parsed) + const priorStatus = previous?.status + const state = structuredAgentSessionStatusState(summary.status) + const tabId = structuredAgentSessionTabId(parsed.sessionId) + const paneKey = structuredAgentSessionPaneKey(tabId, parsed.sessionId) + if (this.state.lastStatusByPaneKey.has(paneKey)) { + throw new Error('Structured status address conflicts with legacy evidence') } - const payload: ParsedAgentStatusPayload = { - state: structuredAgentSessionStatusState(summary.status), + const snapshot = this.canonicalStatusStore.getSnapshot() + const status: AgentStatusIpcPayload = { + paneKey, + tabId, + worktreeId: parsed.workspaceId, + connectionId: null, + structuredHost: summary.hostExecutionOwned ? 'owned' : 'held', + ...(summary.providerSession ? { providerSession: summary.providerSession } : {}), + state, prompt: summary.latestPrompt, agentType: summary.agent, ...(summary.model ? { model: summary.model } : {}), @@ -32,35 +57,71 @@ export abstract class AgentHookServerIngestStructured extends AgentHookServerIng ...(summary.toolInput ? { toolInput: summary.toolInput } : {}), ...(summary.lastAssistantMessage ? { lastAssistantMessage: summary.lastAssistantMessage } - : {}) + : {}), + receivedAt: Math.max(Date.now(), priorStatus?.receivedAt ?? 0), + evidenceObservedAt: summary.updatedAt, + stateStartedAt: priorStatus?.state === state ? priorStatus.stateStartedAt : summary.updatedAt, + observation: { + origin: 'structured', + kind: 'transition', + authorityId: snapshot.epoch, + incarnation: 0, + revision: snapshot.revision + 1, + observedAt: summary.updatedAt + } } - // The journal clock stamps the evidence so a restart's republish does not read as fresh work. - this.applyNormalizedStatus( - { - paneKey, - tabId: structuredAgentSessionTabId(summary.sessionId), - worktreeId: summary.workspaceId, - connectionId: null, - structuredHost: summary.hostExecutionOwned ? 'owned' : 'held', - ...(summary.providerSession ? { providerSession: summary.providerSession } : {}), - payload - }, - undefined, - 'structured', - summary.updatedAt - ) + const publication = this.canonicalStatusStore.applyMutation({ + parent: { subject: parsed, status, firstObservedAt: previous?.firstObservedAt ?? Date.now() } + }) + if (!publication) { + return + } + const key = serializeAgentStatusSubject(parsed) + const subjects = + this.canonicalSubjectsByPane.get(paneKey) ?? + new Map() + subjects.set(key, parsed) + this.canonicalSubjectsByPane.set(paneKey, subjects) + if (!this.canonicalListingOrder.has(key)) { + this.canonicalListingOrder.set(key, this.nextStatusListingOrder()) + } + const committed = this.canonicalStatusStore.getParent(parsed)?.status + if (!committed) { + throw new Error('Committed structured status is missing') + } + const after = structuredStatusLegacyEvent(committed) + this.commitStatusRowMutation(priorStatus && structuredStatusLegacyEvent(priorStatus), after) + this.notifyStatusChangeListeners() + this.emitEnrichedStatus(after) } - /** The host no longer holds the session; its last projection is history the journal keeps. - * `dropStatusEntry`, not `clearPaneState`: the renderer's own bridge still owns this pane key, - * so a pane-status-clear would make main a second writer for it. */ - dropStructuredStatus(sessionId: string): void { - this.dropStatusEntry(structuredStatusPaneKey(sessionId), { preserveResumeIdentity: false }) + /** Pane cleanup never resolves a canonical subject; only its owning feed can forget this row. */ + dropStructuredStatus(subject: AgentStatusStructuredSessionSubject): void { + const parsed = parseAgentStatusSubject(subject) + if (!parsed || parsed.kind !== 'structured-session') { + throw new Error('Structured status removal requires its exact owner subject') + } + const previous = this.canonicalStatusStore.getParent(parsed) + if (!previous) { + return + } + const publication = this.canonicalStatusStore.applyMutation({ + removeParent: parsed + }) + if (!publication) { + return + } + const key = serializeAgentStatusSubject(parsed) + this.canonicalListingOrder.delete(key) + if (previous.status) { + const subjects = this.canonicalSubjectsByPane.get(previous.status.paneKey) + subjects?.delete(key) + if (subjects?.size === 0) { + this.canonicalSubjectsByPane.delete(previous.status.paneKey) + } + this.commitStatusRowMutation(structuredStatusLegacyEvent(previous.status), undefined) + this.notifyStatusChangeListeners() + this.emitStatusDropped(previous.status.paneKey) + } } } - -// The DERIVED pane key the renderer publishes, never the orchestration bearer handle or the minted -// worker pane key: both of those are credentials. -function structuredStatusPaneKey(sessionId: string): string { - return structuredAgentSessionPaneKey(structuredAgentSessionTabId(sessionId), sessionId) -} diff --git a/src/main/agent-hooks/server/server-lifecycle.ts b/src/main/agent-hooks/server/server-lifecycle.ts index e7f68829f3b..9964331a086 100644 --- a/src/main/agent-hooks/server/server-lifecycle.ts +++ b/src/main/agent-hooks/server/server-lifecycle.ts @@ -116,8 +116,10 @@ export abstract class AgentHookServerLifecycle extends AgentHookServerRuntimeEnv } this.recordCurrentAuthorityObservation(event) const enriched = this.applyNormalizedStatus(event, normalized.onAccepted) - this.scheduleAssistantMessageRetry(source, aliasedBody, enriched) - this.scheduleCodexSubagentPoll(source, aliasedBody, enriched) + if (enriched) { + this.scheduleAssistantMessageRetry(source, aliasedBody, enriched) + this.scheduleCodexSubagentPoll(source, aliasedBody, enriched) + } } res.writeHead(204) res.end() @@ -212,6 +214,7 @@ export abstract class AgentHookServerLifecycle extends AgentHookServerRuntimeEnv this.ownerStateInitialized = false // Why: don't unlink the endpoint file — a stale file matches fail-open and avoids a TOCTOU race with a concurrent Orca. clearAllListenerCaches(this.state) + this.resetCanonicalStatus() this.notifyStatusChangeListeners() this.paneStatusClearListeners.clear() this.statusDropListeners.clear() diff --git a/src/main/agent-hooks/server/server-listeners.ts b/src/main/agent-hooks/server/server-listeners.ts index 44e2c940753..1a1fe52e41f 100644 --- a/src/main/agent-hooks/server/server-listeners.ts +++ b/src/main/agent-hooks/server/server-listeners.ts @@ -4,7 +4,10 @@ import type { } from '../../../shared/agent-status-types' import type { ClaudeStatusLineRateLimits } from '../../../shared/claude-statusline-rate-limits' import type { HookTransportInterferenceReport } from '../../../shared/agent-hook-transport-interference' -import type { HookListenerState } from '../../../shared/agent-hook-listener/listener-state' +import { + getLegacyStatusListingOrder, + type HookListenerState +} from '../../../shared/agent-hook-listener/listener-state' import type { AgentHookAuthorityEvidence, AgentHookProviderSessionIdentity, @@ -15,8 +18,54 @@ import type { } from './server-types' import { toAgentStatusIpcPayload } from './server-status-identity' import { AgentHookServerState } from './server-state' +import { serializeAgentStatusSubject } from '../../../shared/agent-status-subject' +import { structuredStatusLegacyEvent } from './server-structured-status-row' + +// Why: the listing counter starts at 1, so an unassigned row must sort last — never above every ordered row. +const UNORDERED_STATUS_ROW = Number.MAX_SAFE_INTEGER export abstract class AgentHookServerListeners extends AgentHookServerState { + protected emitEnrichedStatus(enriched: EnrichedAgentHookEventPayload): void { + this.onAgentStatus?.(enriched) + for (const listener of this.enrichedStatusListeners) { + try { + listener(enriched) + } catch (err) { + console.error('[agent-hooks] enriched status listener threw', err) + } + } + } + + getCanonicalStatusSnapshot() { + return this.canonicalStatusStore.getSnapshot() + } + + _resetCanonicalStatusForTests(): void { + this.resetCanonicalStatus() + } + + private combinedStatusEntries(): EnrichedAgentHookEventPayload[] { + const rows: { entry: EnrichedAgentHookEventPayload; order: number }[] = [] + for (const [paneKey, entry] of this.state.lastStatusByPaneKey) { + rows.push({ + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Main admits enriched legacy rows; shared listeners expose only the base event type. + entry: entry as EnrichedAgentHookEventPayload, + order: getLegacyStatusListingOrder(this.state, paneKey) ?? UNORDERED_STATUS_ROW + }) + } + for (const parent of this.canonicalStatusStore.getSnapshot().parents) { + if (!parent.status) { + continue + } + rows.push({ + entry: structuredStatusLegacyEvent(parent.status), + order: + this.canonicalListingOrder.get(serializeAgentStatusSubject(parent.subject)) ?? + UNORDERED_STATUS_ROW + }) + } + return rows.sort((a, b) => a.order - b.order).map(({ entry }) => entry) + } /** * Notified once per process when repeated hook POSTs are cut off mid-body (#11217). * Why: the listener fails open on every request error, so without this the only symptom is @@ -34,10 +83,9 @@ export abstract class AgentHookServerListeners extends AgentHookServerState { return } // Why: replay is best-effort per pane so one throwing listener can't starve the rest. - for (const payload of this.state.lastStatusByPaneKey.values()) { + for (const payload of this.combinedStatusEntries()) { try { - // Why: cache always holds enriched payloads; the map's declared type is the bare shape only because the shared module never reads it. - listener({ ...(payload as EnrichedAgentHookEventPayload), isReplay: true }) + listener({ ...payload, isReplay: true }) } catch (err) { console.error('[agent-hooks] replay listener threw', err) } @@ -153,9 +201,7 @@ export abstract class AgentHookServerListeners extends AgentHookServerState { /** Snapshot of cached statuses in IPC shape. Used by `agentStatus:getSnapshot` after tabs hydrate so the * dashboard catches up on hook events that fired during startup. */ getStatusSnapshot(): AgentStatusIpcPayload[] { - return Array.from(this.state.lastStatusByPaneKey.values(), (entry) => - toAgentStatusIpcPayload(entry as EnrichedAgentHookEventPayload) - ) + return this.combinedStatusEntries().map(toAgentStatusIpcPayload) } /** Provider-session identities, including Pi's metadata-only rows. */ @@ -164,8 +210,19 @@ export abstract class AgentHookServerListeners extends AgentHookServerState { } getStatusSnapshotForPane(paneKey: string): AgentStatusIpcPayload[] { - const entry = this.state.lastStatusByPaneKey.get(paneKey) - return entry ? [toAgentStatusIpcPayload(entry as EnrichedAgentHookEventPayload)] : [] + const legacy = this.state.lastStatusByPaneKey.get(paneKey) + if (legacy) { + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Main admits enriched legacy rows; the shared view declares their base event type. + return [toAgentStatusIpcPayload(legacy as EnrichedAgentHookEventPayload)] + } + const rows: AgentStatusIpcPayload[] = [] + for (const subject of this.canonicalSubjectsByPane.get(paneKey)?.values() ?? []) { + const status = this.canonicalStatusStore.getParent(subject)?.status + if (status) { + rows.push(status) + } + } + return rows } getHydratedAuthorityCommitments(): readonly AgentHookAuthorityEvidence[] { @@ -184,8 +241,8 @@ export abstract class AgentHookServerListeners extends AgentHookServerState { } { const statuses: AgentHookStatusChangeEntry[] = [] const providerSessions: AgentHookProviderSessionIdentity[] = [] - for (const [paneKey, entry] of this.state.lastStatusByPaneKey) { - const enriched = entry as EnrichedAgentHookEventPayload + for (const enriched of this.combinedStatusEntries()) { + const paneKey = enriched.paneKey if (enriched.providerSession) { providerSessions.push({ paneKey, @@ -201,7 +258,8 @@ export abstract class AgentHookServerListeners extends AgentHookServerState { paneKey, state: enriched.payload.state, receivedAt: enriched.receivedAt, - observedInCurrentRuntime: this.runtimeObservedStatusPaneKeys.has(paneKey) + observedInCurrentRuntime: + Boolean(enriched.structuredHost) || this.runtimeObservedStatusPaneKeys.has(paneKey) }) } } diff --git a/src/main/agent-hooks/server/server-state.ts b/src/main/agent-hooks/server/server-state.ts index 0df8ff70445..3302b89e1f4 100644 --- a/src/main/agent-hooks/server/server-state.ts +++ b/src/main/agent-hooks/server/server-state.ts @@ -1,8 +1,9 @@ import type { createServer } from 'node:http' -import { randomBytes } from 'node:crypto' +import { randomBytes, randomUUID } from 'node:crypto' import { createHookListenerState, + canAdmitLegacyAgentStatusEntry, type HookListenerState } from '../../../shared/agent-hook-listener/listener-state' import { @@ -21,6 +22,9 @@ import type { AgentHookSource } from '../../../shared/agent-hook-relay' import type { AgentStatusClearIpcPayload } from '../../../shared/agent-status-types' import type { LegacyPaneKeyAliasEntry } from '../../../shared/persisted-state-types' import type { SpoolRecord } from '../../../shared/agent-hook-spool' +import { createAgentStatusStore, type AgentStatusStore } from '../../../shared/agent-status-store' +import { AGENT_STATUS_2A_CURRENT_PRODUCER_MODE } from '../../../shared/agent-status-legacy-adapter' +import type { AgentStatusStructuredSessionSubject } from '../../../shared/agent-status-subject' import type { AgentHookAuthorityEvidence, AgentHookProviderSessionIdentity, @@ -45,6 +49,38 @@ import type { /** Shared mutable state for the layered hook-server implementation. */ export abstract class AgentHookServerState { + protected canWriteLegacyStatusRow(entry: AgentHookEventPayload): boolean { + return canAdmitLegacyAgentStatusEntry( + this.state, + 'main-status-update', + entry, + AGENT_STATUS_2A_CURRENT_PRODUCER_MODE + ) + } + + // Why: the epoch is minted on first canonical use, so constructing the server — which happens at + // import time for the module singleton — owes nothing to a live crypto implementation. + private canonicalStatusStoreInstance: AgentStatusStore | null = null + protected get canonicalStatusStore(): AgentStatusStore { + this.canonicalStatusStoreInstance ??= createAgentStatusStore({ + epoch: randomUUID(), + mode: 'authority' + }) + return this.canonicalStatusStoreInstance + } + protected readonly canonicalListingOrder = new Map() + protected readonly canonicalSubjectsByPane = new Map< + string, + Map + >() + private statusListingOrder = 0 + protected nextStatusListingOrder = (): number => ++this.statusListingOrder + + protected resetCanonicalStatus(): void { + this.canonicalStatusStoreInstance = null + this.canonicalListingOrder.clear() + this.canonicalSubjectsByPane.clear() + } protected server: ReturnType | null = null protected port = 0 protected token = '' @@ -73,7 +109,10 @@ export abstract class AgentHookServerState { protected endpointFilePathCache: string | null = null protected endpointFileWritten = false // Why: per-instance (not module-level) so tests can spin up multiple servers without state cross-contamination. - protected state: HookListenerState = createHookListenerState() + protected state: HookListenerState = createHookListenerState({ + nextListingOrder: this.nextStatusListingOrder, + isCanonicalPaneKey: (paneKey) => this.canonicalSubjectsByPane.has(paneKey) + }) protected onTransportInterference: ((report: HookTransportInterferenceReport) => void) | null = null protected transportInterference = createHookTransportInterferenceTracker( @@ -169,7 +208,7 @@ export abstract class AgentHookServerState { origin?: AgentStatusObservationOrigin, observedAt?: number, mutationBefore?: EnrichedAgentHookEventPayload - ): EnrichedAgentHookEventPayload + ): EnrichedAgentHookEventPayload | undefined protected abstract emitEnrichedStatus(enriched: EnrichedAgentHookEventPayload): void protected abstract clearAssistantMessageRetry(paneKey: string): void protected abstract clearCodexSubagentPoll(paneKey: string): void diff --git a/src/main/agent-hooks/server/server-status-inference.ts b/src/main/agent-hooks/server/server-status-inference.ts index 49575fe223e..3f57e8d87d2 100644 --- a/src/main/agent-hooks/server/server-status-inference.ts +++ b/src/main/agent-hooks/server/server-status-inference.ts @@ -111,6 +111,9 @@ export abstract class AgentHookServerStatusInference extends AgentHookServerRowO ...(payload.subagents ? { subagents: payload.subagents } : {}) } }) + if (!inferred) { + return false + } console.debug('[agent-hooks] inferred interrupted agent status', { paneKey: inferred.paneKey, agentType, @@ -172,6 +175,9 @@ export abstract class AgentHookServerStatusInference extends AgentHookServerRowO ...(payload.subagents ? { subagents: payload.subagents } : {}) } }) + if (!inferred) { + return false + } console.debug('[agent-hooks] inferred resolved question status', { paneKey: inferred.paneKey, state: inferred.payload.state diff --git a/src/main/agent-hooks/server/server-status-retries.ts b/src/main/agent-hooks/server/server-status-retries.ts index 2757806b293..4620506b210 100644 --- a/src/main/agent-hooks/server/server-status-retries.ts +++ b/src/main/agent-hooks/server/server-status-retries.ts @@ -77,7 +77,9 @@ export abstract class AgentHookServerStatusRetries extends AgentHookServerStatus const subagentsChanged = JSON.stringify(normalized.payload.subagents) !== JSON.stringify(original.payload.subagents) const next = subagentsChanged ? this.applyNormalizedStatus(normalized) : original - this.scheduleCodexSubagentPoll(source, body, next) + if (next) { + this.scheduleCodexSubagentPoll(source, body, next) + } } protected scheduleAssistantMessageRetry( diff --git a/src/main/agent-hooks/server/server-status-update.ts b/src/main/agent-hooks/server/server-status-update.ts index 04325e26bf5..6adfd9430af 100644 --- a/src/main/agent-hooks/server/server-status-update.ts +++ b/src/main/agent-hooks/server/server-status-update.ts @@ -29,7 +29,10 @@ export abstract class AgentHookServerStatusUpdate extends AgentHookServerStatusA origin: AgentStatusObservationOrigin = 'hook', observedAt?: number, mutationBefore?: EnrichedAgentHookEventPayload - ): EnrichedAgentHookEventPayload { + ): EnrichedAgentHookEventPayload | undefined { + if (!this.canWriteLegacyStatusRow(payload)) { + return undefined + } if (payload.hookEventName === 'UserPromptSubmit') { // Why: the prompt boundary is authoritative even when text is unchanged; its next OSC working row must not inherit the prior cron/background turn stamp. this.activeHookTurnCompletedAtByPaneKey.delete(payload.paneKey) @@ -72,7 +75,9 @@ export abstract class AgentHookServerStatusUpdate extends AgentHookServerStatusA } this.clearAssistantMessageRetry(enriched.paneKey) this.runtimeObservedStatusPaneKeys.delete(enriched.paneKey) - this.writeLegacyStatusRow(enriched) + if (!this.writeLegacyStatusRow(enriched)) { + return undefined + } this.commitStatusRowMutation(rowBefore, enriched) this.scheduleStatusPersist() this.notifyStatusChangeListeners() @@ -125,7 +130,9 @@ export abstract class AgentHookServerStatusUpdate extends AgentHookServerStatusA if (boundaryReconciledPrevious !== previous) { previous = boundaryReconciledPrevious if (previous) { - this.writeLegacyStatusRow(previous) + if (!this.writeLegacyStatusRow(previous)) { + return undefined + } this.scheduleStatusPersist() } } @@ -224,7 +231,9 @@ export abstract class AgentHookServerStatusUpdate extends AgentHookServerStatusA } else { this.runtimeObservedStatusPaneKeys.add(enriched.paneKey) } - this.writeLegacyStatusRow(enriched) + if (!this.writeLegacyStatusRow(enriched)) { + return undefined + } this.commitStatusRowMutation(rowBefore, enriched) // Why skipped for structured rows: the serializer drops them, so the whole walk and stringify // can only ever reproduce the last file — once per debounce window for a streaming chat. @@ -241,6 +250,9 @@ export abstract class AgentHookServerStatusUpdate extends AgentHookServerStatusA mutationBefore?: EnrichedAgentHookEventPayload, emitEnrichedStatus = false ): void { + if (!this.canWriteLegacyStatusRow(previous)) { + return + } const connectionClearWatermark = previous.connectionId ? this.connectionTimestampWatermarkById.get(previous.connectionId) : undefined @@ -266,7 +278,9 @@ export abstract class AgentHookServerStatusUpdate extends AgentHookServerStatusA } const firstRuntimeObservation = !this.runtimeObservedStatusPaneKeys.has(refreshed.paneKey) this.runtimeObservedStatusPaneKeys.add(refreshed.paneKey) - this.writeLegacyStatusRow(refreshed) + if (!this.writeLegacyStatusRow(refreshed)) { + return + } this.commitStatusRowMutation(mutationBefore ?? previous, refreshed) this.scheduleStatusPersist() // A dismissed row may retain only provider resume identity. Its preserved payload can still @@ -291,21 +305,8 @@ export abstract class AgentHookServerStatusUpdate extends AgentHookServerStatusA } } - // Why: every status emit must reach plugins too, so a new early-return path - // upstream cannot silently leave the plugin tap behind the main-window fanout. - protected emitEnrichedStatus(enriched: EnrichedAgentHookEventPayload): void { - this.onAgentStatus?.(enriched) - for (const listener of this.enrichedStatusListeners) { - try { - listener(enriched) - } catch (err) { - console.error('[agent-hooks] enriched status listener threw', err) - } - } - } - - private writeLegacyStatusRow(entry: EnrichedAgentHookEventPayload): void { - admitLegacyAgentStatus( + private writeLegacyStatusRow(entry: EnrichedAgentHookEventPayload): boolean { + return admitLegacyAgentStatus( this.state, 'main-status-update', entry, diff --git a/src/main/agent-hooks/server/server-structured-status-row.ts b/src/main/agent-hooks/server/server-structured-status-row.ts new file mode 100644 index 00000000000..93fda643409 --- /dev/null +++ b/src/main/agent-hooks/server/server-structured-status-row.ts @@ -0,0 +1,24 @@ +import { + pickParsedAgentStatusPayload, + type AgentStatusIpcPayload +} from '../../../shared/agent-status-types' +import type { EnrichedAgentHookEventPayload } from './server-types' + +/** Canonical rows supply legacy fanout without retaining a writable pane copy. */ +export function structuredStatusLegacyEvent( + row: AgentStatusIpcPayload +): EnrichedAgentHookEventPayload { + return { + paneKey: row.paneKey, + tabId: row.tabId, + worktreeId: row.worktreeId, + connectionId: row.connectionId, + receivedAt: row.receivedAt, + stateStartedAt: row.stateStartedAt, + evidenceObservedAt: row.evidenceObservedAt, + structuredHost: row.structuredHost, + ...(row.providerSession ? { providerSession: row.providerSession } : {}), + ...(row.observation ? { observation: row.observation } : {}), + payload: pickParsedAgentStatusPayload(row) + } +} diff --git a/src/main/agent-launch/agent-launch-mode.ts b/src/main/agent-launch/agent-launch-mode.ts index 8180c075e17..2add36df4e6 100644 --- a/src/main/agent-launch/agent-launch-mode.ts +++ b/src/main/agent-launch/agent-launch-mode.ts @@ -26,7 +26,7 @@ import { type StructuredNativeChatBlocker } from '../../shared/structured-native-chat-launch-route' import type { TuiAgent } from '../../shared/tui-agent' -import { hasExplicitTuiLaunchCustomization } from '../../shared/tui-agent-launch-customization' +import { hasExplicitTuiLaunchCommand } from '../../shared/tui-agent-launch-command-override' import type { OrcaRuntimeService } from '../runtime/orca-runtime' export type AgentLaunchMode = 'structured' | 'terminal' @@ -36,7 +36,7 @@ export type AgentLaunchModeReason = | 'remote_execution_host' | 'reused_terminal' | 'agent_without_structured_session' - | 'tui_launch_customization' + | 'tui_launch_command' | 'structured_sessions_unavailable' | 'structured_support_unknown' | 'wsl_execution_runtime' @@ -71,8 +71,7 @@ export const DEFAULT_LAUNCH_VOCABULARY: AgentLaunchModeVocabulary = { } export type AgentLaunchModeSettings = Partial< - NativeChatDefaultSettings & - Pick + NativeChatDefaultSettings & Pick > /** The placement facts the decision reads. `worktree`, `model` and `effort` are deliberately not @@ -89,8 +88,7 @@ const DOWNGRADE_DETAIL: Record, s remote_execution_host: 'this launch runs on a remote execution host', reused_terminal: 'it reuses a running terminal agent', agent_without_structured_session: 'this agent has no structured session', - tui_launch_customization: - 'this agent has a custom launch command, arguments or environment that only a terminal applies', + tui_launch_command: 'this agent has a custom launch command that only a terminal runs', structured_sessions_unavailable: 'this runtime does not support structured agent sessions', structured_support_unknown: 'the execution host has not established structured session support', wsl_execution_runtime: 'this workspace runs under WSL', @@ -105,7 +103,7 @@ const BLOCKER_REASON: Record< 'reused-terminal': 'reused_terminal', 'agent-without-structured-session': 'agent_without_structured_session', 'floating-workspace': 'structured_unsupported_on_host', - 'tui-launch-customization': 'tui_launch_customization', + 'tui-launch-command': 'tui_launch_command', 'remote-execution-host': 'remote_execution_host', 'project-runtime': 'wsl_execution_runtime', 'runtime-capability': 'structured_sessions_unavailable', @@ -151,7 +149,7 @@ export function decideAgentLaunchMode(args: { // A resolved managed worktree or folder workspace is never a floating terminal. WSL is left to // the executing host's own create-support probe, which reads the resolved workspace rather // than guessing from a client-side project runtime. - requiresTuiLaunchCustomization: hasExplicitTuiLaunchCustomization(settings, agent) + requiresTuiLaunchCommand: hasExplicitTuiLaunchCommand(settings, agent) }) if (!support.supported) { return downgraded(BLOCKER_REASON[support.blocker], vocabulary) diff --git a/src/main/claude/claude-agent-sdk-contract-pins.test.ts b/src/main/claude/claude-agent-sdk-contract-pins.test.ts index 46bcb7219d3..e5456ecf4b9 100644 --- a/src/main/claude/claude-agent-sdk-contract-pins.test.ts +++ b/src/main/claude/claude-agent-sdk-contract-pins.test.ts @@ -6,6 +6,7 @@ import { query, type CanUseTool, type Options, + type PermissionMode, type SDKUserMessage, type SpawnedProcess as SdkSpawnedProcess, type SpawnOptions as SdkSpawnOptions @@ -143,7 +144,7 @@ function recordingSpawner(spawns: SpawnSeen[]) { } } -function resolvedLaunch(launchArgs: string[]) { +function resolvedLaunch(permissionMode: PermissionMode, launchArgs: string[] = []) { const record = { sessionId: 'contract-pin-session', provider: 'claude', @@ -161,7 +162,8 @@ function resolvedLaunch(launchArgs: string[]) { store: { getRecord: () => record } as unknown as AgentSessionRecordStore, resolveWorkspacePath: async () => '/repos/workspace-1', resolveCommand: () => FAKE_CLI, - resolveAuthPolicy: () => ({ stripAuthEnv: true }) + resolveAuthPolicy: () => ({ stripAuthEnv: true }), + resolvePermissionMode: () => permissionMode })({ identity: { sessionId: record.sessionId } as never }) } @@ -338,9 +340,9 @@ describe('Claude Agent SDK contract pins', () => { it('produces a matching CLI flag for every pre-SDK argv entry', async () => { const scenario = scriptScenario([{ awaitUserMessage: true }, { emit: RESULT_FRAME }]) const spawns: SpawnSeen[] = [] - // Driven by the real resolver, so the argv walk covers the durable-launchArgs - // translation and its merge order, not a hand-written options literal. - const launch = await resolvedLaunch(['--model', 'claude-sonnet-4-5', '--effort', 'high']) + // Driven by the real resolver, so the argv walk covers its option set and merge order, + // not a hand-written options literal. + const launch = await resolvedLaunch('bypassPermissions', ['--model', 'claude-sonnet-4-5']) await drainQuery({ ...launch.options, pathToClaudeCodeExecutable: FAKE_CLI, @@ -352,15 +354,20 @@ describe('Claude Agent SDK contract pins', () => { expect(spawns).toHaveLength(1) const argv = normalizeArgv(spawns[0]!.args) - // Typed-first translation must not also spell the flag through extraArgs. - for (const flag of ['--model', '--effort']) { + // Agent Permissions reaches the child as the SDK's own typed pair, spelled exactly once each. + // `--allow-dangerously-skip-permissions` is what the SDK emits for the allow flag; the CLI + // refuses `bypassPermissions` without it, so a rename upstream must fail here rather than + // silently return a Yolo user to permission prompts. + for (const flag of ['--permission-mode', '--allow-dangerously-skip-permissions']) { expect( argv.filter((arg) => arg === flag), `${flag} occurrences` ).toHaveLength(1) } - expect(argv[argv.indexOf('--model') + 1]).toBe('claude-sonnet-4-5') - expect(argv[argv.indexOf('--effort') + 1]).toBe('high') + expect(argv[argv.indexOf('--permission-mode') + 1]).toBe('bypassPermissions') + // Configured CLI arguments are a terminal concern; a record written before they stopped + // being read must not smuggle one back into the child's argv. + expect(argv).not.toContain('--model') // Headless print mode is the SDK's only mode; `query()` never passes `-p`, // and if the SDK ever started passing it this pin would notice. const impliedByHeadlessQuery = new Set(['-p']) diff --git a/src/main/claude/claude-structured-launch-resolution.test.ts b/src/main/claude/claude-structured-launch-resolution.test.ts index 650947cffa1..e3822aa4b45 100644 --- a/src/main/claude/claude-structured-launch-resolution.test.ts +++ b/src/main/claude/claude-structured-launch-resolution.test.ts @@ -11,10 +11,10 @@ import type { ClaudeManagedAccountGateSettings } from '../native-chat/claude-str import { CLAUDE_DEFAULT_SETTING_SOURCES, CLAUDE_STRUCTURED_BASE_OPTIONS, - claudeSdkOptionsForLaunchArgs, claudeSessionIdForOrcaSession, createClaudeStructuredLaunchResolver } from './claude-structured-launch-resolution' +import { claudeStructuredPermissionModeForSettings } from './claude-structured-permission-mode' const SESSION_ID = 'orca-session-1' const IDENTITY = { sessionId: SESSION_ID } as Parameters< @@ -55,13 +55,16 @@ function makeExecutable(path: string): void { function resolverFor( value: AgentSessionRecord | null, resolveEnv?: () => Record, - stripAuthEnv = false + stripAuthEnv = false, + // Manual by default so a test that is not about permissions is not silently about them. + agentDefaultArgs: Record = { claude: '' } ) { return createClaudeStructuredLaunchResolver({ store: { getRecord: () => value } as unknown as AgentSessionRecordStore, resolveWorkspacePath: async (id) => `/repos/${id}`, resolveCommand: () => '/usr/local/bin/claude', resolveAuthPolicy: () => ({ stripAuthEnv }), + resolvePermissionMode: () => claudeStructuredPermissionModeForSettings({ agentDefaultArgs }), ...(resolveEnv ? { resolveEnv } : {}) }) } @@ -119,6 +122,7 @@ describe('claude structured launch resolution', () => { supportedDialogKinds: [], extraArgs: { 'replay-user-messages': null }, systemPrompt: { type: 'preset', preset: 'claude_code' }, + permissionMode: 'default', sessionId: first.providerSessionId }) expect(first.options.resume).toBeUndefined() @@ -190,42 +194,55 @@ describe('claude structured launch resolution', () => { expect(launch.options.resumeSessionAt).toBeUndefined() }) - it('preserves durable Claude launch arguments as typed options and extraArgs', async () => { + // Agent Permissions is stored as the bypass flag inside the launch arguments, so presence of + // that flag — not the whole string — is what Yolo means, exactly as a terminal launch reads it. + it.each([ + ['--dangerously-skip-permissions'], + ['--dangerously-skip-permissions --model Opus'], + ['--model Opus --dangerously-skip-permissions'] + ])('starts a Yolo session in bypassPermissions for args %s', async (claude) => { + const launch = await resolverFor(record(), undefined, false, { claude })({ identity: IDENTITY }) + + expect(launch.options.permissionMode).toBe('bypassPermissions') + // The SDK refuses bypassPermissions unless the allow flag rides with it. + expect(launch.options.allowDangerouslySkipPermissions).toBe(true) + }) + + // The common profile: the toggle has never been used, so it has written nothing, and the + // default for the key it did not write is the bypass flag — the posture the terminal has + // always given these users. + it('starts a session that never opened Agent settings in bypassPermissions', async () => { + const launch = await resolverFor(record(), undefined, false, {})({ identity: IDENTITY }) + + expect(launch.options.permissionMode).toBe('bypassPermissions') + expect(launch.options.allowDangerouslySkipPermissions).toBe(true) + }) + + // Manual is stored as an empty string, which owns the key and so beats the shipped default. + it.each([[''], ['--model Opus']])( + 'leaves a Manual session prompting for args %s', + async (claude) => { + const launch = await resolverFor(record(), undefined, false, { claude })({ + identity: IDENTITY + }) + + expect(launch.options.permissionMode).toBe('default') + expect(launch.options.allowDangerouslySkipPermissions).toBeUndefined() + } + ) + + // The configured CLI arguments are a terminal concern: a durable record written before they + // stopped being read must not smuggle one back into the child. + it("ignores the record's durable launch arguments", async () => { const launch = await resolverFor( record({ - launchArgs: [ - '--model', - 'claude-sonnet-4-5', - '--effort', - 'high', - '--dangerously-skip-permissions' - ] + launchArgs: ['--model', 'claude-sonnet-4-5', '--dangerously-skip-permissions'] }) )({ identity: IDENTITY }) - expect(launch.options.model).toBe('claude-sonnet-4-5') - expect(launch.options.effort).toBe('high') - expect(launch.options.extraArgs).toEqual({ - 'dangerously-skip-permissions': null, - 'replay-user-messages': null - }) - }) - - it('routes durable launch arguments to a typed option first and refuses what neither can carry', () => { - // The catalog's own output: each flag lands in exactly one place, so the SDK - // cannot emit it twice with two different values. - expect(claudeSdkOptionsForLaunchArgs(['--model', 'opus', '--effort', 'xhigh'])).toEqual({ - model: 'opus', - effort: 'xhigh' - }) - // An effort the SDK's union does not name still reaches the CLI, unchanged. - expect(claudeSdkOptionsForLaunchArgs(['--effort', 'ultra'])).toEqual({ - extraArgs: { effort: 'ultra' } - }) - expect(claudeSdkOptionsForLaunchArgs(['--settings=/tmp/s.json'])).toEqual({ - extraArgs: { settings: '/tmp/s.json' } - }) - expect(() => claudeSdkOptionsForLaunchArgs(['-m', 'opus'])).toThrow(/no SDK option/) + expect(launch.options.model).toBeUndefined() + expect(launch.options.extraArgs).toEqual({ 'replay-user-messages': null }) + expect(launch.options.permissionMode).toBe('default') }) it('keeps the session launch environment pinned after account settings change', async () => { diff --git a/src/main/claude/claude-structured-launch-resolution.ts b/src/main/claude/claude-structured-launch-resolution.ts index 667ebfb8ddd..b157589637e 100644 --- a/src/main/claude/claude-structured-launch-resolution.ts +++ b/src/main/claude/claude-structured-launch-resolution.ts @@ -1,5 +1,8 @@ import { createHash } from 'node:crypto' -import type { EffortLevel, Options as ClaudeAgentSdkOptions } from '@anthropic-ai/claude-agent-sdk' +import type { + Options as ClaudeAgentSdkOptions, + PermissionMode +} from '@anthropic-ai/claude-agent-sdk' import type { AgentSessionJournalIdentity } from '../../shared/agent-session-journal-types' import { agentSessionProviderHandleChainHead } from '../../shared/agent-session-provider-handle' import { LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' @@ -35,6 +38,8 @@ export type ClaudeStructuredSdkOptions = Pick< | 'extraArgs' | 'model' | 'effort' + | 'permissionMode' + | 'allowDangerouslySkipPermissions' | 'sessionId' | 'resume' | 'resumeSessionAt' @@ -58,8 +63,6 @@ export const CLAUDE_STRUCTURED_BASE_OPTIONS: ClaudeStructuredSdkOptions = { extraArgs: { 'replay-user-messages': null } } -const EFFORT_LEVELS: readonly string[] = ['low', 'medium', 'high', 'xhigh', 'max'] - function cloneDefinedEnv(env: NodeJS.ProcessEnv | Record): Record { const next: Record = {} for (const [key, value] of Object.entries(env)) { @@ -71,47 +74,18 @@ function cloneDefinedEnv(env: NodeJS.ProcessEnv | Record): Recor } /** - * Translate the record's durable launch arguments into SDK options. + * Agent Permissions as query-start options. * - * Typed option first so a flag is never emitted twice; `extraArgs` carries - * anything without one. A token expressible neither way is refused rather than - * dropped — a silent drop is how this lane loses launch flags. + * The SDK refuses `bypassPermissions` unless the allow flag rides with it, so the two are built + * here together and never emitted apart. The prompting mode is stated rather than left out: the + * SDK fills an absent mode with `default` anyway, and saying so keeps the launch readable. */ -export function claudeSdkOptionsForLaunchArgs( - args: readonly string[] -): Pick { - let model: string | undefined - let effort: EffortLevel | undefined - const extraArgs: Record = {} - for (let index = 0; index < args.length; index += 1) { - const token = args[index] ?? '' - if (!token.startsWith('--') || token.length <= 2) { - throw new Error( - `claude launch argument ${token} has no SDK option; refusing rather than dropping it` - ) - } - const equals = token.indexOf('=') - const flag = equals === -1 ? token : token.slice(0, equals) - let value = equals === -1 ? null : token.slice(equals + 1) - if (value === null) { - const next = args[index + 1] - if (next !== undefined && !next.startsWith('-')) { - value = next - index += 1 - } - } - if (flag === '--model' && value !== null) { - model = value - } else if (flag === '--effort' && value !== null && EFFORT_LEVELS.includes(value)) { - effort = value as EffortLevel - } else { - extraArgs[flag.slice(2)] = value - } - } +export function claudeStructuredPermissionOptions( + mode: PermissionMode +): Pick { return { - ...(model === undefined ? {} : { model }), - ...(effort === undefined ? {} : { effort }), - ...(Object.keys(extraArgs).length > 0 ? { extraArgs } : {}) + permissionMode: mode, + ...(mode === 'bypassPermissions' ? { allowDangerouslySkipPermissions: true } : {}) } } @@ -142,6 +116,8 @@ export type ClaudeStructuredLaunchResolverDeps = { * inherit a guess. Build it with claudeStructuredAuthPolicyForSettings. */ resolveAuthPolicy: () => Promise | ClaudeStructuredAuthPolicy + /** The user's Agent Permissions setting, re-read per acquisition. Absent means prompting. */ + resolvePermissionMode?: () => Promise | PermissionMode /** How long an in-flight account switch may hold a launch before it is refused. */ authSwitchSettleTimeoutMs?: number /** Account state for the managed-account gate; null when it cannot be read, which refuses. */ @@ -219,7 +195,11 @@ export function createClaudeStructuredLaunchResolver( head?.handle.provider === 'claude' ? head.handle.sessionId : claudeSessionIdForOrcaSession(identity.sessionId) - const durable = claudeSdkOptionsForLaunchArgs(record.launchArgs ?? []) + // `record.launchArgs` is deliberately not read: the configured CLI arguments are a terminal + // concern, and the permission mode they used to smuggle in is a typed option now. + const permission = claudeStructuredPermissionOptions( + (await deps.resolvePermissionMode?.()) ?? 'default' + ) const command = (deps.resolveCommand ?? resolveClaudeCommand)() const auth = await deps.resolveAuthPolicy() const overlay = await deps.resolveEnv?.() @@ -256,9 +236,8 @@ export function createClaudeStructuredLaunchResolver( return { pathToClaudeCodeExecutable: command, options: { - ...durable, ...CLAUDE_STRUCTURED_BASE_OPTIONS, - extraArgs: { ...durable.extraArgs, ...CLAUDE_STRUCTURED_BASE_OPTIONS.extraArgs }, + ...permission, ...(head?.handle.provider === 'claude' ? { resume: providerSessionId, diff --git a/src/main/claude/claude-structured-permission-mode.test.ts b/src/main/claude/claude-structured-permission-mode.test.ts new file mode 100644 index 00000000000..c09df8f5e05 --- /dev/null +++ b/src/main/claude/claude-structured-permission-mode.test.ts @@ -0,0 +1,45 @@ +import { describe, expect, it } from 'vitest' +import { claudeStructuredPermissionModeForSettings } from './claude-structured-permission-mode' + +describe('claudeStructuredPermissionModeForSettings', () => { + // The three states the Agent Permissions toggle can leave behind. The untouched case is the + // common one and the easiest to get wrong: the toggle writes nothing until it is used, and the + // default Orca ships for the key it did not write is the bypass flag — which is what a terminal + // launch has always applied to an untouched profile. + it('bypasses when the user has never opened Agent settings', () => { + expect(claudeStructuredPermissionModeForSettings({ agentDefaultArgs: {} })).toBe( + 'bypassPermissions' + ) + expect(claudeStructuredPermissionModeForSettings({})).toBe('bypassPermissions') + expect(claudeStructuredPermissionModeForSettings(null)).toBe('bypassPermissions') + expect(claudeStructuredPermissionModeForSettings({ agentDefaultArgs: { codex: '' } })).toBe( + 'bypassPermissions' + ) + }) + + it('bypasses when Yolo wrote the flag, alone or beside other tokens', () => { + for (const claude of [ + '--dangerously-skip-permissions', + '--dangerously-skip-permissions --model Opus', + '--model Opus --dangerously-skip-permissions' + ]) { + expect( + claudeStructuredPermissionModeForSettings({ agentDefaultArgs: { claude } }), + claude + ).toBe('bypassPermissions') + } + }) + + // Manual is stored as an empty string, which owns the key and so beats the shipped default. + it('prompts when Manual cleared the flag', () => { + expect(claudeStructuredPermissionModeForSettings({ agentDefaultArgs: { claude: '' } })).toBe( + 'default' + ) + }) + + it('prompts when the user replaced the flag with something else', () => { + expect( + claudeStructuredPermissionModeForSettings({ agentDefaultArgs: { claude: '--model Opus' } }) + ).toBe('default') + }) +}) diff --git a/src/main/claude/claude-structured-permission-mode.ts b/src/main/claude/claude-structured-permission-mode.ts new file mode 100644 index 00000000000..39161b50cf4 --- /dev/null +++ b/src/main/claude/claude-structured-permission-mode.ts @@ -0,0 +1,23 @@ +import type { PermissionMode } from '@anthropic-ai/claude-agent-sdk' +import type { GlobalSettings } from '../../shared/global-settings-types' +import { resolvedTuiAgentArgsBypassPermissions } from '../../shared/tui-agent-launch-defaults' + +/** + * The Agent Permissions setting as the SDK's own permission mode. + * + * Read per acquisition — like the environment overlay and the auth policy beside it — rather than + * latched into the session record: the setting is the one copy of this fact, so nothing can + * disagree with it and a failed restore cannot silently downgrade a session to prompting. + * + * Yolo still stores itself as the agent's bypass flag inside the launch arguments, which is also + * what a terminal launch acts on, so presence of that flag is the fact to read — resolved through + * the same default fallback the terminal uses, which is why an untouched profile bypasses. The + * rest of the arguments string is a terminal concern this path does not interpret. + */ +export function claudeStructuredPermissionModeForSettings( + settings: Partial> | null | undefined +): PermissionMode { + return resolvedTuiAgentArgsBypassPermissions('claude', settings?.agentDefaultArgs) + ? 'bypassPermissions' + : 'default' +} diff --git a/src/main/codex/codex-hook-definition.ts b/src/main/codex/codex-hook-definition.ts index 6f03bc0aabe..641a5fc1b08 100644 --- a/src/main/codex/codex-hook-definition.ts +++ b/src/main/codex/codex-hook-definition.ts @@ -1,8 +1,9 @@ import { join } from 'node:path' import { getSharedManagedScriptPath, + buildWindowsHookPowerShellCommand, wrapPosixHookCommand, - wrapWindowsCmdHookCommand, + WINDOWS_CMD_SAFE_PATH, writeHooksJson, type HookDefinition } from '../agent-hooks/installer-utils' @@ -70,9 +71,13 @@ export function getManagedScriptPath(): string { } export function getManagedCommand(scriptPath: string): string { - return process.platform === 'win32' - ? wrapWindowsCmdHookCommand(scriptPath) - : wrapPosixHookCommand(scriptPath) + if (process.platform !== 'win32') { + return wrapPosixHookCommand(scriptPath) + } + // Codex's default native Windows hook host is PowerShell; reuse it to avoid a second interpreter. + return WINDOWS_CMD_SAFE_PATH.test(scriptPath) + ? scriptPath + : buildWindowsHookPowerShellCommand(scriptPath) } export type CodexManagedHookInstallMaterial = { diff --git a/src/main/codex/codex-structured-app-server-args.test.ts b/src/main/codex/codex-structured-app-server-args.test.ts deleted file mode 100644 index f76305cf7c1..00000000000 --- a/src/main/codex/codex-structured-app-server-args.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { resolveCodexStructuredAppServerArgs } from './codex-structured-app-server-args' - -describe('structured Codex app-server arguments', () => { - it('keeps configuration flags and converts effort to the app-server config contract', () => { - expect( - resolveCodexStructuredAppServerArgs( - '--profile review -c approval_policy=never --model gpt-5.6 --effort high --search', - 'posix' - ) - ).toEqual([ - '--profile', - 'review', - '-c', - 'approval_policy=never', - '--model', - 'gpt-5.6', - '-c', - 'model_reasoning_effort=high', - '--search' - ]) - }) - - it.each(['--no-alt-screen', '--remote ws://host', '-C /tmp/elsewhere', 'resume thread-1'])( - 'reports an incompatible configured argument instead of dropping %s', - (configured) => { - expect(() => resolveCodexStructuredAppServerArgs(configured, 'posix')).toThrow( - /cannot apply the configured CLI arguments.*Settings or use terminal view/ - ) - } - ) -}) diff --git a/src/main/codex/codex-structured-app-server-args.ts b/src/main/codex/codex-structured-app-server-args.ts deleted file mode 100644 index af83c46c8a2..00000000000 --- a/src/main/codex/codex-structured-app-server-args.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { - tokenizeStartupCommand, - type AgentStartupShell -} from '../../shared/tui-agent-startup-shell' - -const VALUE_FLAGS = new Set([ - '-a', - '--add-dir', - '--ask-for-approval', - '-c', - '--config', - '--disable', - '--effort', - '--enable', - '--local-provider', - '-m', - '--model', - '-p', - '--profile', - '--reasoning-effort', - '-s', - '--sandbox' -]) - -const BOOLEAN_FLAGS = new Set([ - '--approve-for-me', - '--dangerously-bypass-approvals-and-sandbox', - '--dangerously-bypass-hook-trust', - '--oss', - '--search', - '--strict-config' -]) - -const EFFORT_FLAGS = new Set(['--effort', '--reasoning-effort']) - -function configuredArgsError(detail: string): Error { - return new Error( - `Structured Codex chat cannot apply the configured CLI arguments to app-server: ${detail}. Update Codex CLI arguments in Settings or use terminal view.` - ) -} - -function splitOption(token: string): { flag: string; inlineValue?: string } { - const separator = token.indexOf('=') - return separator > 0 - ? { flag: token.slice(0, separator), inlineValue: token.slice(separator + 1) } - : { flag: token } -} - -/** Keeps config-affecting Codex flags and refuses every TUI-only or unknown token visibly. */ -export function resolveCodexStructuredAppServerArgs( - configuredArgs: string, - shell: AgentStartupShell -): string[] { - const parsed = tokenizeStartupCommand(configuredArgs.trim(), shell) - if (!parsed.ok) { - throw configuredArgsError(parsed.error) - } - const divergent = parsed.spans.find((span) => span.divergesFromShell) - if (divergent) { - throw configuredArgsError(configuredArgs.slice(divergent.start, divergent.end)) - } - const result: string[] = [] - for (let index = 0; index < parsed.tokens.length; index += 1) { - const token = parsed.tokens[index] - const { flag, inlineValue } = splitOption(token) - if (BOOLEAN_FLAGS.has(flag) && inlineValue === undefined) { - result.push(flag) - continue - } - if (!VALUE_FLAGS.has(flag)) { - throw configuredArgsError(token || 'an empty positional argument') - } - const value = inlineValue ?? parsed.tokens[++index] - if (value === undefined || value.length === 0) { - throw configuredArgsError(`${flag} requires a value`) - } - if (EFFORT_FLAGS.has(flag)) { - result.push('-c', `model_reasoning_effort=${value}`) - } else { - result.push(flag, value) - } - } - return result -} diff --git a/src/main/codex/codex-structured-launch-resolution.test.ts b/src/main/codex/codex-structured-launch-resolution.test.ts index de83e74c6c8..6b5bb958d4c 100644 --- a/src/main/codex/codex-structured-launch-resolution.test.ts +++ b/src/main/codex/codex-structured-launch-resolution.test.ts @@ -3,6 +3,7 @@ import type { AgentSessionRecord } from '../../shared/agent-session-record' import { LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' import type { AgentSessionRecordStore } from '../runtime/agent-session-record-store' import { createCodexStructuredLaunchResolver } from './codex-structured-launch-resolution' +import { codexStructuredPermissionArgsForSettings } from './codex-structured-permission-mode' const SESSION_ID = 'session-1' const IDENTITY = { sessionId: SESSION_ID } as Parameters< @@ -38,14 +39,16 @@ function record(overrides: Partial = {}): AgentSessionRecord function resolverFor( value: AgentSessionRecord | null, resolveWorkspacePath: (workspaceId: string) => Promise = async (id) => `/repos/${id}`, - resolveRollout: () => Promise = async () => null + resolveRollout: () => Promise = async () => null, + agentDefaultArgs: Record = { codex: '' } ) { return createCodexStructuredLaunchResolver({ store: { getRecord: () => value } as unknown as AgentSessionRecordStore, resolveWorkspacePath, resolveCommand: () => '/usr/local/bin/codex', resolveRollout, - isWindowsProcessStartTimeAvailable: () => true + isWindowsProcessStartTimeAvailable: () => true, + resolvePermissionArgs: () => codexStructuredPermissionArgsForSettings({ agentDefaultArgs }) }) } @@ -109,18 +112,36 @@ describe('codex structured launch resolution', () => { expect(launch.resumeThreadId).toBe('thread-current') }) - it('places the durable user configuration before the app-server subcommand', async () => { + // Agent Permissions is the only thing from the arguments field that reaches app-server, and it + // keeps the position the durable arguments used to hold: before the subcommand. + it('places the permission flag before the app-server subcommand', async () => { + const launch = await resolverFor(record(), undefined, undefined, { + codex: '--dangerously-bypass-approvals-and-sandbox --model gpt-5.6-sol' + })({ identity: IDENTITY }) + + expect(launch.args).toEqual(['--dangerously-bypass-approvals-and-sandbox', 'app-server']) + }) + + it('bypasses approvals for a profile that never opened Agent settings', async () => { + const launch = await resolverFor(record(), undefined, undefined, {})({ identity: IDENTITY }) + + expect(launch.args).toEqual(['--dangerously-bypass-approvals-and-sandbox', 'app-server']) + }) + + it('leaves the approval prompts on under Manual', async () => { + const launch = await resolverFor(record())({ identity: IDENTITY }) + + expect(launch.args).toEqual(['app-server']) + }) + + // The configured CLI arguments are a terminal concern: a durable record written before they + // stopped being read must not smuggle one back into app-server's argv. + it("ignores the record's durable launch arguments", async () => { const launch = await resolverFor( record({ launchArgs: ['--profile', 'review', '-c', 'model_reasoning_effort=high'] }) )({ identity: IDENTITY }) - expect(launch.args).toEqual([ - '--profile', - 'review', - '-c', - 'model_reasoning_effort=high', - 'app-server' - ]) + expect(launch.args).toEqual(['app-server']) }) it('pins resume to the rollout file that proved the durable thread', async () => { diff --git a/src/main/codex/codex-structured-launch-resolution.ts b/src/main/codex/codex-structured-launch-resolution.ts index d395ee87c12..68b3d03a98d 100644 --- a/src/main/codex/codex-structured-launch-resolution.ts +++ b/src/main/codex/codex-structured-launch-resolution.ts @@ -27,6 +27,9 @@ export type CodexStructuredLaunchResolverDeps = { resolveRollout?: typeof resolvePinnedCodexRolloutProof /** Test seam for the host capability; production uses the native process table. */ isWindowsProcessStartTimeAvailable?: () => boolean + /** The user's Agent Permissions setting as app-server argv, re-read per acquisition. + * Absent means the CLI's own approval prompts stay on. */ + resolvePermissionArgs?: () => string[] } export function createCodexStructuredLaunchResolver( @@ -66,7 +69,9 @@ export function createCodexStructuredLaunchResolver( pathEnv, ...(homePath ? { homePath } : {}) }) - const args = [...(record.launchArgs ?? []), 'app-server'] + // `record.launchArgs` is deliberately not read: the configured CLI arguments are a terminal + // concern, and the permission posture they used to smuggle in is derived per acquisition. + const args = [...(deps.resolvePermissionArgs?.() ?? []), 'app-server'] const head = agentSessionProviderHandleChainHead(record.providerHandleChain) const resumeThreadId = head?.handle.provider === 'codex' ? head.handle.threadId : null return { diff --git a/src/main/codex/codex-structured-permission-mode.test.ts b/src/main/codex/codex-structured-permission-mode.test.ts new file mode 100644 index 00000000000..8fd8b952a97 --- /dev/null +++ b/src/main/codex/codex-structured-permission-mode.test.ts @@ -0,0 +1,46 @@ +import { describe, expect, it } from 'vitest' +import { codexStructuredPermissionArgsForSettings } from './codex-structured-permission-mode' + +const BYPASS = ['--dangerously-bypass-approvals-and-sandbox'] + +describe('codexStructuredPermissionArgsForSettings', () => { + it('bypasses when the user has never opened Agent settings', () => { + expect(codexStructuredPermissionArgsForSettings({ agentDefaultArgs: {} })).toEqual(BYPASS) + expect(codexStructuredPermissionArgsForSettings({})).toEqual(BYPASS) + expect(codexStructuredPermissionArgsForSettings(null)).toEqual(BYPASS) + expect(codexStructuredPermissionArgsForSettings({ agentDefaultArgs: { claude: '' } })).toEqual( + BYPASS + ) + }) + + it('bypasses when Yolo wrote the flag, alone or beside other tokens', () => { + for (const codex of [ + '--dangerously-bypass-approvals-and-sandbox', + '--dangerously-bypass-approvals-and-sandbox --model gpt-5.6-sol', + '--model gpt-5.6-sol --dangerously-bypass-approvals-and-sandbox' + ]) { + expect( + codexStructuredPermissionArgsForSettings({ agentDefaultArgs: { codex } }), + codex + ).toEqual(BYPASS) + } + }) + + it('leaves the approval prompts on when Manual cleared the flag', () => { + expect(codexStructuredPermissionArgsForSettings({ agentDefaultArgs: { codex: '' } })).toEqual( + [] + ) + }) + + // The passthrough that used to carry these to app-server is gone on purpose; only the + // permission posture is derived, and nothing else from the field reaches argv. + it('carries nothing but the permission posture out of the arguments field', () => { + expect( + codexStructuredPermissionArgsForSettings({ + agentDefaultArgs: { + codex: '--profile review --add-dir /repo -c model_reasoning_effort=high' + } + }) + ).toEqual([]) + }) +}) diff --git a/src/main/codex/codex-structured-permission-mode.ts b/src/main/codex/codex-structured-permission-mode.ts new file mode 100644 index 00000000000..fe1905e2117 --- /dev/null +++ b/src/main/codex/codex-structured-permission-mode.ts @@ -0,0 +1,21 @@ +import type { GlobalSettings } from '../../shared/global-settings-types' +import { resolvedTuiAgentArgsBypassPermissions } from '../../shared/tui-agent-launch-defaults' +import { YOLO_TUI_AGENT_ARGS } from '../../shared/tui-agent-permissions' + +/** + * The Agent Permissions setting as app-server argv. + * + * Derived per acquisition from the resolved launch arguments, never from the free-text Arguments + * field: app-server takes a narrower option set than the interactive CLI and the two are versioned + * apart, so the only thing read out of that field is the posture the toggle stores in it. An + * untouched profile resolves to the default Orca ships, which is the bypass flag. + */ +export function codexStructuredPermissionArgsForSettings( + settings: Partial> | null | undefined +): string[] { + const bypassArg = YOLO_TUI_AGENT_ARGS.codex + return bypassArg !== undefined && + resolvedTuiAgentArgsBypassPermissions('codex', settings?.agentDefaultArgs) + ? [bypassArg] + : [] +} diff --git a/src/main/codex/hook-service-managed-install.test.ts b/src/main/codex/hook-service-managed-install.test.ts index 3e242dc2cf4..caa67752a7f 100644 --- a/src/main/codex/hook-service-managed-install.test.ts +++ b/src/main/codex/hook-service-managed-install.test.ts @@ -28,11 +28,9 @@ vi.mock('os', async (importOriginal) => { }) import { CodexHookService } from './hook-service' +import { buildWindowsHookPowerShellCommand } from '../agent-hooks/installer-utils' import { runExclusivelyForCodexTrustConfig } from './codex-trust-config-mutation-queue' -const WINDOWS_POWERSHELL_LAUNCHER = - /^[A-Za-z]:\/[^"]*\/System32\/WindowsPowerShell\/v1\.0\/powershell\.exe -NoProfile -EncodedCommand \S+$/ - const homes = setupCodexHookHomes(homedirMock, getPathMock) function localManagedCodexEvents(): string[] { @@ -184,10 +182,7 @@ describe('CodexHookService', () => { expect(Object.keys(hooksConfig)).toEqual(['hooks']) }) - // Why: #6078 — a Windows user profile path like `C:\Users\Jane Doe` used to - // be written verbatim as the hook command, so Codex split it at the space and - // the hook exited with code 1. Keep spaced paths on the encoded launcher so - // `cmd.exe /C` never sees the raw script path. + // #6078: the existing PowerShell host must still quote spaced profile paths. it.skipIf(process.platform !== 'win32')( 'wraps the managed hook command when the profile path contains a space (#6078)', async () => { @@ -208,7 +203,11 @@ describe('CodexHookService', () => { for (const eventName of localManagedCodexEvents()) { const command = hooksConfig.hooks[eventName]?.[0]?.hooks?.[0]?.command - expect(command).toMatch(WINDOWS_POWERSHELL_LAUNCHER) + expect(command).toBe( + buildWindowsHookPowerShellCommand( + join(homedir(), '.orca', 'agent-hooks', 'codex-hook.cmd') + ) + ) } } finally { rmSync(spaceHome, { recursive: true, force: true }) @@ -216,10 +215,9 @@ describe('CodexHookService', () => { } ) - // Why: cmd.exe expands `%` and treats `^` as an escape even inside otherwise - // plausible paths. Keep those rare cases on the encoded launcher from #6078. + // Preserve literal-path quoting when constructing commands for shell metacharacters. it.skipIf(process.platform !== 'win32')( - 'keeps the encoded launcher when the profile path contains cmd metacharacters', + 'quotes the script path when the profile contains cmd metacharacters', async () => { const metacharHome = join(tmpdir(), 'orca %ORCA_TEST% ^ home') mkdirSync(metacharHome, { recursive: true }) @@ -238,7 +236,11 @@ describe('CodexHookService', () => { for (const eventName of localManagedCodexEvents()) { const command = hooksConfig.hooks[eventName]?.[0]?.hooks?.[0]?.command - expect(command).toMatch(WINDOWS_POWERSHELL_LAUNCHER) + expect(command).toBe( + buildWindowsHookPowerShellCommand( + join(homedir(), '.orca', 'agent-hooks', 'codex-hook.cmd') + ) + ) } } finally { rmSync(metacharHome, { recursive: true, force: true }) @@ -268,7 +270,11 @@ describe('CodexHookService', () => { expect(command).not.toMatch(/powershell/i) expect(command).toMatch(/\\agent-hooks\\codex-hook\.cmd$/) } else { - expect(command).toMatch(WINDOWS_POWERSHELL_LAUNCHER) + expect(command).toBe( + buildWindowsHookPowerShellCommand( + join(homedir(), '.orca', 'agent-hooks', 'codex-hook.cmd') + ) + ) } } ) diff --git a/src/main/codex/windows-hook-command.test.ts b/src/main/codex/windows-hook-command.test.ts new file mode 100644 index 00000000000..d1fc2c8b098 --- /dev/null +++ b/src/main/codex/windows-hook-command.test.ts @@ -0,0 +1,146 @@ +import { afterEach, describe, expect, it, vi } from 'vitest' +import { existsSync, mkdtempSync, mkdirSync, rmSync, writeFileSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { delimiter, join } from 'node:path' +import { createServer } from 'node:http' +import { runProcess } from '../../shared/child-process/run-process' +import { removeTree } from '../../shared/windows-transient-lock-removal' +import { getManagedCommand, CODEX_EVENTS } from './codex-hook-definition' +import { getManagedScript } from './codex-hook-script' +import { + createManagedCommandMatcher, + wrapWindowsCmdHookCommand +} from '../agent-hooks/installer-utils' + +vi.mock('electron', () => ({ app: { getPath: () => process.cwd() } })) +afterEach(() => vi.restoreAllMocks()) + +describe('Codex Windows hook command', () => { + it.each(['测试用户', '홍길동', '日本語', 'rené', '测试 用户', "测试 O'Brien"])( + 'uses the existing PowerShell host for %s without a second interpreter', + (profile) => { + vi.spyOn(process, 'platform', 'get').mockReturnValue('win32') + const path = `C:\\Users\\${profile}\\.orca\\agent-hooks\\codex-hook.cmd` + const command = getManagedCommand(path) + expect(command).not.toMatch(/powershell\.exe|EncodedCommand|Set-ExecutionPolicy/) + expect(command).toContain(`-LiteralPath '${path.replaceAll("'", "''")}' -PathType Leaf`) + expect(command).toContain(`[Console]::In.ReadToEnd()`) + expect(createManagedCommandMatcher('codex-hook.cmd')(command)).toBe(true) + expect(wrapWindowsCmdHookCommand(path)).toContain('-EncodedCommand') + } + ) + + it('preserves the existing ASCII command and POSIX launcher', () => { + vi.spyOn(process, 'platform', 'get').mockReturnValue('win32') + const path = 'C:\\Users\\alice\\.orca\\agent-hooks\\codex-hook.cmd' + expect(getManagedCommand(path)).toBe(path) + vi.spyOn(process, 'platform', 'get').mockReturnValue('linux') + expect(getManagedCommand('/home/测试/.orca/agent-hooks/codex-hook.sh')).toContain( + "[ -x '/home/测试/.orca/agent-hooks/codex-hook.sh' ]" + ) + }) +}) + +const windowsPowerShell = join( + process.env.SystemRoot ?? 'C:\\Windows', + 'System32', + 'WindowsPowerShell', + 'v1.0', + 'powershell.exe' +) +const windowsPwsh = (process.env.PATH ?? '') + .split(delimiter) + .map((directory) => join(directory, 'pwsh.exe')) + .find((file) => existsSync(file)) + +describe.skipIf(process.platform !== 'win32')('Codex hook delivery through PowerShell', () => { + it.each([windowsPowerShell, ...(windowsPwsh ? [windowsPwsh] : [])])( + 'delivers all eight events exactly once from a Unicode profile through %s', + async (shell) => { + const root = mkdtempSync(join(tmpdir(), 'orca-codex-cjk-')) + const home = join(root, "测试 사용자 O'Brien") + mkdirSync(home) + const scriptPath = join(home, 'codex-hook.cmd') + writeFileSync(scriptPath, getManagedScript()) + const posts: URLSearchParams[] = [] + const tokens: unknown[] = [] + const server = createServer((req, res) => { + const chunks: Buffer[] = [] + req.on('data', (chunk) => chunks.push(chunk)) + req.on('end', () => { + tokens.push(req.headers['x-orca-agent-hook-token']) + posts.push(new URLSearchParams(Buffer.concat(chunks).toString('utf8'))) + res.writeHead(204).end() + }) + }) + await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)) + const address = server.address() + if (!address || typeof address === 'string') { + throw new Error('Missing listener port') + } + const env = { + ...Object.fromEntries( + Object.entries(process.env).filter(([key]) => !key.startsWith('ORCA_')) + ), + ORCA_BACKGROUND_LAUNCH: '1', + ORCA_AGENT_HOOK_PORT: String(address.port), + ORCA_AGENT_HOOK_TOKEN: 'unicode-test-token', + ORCA_PANE_KEY: 'unicode-tab:unicode-leaf', + ORCA_WORKTREE_ID: 'C:\\folder workspace\\测试 & repo' + } + const payloads = CODEX_EVENTS.map((hook_event_name) => + JSON.stringify({ + hook_event_name, + prompt: '测试 한국어 😀 " \\ \n & %PATH% ! $HOME '.repeat(7000) + }) + ) + const invoke = (command: string, input: string) => + runProcess({ + program: shell, + args: ['-NoProfile', '-Command', command], + input, + env, + timeoutMs: 10_000, + terminationBarrier: true + }) + try { + for (let offset = 0; offset < payloads.length; offset += 4) { + const results = await Promise.all( + payloads + .slice(offset, offset + 4) + .map((payload) => invoke(getManagedCommand(scriptPath), payload)) + ) + for (const result of results) { + expect(result).toMatchObject({ code: 0, stdout: '', stderr: '', timedOut: false }) + } + } + expect(posts).toHaveLength(CODEX_EVENTS.length) + expect(tokens).toEqual(CODEX_EVENTS.map(() => 'unicode-test-token')) + expect(posts.map((post) => post.get('payload')).sort()).toEqual([...payloads].sort()) + for (const post of posts) { + expect(post.get('paneKey')).toBe(env.ORCA_PANE_KEY) + expect(post.get('worktreeId')).toBe(env.ORCA_WORKTREE_ID) + } + await new Promise((resolve) => server.close(() => resolve())) + expect(await invoke(getManagedCommand(scriptPath), payloads[0])).toMatchObject({ + code: 0, + stdout: '', + stderr: '', + timedOut: false + }) + rmSync(scriptPath) + expect(await invoke(getManagedCommand(scriptPath), payloads[0])).toMatchObject({ + code: 0, + stdout: '', + stderr: '', + timedOut: false + }) + expect(posts).toHaveLength(CODEX_EVENTS.length) + } finally { + await new Promise((resolve) => server.close(() => resolve())) + await removeTree(root) + } + }, + 30_000 + ) +}) diff --git a/src/main/codex/windows-hook-upgrade.test.ts b/src/main/codex/windows-hook-upgrade.test.ts new file mode 100644 index 00000000000..203fdfb99c2 --- /dev/null +++ b/src/main/codex/windows-hook-upgrade.test.ts @@ -0,0 +1,97 @@ +import { describe, expect, it, vi } from 'vitest' +import { mkdirSync, readFileSync, writeFileSync } from 'node:fs' +import { join } from 'node:path' +import type * as Os from 'node:os' +import { setupCodexHookHomes } from './hook-service-test-harness' + +const { getPathMock, homedirMock } = vi.hoisted(() => ({ + getPathMock: vi.fn<(name: string) => string>(), + homedirMock: vi.fn<() => string>() +})) +vi.mock('electron', () => ({ app: { getPath: getPathMock } })) +vi.mock('os', async (importOriginal) => ({ + ...(await importOriginal()), + homedir: homedirMock +})) + +import { CodexHookService } from './hook-service' +import { CODEX_EVENTS, CODEX_EVENT_LABEL, getManagedCommand } from './codex-hook-definition' +import { readHooksJson, wrapWindowsHookCommand } from '../agent-hooks/installer-utils' +import { + computeTrustedHash, + getCodexExplicitHomeHookSourcePath, + upsertHookTrustEntries +} from './config-toml-trust' + +const homes = setupCodexHookHomes(homedirMock, getPathMock) + +describe.skipIf(process.platform !== 'win32')('Unicode Windows hook upgrade', () => { + it('replaces all encoded commands and trust hashes while preserving user hooks on reinstall', async () => { + const home = join(homes.tmpHome, '测试 用户') + mkdirSync(home) + homedirMock.mockReturnValue(home) + const runtimeHome = join(homes.userDataDir, 'codex-runtime-home', 'home') + const configPath = join(runtimeHome, 'hooks.json') + const tomlPath = join(runtimeHome, 'config.toml') + const scriptPath = join(home, '.orca', 'agent-hooks', 'codex-hook.cmd') + const oldCommand = wrapWindowsHookCommand(scriptPath) + const userHome = join(home, '.codex') + mkdirSync(userHome) + const userConfig = JSON.stringify({ + hooks: { Stop: [{ hooks: [{ type: 'command', command: 'user-hook' }] }] } + }) + writeFileSync(join(userHome, 'hooks.json'), userConfig) + mkdirSync(runtimeHome, { recursive: true }) + writeFileSync( + configPath, + JSON.stringify({ + hooks: Object.fromEntries( + CODEX_EVENTS.map((event) => [ + event, + [{ hooks: [{ type: 'command', command: oldCommand, timeout: 10 }] }] + ]) + ) + }) + ) + upsertHookTrustEntries( + tomlPath, + CODEX_EVENTS.map((event) => ({ + sourcePath: getCodexExplicitHomeHookSourcePath(configPath), + eventLabel: CODEX_EVENT_LABEL[event], + groupIndex: 0, + handlerIndex: 0, + command: oldCommand, + timeoutSec: 10 + })) + ) + const service = new CodexHookService() + expect(service.getStatus().state).not.toBe('installed') + for (let pass = 0; pass < 2; pass++) { + expect((await service.install()).state).toBe('installed') + expect(service.getStatus().state).toBe('installed') + const hooks = readHooksJson(configPath)?.hooks + const trust = readFileSync(tomlPath, 'utf8') + for (const event of CODEX_EVENTS) { + const commands = hooks?.[event]?.flatMap((group) => group.hooks ?? []) ?? [] + expect( + commands.filter((hook) => hook.command === getManagedCommand(scriptPath)) + ).toHaveLength(1) + expect(commands.some((hook) => hook.command === oldCommand)).toBe(false) + const entry = { + sourcePath: getCodexExplicitHomeHookSourcePath(configPath), + eventLabel: CODEX_EVENT_LABEL[event], + groupIndex: 0, + handlerIndex: 0, + command: getManagedCommand(scriptPath), + timeoutSec: 10 + } + expect(trust).toContain(computeTrustedHash(entry)) + expect(trust).not.toContain(computeTrustedHash({ ...entry, command: oldCommand })) + } + expect( + hooks?.Stop?.some((group) => group.hooks?.some((hook) => hook.command === 'user-hook')) + ).toBe(true) + expect(readFileSync(join(userHome, 'hooks.json'), 'utf8')).toBe(userConfig) + } + }) +}) diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-forget-status.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-forget-status.test.ts index d74a729dc2f..2ff6697eae9 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-forget-status.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-forget-status.test.ts @@ -11,6 +11,8 @@ import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { AgentSessionJournalIdentity } from '../../../shared/agent-session-journal-types' +import type { AgentSessionRecord } from '../../../shared/agent-session-record' +import { makeStructuredAgentStatusSubject } from '../../../shared/agent-status-subject' import { AgentHookServer } from '../../agent-hooks/server' import type { AgentSessionJournal } from '../agent-session-journal/journal-store' import { createTrackedJournalOpener } from '../agent-session-journal/journal-store-test-open' @@ -40,6 +42,51 @@ const IDENTITY: AgentSessionJournalIdentity = { providerHandle: { kind: 'codex', threadId: SESSION } } +const SUBJECT = makeStructuredAgentStatusSubject( + { + executionHostId: 'local', + wslDistro: null, + workspaceId: IDENTITY.workspaceId, + workspaceKind: 'git-worktree' + }, + SESSION +) + +function ownerRecord(): AgentSessionRecord { + return { + schemaVersion: 2, + sessionId: SESSION, + location: { + executionHostId: 'local', + wslDistro: null, + workspaceId: IDENTITY.workspaceId, + workspaceKind: 'git-worktree' + }, + provider: 'codex', + providerHandleChain: [], + accountHome: { variable: 'CODEX_HOME', path: '/fixture/codex' }, + createdAt: 1, + updatedAt: 1, + lease: { + sessionId: SESSION, + runtimeKind: 'native', + runtimeFence: 1, + handoffStage: null, + provenHandleLinkId: null, + ownerProcess: null, + reservedSpawnToken: null, + leaseDeadlineAt: 100, + lastRenewedAt: 1, + handoffOperationId: null, + journalCheckpoint: null, + claimKeyId: 'fixture-key', + claimStatus: 'live', + unreconciled: false, + deathEvidence: null + } + } +} + let root: string const journals = createTrackedJournalOpener() @@ -58,6 +105,7 @@ async function workingSession(): Promise<{ feed: StructuredAgentSessionStatusFeed sessions: Map journal: AgentSessionJournal + records: Map }> { const journal = await journals.open({ identity: IDENTITY, journalDir: join(root, SESSION) }) await journal.appendItem( @@ -75,28 +123,41 @@ async function workingSession(): Promise<{ SESSION, { journal, - params: { location: { workspaceId: IDENTITY.workspaceId }, provider: 'codex' }, + params: { + envelope: { + sessionId: SESSION, + clientOperationId: 'fixture-attach', + expectedRuntimeFence: 1, + payloadFingerprint: 'fixture-payload' + }, + location: ownerRecord().location, + provider: 'codex', + agent: 'codex', + accountHome: ownerRecord().accountHome, + runtimeKind: 'native' + }, fence: 1, hasProviderChild: true, acquisitionGeneration: null - } as unknown as StructuredAgentSessionHostSession + } ] ]) const server = new AgentHookServer() + const records = new Map([[SESSION, ownerRecord()]]) const feed = new StructuredAgentSessionStatusFeed({ sessions, - getRecord: () => null, + getRecord: (sessionId) => records.get(sessionId) ?? null, now: () => 1, statusSink: () => ({ - publish: (summary) => server.ingestStructuredStatus(summary), - forget: (sessionId) => server.dropStructuredStatus(sessionId) + publish: (summary, subject) => server.ingestStructuredStatus(summary, subject), + forget: (subject) => server.dropStructuredStatus(subject) }) }) feed.publish(SESSION, journal) expect(server.getStatusSnapshot()).toEqual([ expect.objectContaining({ state: 'working', structuredHost: 'owned' }) ]) - return { server, feed, sessions, journal } + return { server, feed, sessions, journal, records } } function attachContext( @@ -133,6 +194,37 @@ const attachParams = { } as unknown as Parameters[2] describe('a session that leaves the host without an explicit close', () => { + it('forgets the retained exact subject after the record and live session are deleted first', async () => { + const { server, feed, sessions, records } = await workingSession() + const otherSubject = { ...SUBJECT, executionHostId: 'ssh:other-host' as const } + const original = server.getCanonicalStatusSnapshot().parents[0] + expect(original?.subject).toEqual(SUBJECT) + server.ingestStructuredStatus( + { + sessionId: SESSION, + workspaceId: IDENTITY.workspaceId, + agent: 'codex', + status: 'working', + latestPrompt: 'other host', + updatedAt: 10 + }, + otherSubject + ) + const drop = vi.spyOn(server, 'dropStructuredStatus') + const paneLookup = vi.spyOn(server, 'getStatusSnapshotForPane') + records.delete(SESSION) + sessions.delete(SESSION) + + feed.close(SESSION) + + expect(drop).toHaveBeenCalledExactlyOnceWith(SUBJECT) + expect(paneLookup).not.toHaveBeenCalled() + expect(server.getCanonicalStatusSnapshot().parents.map((row) => row.subject)).toEqual([ + otherSubject + ]) + expect(server.getStatusSnapshot()).toEqual([expect.objectContaining({ prompt: 'other host' })]) + }) + it('leaves the agent-status store with it when an attach fails', async () => { const { server, feed, sessions } = await workingSession() diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed-test-session.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed-test-session.ts new file mode 100644 index 00000000000..29e450c187d --- /dev/null +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed-test-session.ts @@ -0,0 +1,24 @@ +import type { AgentSessionJournal } from '../agent-session-journal/journal-store' + +export function indexedStatusFeedSession(session: { + journal: AgentSessionJournal + hasProviderChild?: boolean + fence?: number +}) { + return { + journal: session.journal, + fence: session.fence ?? 1, + ...(session.hasProviderChild !== undefined + ? { hasProviderChild: session.hasProviderChild } + : {}), + params: { + location: { + executionHostId: 'local' as const, + wslDistro: null, + workspaceId: 'workspace-1', + workspaceKind: 'git-worktree' as const + }, + provider: 'codex' as const + } + } +} diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed.test.ts index b085cbd3012..e5d3d16e5dd 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed.test.ts @@ -12,6 +12,7 @@ import { createClaudeJournalTranslator } from '../../claude/claude-structured-jo import { publishCodexTurnLifecycle } from '../../codex/codex-structured-journal-translation-turns' import { createDeferredStructuredAgentSessionEventSink } from './structured-agent-session-event-sink' import { createTrackedJournalOpener } from '../agent-session-journal/journal-store-test-open' +import { indexedStatusFeedSession as indexed } from './structured-agent-session-status-feed-test-session' import { StructuredAgentSessionStatusFeed, type StructuredAgentSessionStatusFeedDeps, @@ -58,21 +59,6 @@ async function openJournal(sessionId = SESSION, now?: () => number) { }) } -function indexed(session: { - journal: Awaited> - hasProviderChild?: boolean - fence?: number -}) { - return { - journal: session.journal, - fence: session.fence ?? 1, - ...(session.hasProviderChild !== undefined - ? { hasProviderChild: session.hasProviderChild } - : {}), - params: { location: { workspaceId: 'workspace-1' }, provider: 'codex' as const } - } -} - function feedFor( sessions: Map< string, @@ -782,7 +768,7 @@ describe('StructuredAgentSessionStatusFeed', () => { describe('the status sink sees the roster the broadcast cache deliberately lacks', () => { function sinkFor() { const published: AgentSessionStatusSummary[] = [] - const forgotten: string[] = [] + const forgotten: Parameters[0][] = [] const sink: StructuredAgentSessionStatusSink = { publish: (summary) => published.push(summary), forget: (sessionId) => forgotten.push(sessionId) @@ -818,7 +804,16 @@ describe('the status sink sees the roster the broadcast cache deliberately lacks // Exactly what `close` does after eviction: the cache keeps the projection, the sink does not. sessions.delete(SESSION) feed.forget(SESSION) - expect(forgotten).toEqual([SESSION]) + expect(forgotten).toEqual([ + { + kind: 'structured-session', + sessionId: SESSION, + executionHostId: 'local', + wslDistro: null, + workspaceId: 'workspace-1', + workspaceKind: 'git-worktree' + } + ]) const late: AgentSessionStatusEvent[] = [] feed.subscribe({ id: 'list-2', emit: (event) => late.push(event) }) expect(late).toEqual([ diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed.ts index 220a8116160..cecd5455ca7 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-status-feed.ts @@ -23,6 +23,12 @@ import { import { projectStructuredAgentSessionStatusSummary } from '../../../shared/structured-agent-session-projection' import type { AgentSessionJournal } from '../agent-session-journal/journal-store' import { structuredAgentSessionProviderSessionMetadata } from './structured-agent-session-history-result' +import { + StructuredAgentSessionStatusOwnership, + type StructuredAgentSessionStatusSink +} from './structured-agent-session-status-ownership' + +export type { StructuredAgentSessionStatusSink } from './structured-agent-session-status-ownership' export type StructuredAgentSessionStatusSubscriber = { id: string @@ -31,19 +37,11 @@ export type StructuredAgentSessionStatusSubscriber = { type StatusFeedSession = { journal: AgentSessionJournal - params: { location: { workspaceId: string }; provider: AgentSessionRecord['provider'] } + params: { location: AgentSessionRecord['location']; provider: AgentSessionRecord['provider'] } hasProviderChild?: boolean fence?: number } -/** Where the host's projections land for readers that see every agent alike (`worktree ps`, - * mobile, the hook store's own fanout). `forget` is the roster edge the broadcast cache - * deliberately never has. */ -export type StructuredAgentSessionStatusSink = { - publish: (summary: AgentSessionStatusSummary) => void - forget: (sessionId: string) => void -} - export type StructuredAgentSessionStatusFeedDeps = { sessions: ReadonlyMap getRecord: (sessionId: string) => AgentSessionRecord | null @@ -108,6 +106,9 @@ export function createStructuredAgentSessionHostStatusFeed(args: { } export class StructuredAgentSessionStatusFeed { + private readonly ownership = new StructuredAgentSessionStatusOwnership(() => + this.deps.statusSink?.() + ) private readonly subscribers = new Map() private readonly published = new Map() // Task progress must not sort and scan an unchanged conversation. Journal identity owns cleanup. @@ -146,7 +147,7 @@ export class StructuredAgentSessionStatusFeed { /** The sink lists what is running; a forgotten session must not be in it. */ forget(sessionId: string): void { try { - this.deps.statusSink?.()?.forget(sessionId) + this.ownership.forget(sessionId) } catch (error) { console.warn('[structured-session-status] status sink forget failed', error) } @@ -173,11 +174,11 @@ export class StructuredAgentSessionStatusFeed { } const { hostExecutionOwned: _hostExecutionOwned, ...retained } = previous this.published.set(sessionId, retained) + this.sink(retained) this.broadcast({ type: 'status', session: retained }) - this.sink(retained) } /** Re-projects one session after its journal changed; equal projections are not re-sent. */ @@ -189,11 +190,14 @@ export class StructuredAgentSessionStatusFeed { const summary = this.summaryFor(sessionId, session, journal ?? session.journal) const previous = this.published.get(sessionId) if (previous && summariesEqual(previous, summary)) { + if (!this.ownership.matchesLocation(sessionId, session.params.location)) { + this.sink(summary, session.params.location) + } return } this.published.set(sessionId, summary) + this.sink(summary, session.params.location) this.broadcast({ type: 'status', session: summary }) - this.sink(summary) try { this.deps.onStatusChanged?.(summary, { replay: options?.replay === true }) } catch (error) { @@ -262,9 +266,12 @@ export class StructuredAgentSessionStatusFeed { } /** A failing sink must never cost the subscribers their status event. */ - private sink(summary: AgentSessionStatusSummary): void { + private sink( + summary: AgentSessionStatusSummary, + location?: AgentSessionRecord['location'] + ): void { try { - this.deps.statusSink?.()?.publish(summary) + this.ownership.publish(summary, location) } catch (error) { console.warn('[structured-session-status] status sink publish failed', error) } diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-status-ownership.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-status-ownership.test.ts new file mode 100644 index 00000000000..7e9e6da84a3 --- /dev/null +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-status-ownership.test.ts @@ -0,0 +1,97 @@ +import { describe, expect, it, vi } from 'vitest' +import type { AgentSessionExecutionLocation } from '../../../shared/agent-session-record' +import type { AgentSessionStatusSummary } from '../../../shared/agent-session-wire' +import { makeStructuredAgentStatusSubject } from '../../../shared/agent-status-subject' +import { StructuredAgentSessionStatusOwnership } from './structured-agent-session-status-ownership' + +const location: AgentSessionExecutionLocation = { + executionHostId: 'local', + wslDistro: null, + workspaceId: 'folder-workspace', + workspaceKind: 'folder' +} +const summary: AgentSessionStatusSummary = { + sessionId: 'structured-session', + workspaceId: location.workspaceId, + agent: 'codex', + status: 'working', + latestPrompt: 'fixture', + updatedAt: 100 +} + +describe('structured status owner address retention', () => { + it('retains scope through record deletion and does not resurrect after forget', () => { + const sink = { publish: vi.fn(), forget: vi.fn() } + const owner = new StructuredAgentSessionStatusOwnership(() => sink) + const subject = makeStructuredAgentStatusSubject(location, summary.sessionId) + owner.publish(summary, location) + owner.publish({ ...summary, hostExecutionOwned: undefined }) + expect(sink.publish).toHaveBeenLastCalledWith(summary, subject) + owner.forget(summary.sessionId) + expect(sink.forget).toHaveBeenCalledExactlyOnceWith(subject) + owner.publish(summary) + owner.forget(summary.sessionId) + expect(sink.publish).toHaveBeenCalledTimes(2) + expect(sink.forget).toHaveBeenCalledOnce() + }) + + it('forgets the old exact scope before publishing a trusted location change', () => { + const sink = { publish: vi.fn(), forget: vi.fn() } + const owner = new StructuredAgentSessionStatusOwnership(() => sink) + owner.publish(summary, location) + const replacement = { ...location, executionHostId: 'ssh:second-host' as const } + owner.publish(summary, replacement) + expect(sink.forget).toHaveBeenCalledExactlyOnceWith( + makeStructuredAgentStatusSubject(location, summary.sessionId) + ) + expect(sink.forget.mock.invocationCallOrder[0]).toBeLessThan( + sink.publish.mock.invocationCallOrder[1] + ) + owner.forget(summary.sessionId) + expect(sink.forget).toHaveBeenLastCalledWith( + makeStructuredAgentStatusSubject(replacement, summary.sessionId) + ) + }) + + it('does not report a throwing publication as an owned location', () => { + const sink = { + publish: vi.fn().mockImplementationOnce(() => { + throw new Error('store down') + }), + forget: vi.fn() + } + const owner = new StructuredAgentSessionStatusOwnership(() => sink) + expect(() => owner.publish(summary, location)).toThrow('store down') + // The feed skips an unchanged re-projection only when the location already matches. Reporting a + // match here would strand the row: the publish never landed and nothing else re-offers it. + expect(owner.matchesLocation(summary.sessionId, location)).toBe(false) + owner.publish(summary, location) + expect(sink.publish).toHaveBeenCalledTimes(2) + expect(owner.matchesLocation(summary.sessionId, location)).toBe(true) + }) + + it('keeps the owner address when a downstream publication observer throws', () => { + const sink = { + publish: vi.fn(() => { + throw new Error('observer failed') + }), + forget: vi.fn() + } + const owner = new StructuredAgentSessionStatusOwnership(() => sink) + expect(() => owner.publish(summary, location)).toThrow('observer failed') + owner.forget(summary.sessionId) + expect(sink.forget).toHaveBeenCalledExactlyOnceWith( + makeStructuredAgentStatusSubject(location, summary.sessionId) + ) + }) + + it('does not fabricate location for an unknown session or an unavailable sink', () => { + const sink = { publish: vi.fn(), forget: vi.fn() } + const owner = new StructuredAgentSessionStatusOwnership(() => sink) + owner.publish(summary) + expect(sink.publish).not.toHaveBeenCalled() + const unavailable = new StructuredAgentSessionStatusOwnership(() => undefined) + expect(() => unavailable.publish(summary, location)).not.toThrow() + expect(() => unavailable.forget(summary.sessionId)).not.toThrow() + }) +}) diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-status-ownership.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-status-ownership.ts new file mode 100644 index 00000000000..088879f8ddc --- /dev/null +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-status-ownership.ts @@ -0,0 +1,75 @@ +import type { AgentSessionExecutionLocation } from '../../../shared/agent-session-record' +import type { AgentSessionStatusSummary } from '../../../shared/agent-session-wire' +import { + parseAgentStatusSubject, + serializeAgentStatusSubject, + type AgentStatusStructuredSessionSubject +} from '../../../shared/agent-status-subject' + +export type StructuredAgentSessionStatusSink = { + publish: ( + summary: AgentSessionStatusSummary, + subject: AgentStatusStructuredSessionSubject + ) => void + forget: (subject: AgentStatusStructuredSessionSubject) => void +} + +/** Retain the owner address because record removal may precede the final status callback. */ +export class StructuredAgentSessionStatusOwnership { + private readonly subjects = new Map() + // Why separate from `subjects`: the address must survive a throwing publish so teardown can still + // forget a row that did land, but "we hold an address" is not evidence the row is there. Only a + // publish that returned proves that, and only that proof may suppress the re-offer below. + private readonly landed = new Set() + + constructor(private readonly sink: () => StructuredAgentSessionStatusSink | undefined) {} + + matchesLocation(sessionId: string, location: AgentSessionExecutionLocation): boolean { + const subject = this.subjects.get(sessionId) + return ( + this.landed.has(sessionId) && + subject?.executionHostId === location.executionHostId && + subject.wslDistro === location.wslDistro && + subject.workspaceId === location.workspaceId && + subject.workspaceKind === location.workspaceKind + ) + } + + publish(summary: AgentSessionStatusSummary, location?: AgentSessionExecutionLocation): void { + const sink = this.sink() + if (!sink || (!location && !this.subjects.has(summary.sessionId))) { + return + } + const subject = location + ? parseAgentStatusSubject({ + ...location, + kind: 'structured-session', + sessionId: summary.sessionId + }) + : this.subjects.get(summary.sessionId) + if (!subject || subject.kind !== 'structured-session') { + throw new Error('Structured status requires its full trusted execution location') + } + const previous = this.subjects.get(summary.sessionId) + if ( + previous && + serializeAgentStatusSubject(previous) !== serializeAgentStatusSubject(subject) + ) { + sink.forget(previous) + } + this.subjects.set(summary.sessionId, subject) + this.landed.delete(summary.sessionId) + sink.publish(summary, subject) + this.landed.add(summary.sessionId) + } + + forget(sessionId: string): void { + const subject = this.subjects.get(sessionId) + if (!subject) { + return + } + this.landed.delete(sessionId) + this.sink()?.forget(subject) + this.subjects.delete(sessionId) + } +} diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-status-reentry.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-status-reentry.test.ts new file mode 100644 index 00000000000..57218d0f4bd --- /dev/null +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-status-reentry.test.ts @@ -0,0 +1,113 @@ +import { mkdtemp, rm } from 'node:fs/promises' +import { tmpdir } from 'node:os' +import { join } from 'node:path' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import type { AgentSessionExecutionLocation } from '../../../shared/agent-session-record' +import type { AgentSessionJournal } from '../agent-session-journal/journal-store' +import { createTrackedJournalOpener } from '../agent-session-journal/journal-store-test-open' +import { AgentHookServer } from '../../agent-hooks/server' +import { indexedStatusFeedSession } from './structured-agent-session-status-feed-test-session' +import { + StructuredAgentSessionStatusFeed, + type StructuredAgentSessionStatusSink +} from './structured-agent-session-status-feed' + +const SESSION = 'reenter-session' +const journals = createTrackedJournalOpener() +let root: string + +beforeEach(async () => { + root = await mkdtemp(join(tmpdir(), 'orca-status-reentry-')) +}) + +afterEach(async () => { + await journals.closeAll() + await rm(root, { recursive: true, force: true }) +}) + +async function openJournal(): Promise { + const journal = await journals.open({ + identity: { + sessionId: SESSION, + workspaceId: 'workspace-1', + hostId: 'local', + agent: 'codex', + providerHandle: { kind: 'codex', threadId: 'thread-1' } + }, + journalDir: join(root, SESSION) + }) + await journal.appendItem( + { provider: 'codex', threadId: 'thread-1', turnId: 'turn-1', ordinal: 1 }, + { kind: 'message', role: 'user', blocks: [{ type: 'text', text: 'hello' }] }, + { fence: 1 } + ) + return journal +} + +async function createFeed() { + const journal = await openJournal() + const session = indexedStatusFeedSession({ journal }) + const sessions = new Map< + string, + { + journal: AgentSessionJournal + params: { location: AgentSessionExecutionLocation; provider: 'codex' } + } + >([[SESSION, session]]) + const server = new AgentHookServer() + const statusSink: StructuredAgentSessionStatusSink = { + publish: vi.fn((summary, subject) => server.ingestStructuredStatus(summary, subject)), + forget: vi.fn((subject) => server.dropStructuredStatus(subject)) + } + const feed = new StructuredAgentSessionStatusFeed({ + sessions, + getRecord: () => null, + now: () => 1_000, + statusSink: () => statusSink + }) + feed.publish(SESSION) + expect(server.getCanonicalStatusSnapshot().parents).toHaveLength(1) + return { session, sessions, server, statusSink, feed } +} + +describe('structured status canonical owner re-entry', () => { + it('re-admits an unchanged session after its exact subject was forgotten', async () => { + const { session, sessions, server, statusSink, feed } = await createFeed() + sessions.delete(SESSION) + feed.forget(SESSION) + expect(server.getCanonicalStatusSnapshot().parents).toEqual([]) + const publishedBeforeReentry = vi.mocked(statusSink.publish).mock.calls.length + sessions.set(SESSION, session) + + feed.publish(SESSION) + + expect(statusSink.publish).toHaveBeenCalledTimes(publishedBeforeReentry + 1) + expect(server.getCanonicalStatusSnapshot().parents).toHaveLength(1) + expect(server.getStatusSnapshot()).toEqual([ + expect.objectContaining({ paneKey: expect.any(String), prompt: 'hello' }) + ]) + }) + + it('moves an unchanged projection to a new trusted execution scope', async () => { + const { session, sessions, server, statusSink, feed } = await createFeed() + sessions.set(SESSION, { + ...session, + params: { + ...session.params, + location: { ...session.params.location, executionHostId: 'ssh:second-host' } + } + }) + + feed.publish(SESSION) + + expect(statusSink.forget).toHaveBeenCalledExactlyOnceWith( + expect.objectContaining({ executionHostId: 'local', sessionId: SESSION }) + ) + expect(statusSink.publish).toHaveBeenCalledTimes(2) + expect(server.getCanonicalStatusSnapshot().parents).toEqual([ + expect.objectContaining({ + subject: expect.objectContaining({ executionHostId: 'ssh:second-host' }) + }) + ]) + }) +}) diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-subscribers.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-subscribers.test.ts index 4f22b56397c..3827c5c1078 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-subscribers.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-subscribers.test.ts @@ -213,7 +213,18 @@ describe('AgentSessionSubscribers', () => { sessions: new Map([ [ SESSION, - { journal, params: { location: { workspaceId: 'workspace-1' }, provider: 'codex' } } + { + journal, + params: { + location: { + executionHostId: 'local', + wslDistro: null, + workspaceId: 'workspace-1', + workspaceKind: 'git-worktree' + }, + provider: 'codex' + } + } ] ]), getRecord: () => null, diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-surface-lifetime.test.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-surface-lifetime.test.ts index 11b63781544..e26e65d1db4 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-surface-lifetime.test.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-surface-lifetime.test.ts @@ -367,7 +367,14 @@ describe('a chat that closes', () => { claimStatus: 'released', ownerProcess: null }) - expect(statusSink.forget).toHaveBeenCalledWith(SESSION) + expect(statusSink.forget).toHaveBeenCalledWith({ + kind: 'structured-session', + sessionId: SESSION, + executionHostId: 'local', + wslDistro: null, + workspaceId: 'workspace-1', + workspaceKind: 'git-worktree' + }) await expect(host.close(SESSION)).resolves.toBeUndefined() expect(host.hasSession(SESSION)).toBe(false) diff --git a/src/main/orcad/orcad-entry.ts b/src/main/orcad/orcad-entry.ts index 3dc84906c99..c736f4f4b4c 100644 --- a/src/main/orcad/orcad-entry.ts +++ b/src/main/orcad/orcad-entry.ts @@ -236,8 +236,8 @@ async function startOrcadRuntime( // read, so a row observed under one process otherwise acquires whatever process owns the pane now. readObservedAgentStatusPaneIdentity: (paneKey) => observedPaneIdentities.read(paneKey), structuredAgentStatusSink: { - publish: (summary) => agentHookServer.ingestStructuredStatus(summary), - forget: (sessionId) => agentHookServer.dropStructuredStatus(sessionId) + publish: (summary, subject) => agentHookServer.ingestStructuredStatus(summary, subject), + forget: (subject) => agentHookServer.dropStructuredStatus(subject) }, reconcileAgentStatusForEndedProcess: (paneKeys) => agentHookServer.reconcileEndedProcessForPaneKeys(paneKeys), diff --git a/src/main/runtime/orca-runtime-get-worktree-ps.ts b/src/main/runtime/orca-runtime-get-worktree-ps.ts index 3eb7a6e9401..ff110a264cd 100644 --- a/src/main/runtime/orca-runtime-get-worktree-ps.ts +++ b/src/main/runtime/orca-runtime-get-worktree-ps.ts @@ -11,7 +11,6 @@ import { } from './runtime-worktree-ps-activity' import { attachRuntimeWorktreeAgentRows } from './runtime-worktree-agent-rows' import { compareWorktreePs } from './runtime-worktree-status-projection' -import type { AgentSessionRecord } from '../../shared/agent-session-record' import type { Repo } from '../../shared/repo-types' import { enrichMissingRepoGitRemoteIdentities } from '../repo-git-remote-identity-enrichment' import { ensureStructuredAgentSessionHost as installStructuredAgentSessionHost } from './structured-agent-session-runtime' @@ -20,13 +19,9 @@ import { firstWorkRenameDeps } from '../agent-hooks/first-work-rename-runtime' import { getProfileUserDataPath } from '../orca-profiles/profile-storage-paths' import { LOCAL_EXECUTION_HOST_ID } from '../../shared/execution-host' import { buildWorktreeListingPage } from './worktree-listing-host-scope' -import { - resolveTuiAgentLaunchArgs, - resolveTuiAgentLaunchEnv -} from '../../shared/tui-agent-launch-defaults' -import { resolveLocalWindowsAgentStartupShell } from '../../shared/windows-terminal-shell' -import { resolveStartupShell, tokenizeStartupCommand } from '../../shared/tui-agent-startup-shell' -import { resolveCodexStructuredAppServerArgs } from '../codex/codex-structured-app-server-args' +import { resolveTuiAgentLaunchEnv } from '../../shared/tui-agent-launch-defaults' +import { claudeStructuredPermissionModeForSettings } from '../claude/claude-structured-permission-mode' +import { codexStructuredPermissionArgsForSettings } from '../codex/codex-structured-permission-mode' import type { StructuredAgentSessionHandoffTransport } from '../native-chat/agent-session-wire/structured-agent-session-handoff-types' import { hostname } from 'node:os' import { claudeStructuredAuthPolicyForSettings } from '../claude-accounts/claude-structured-auth-policy' @@ -153,13 +148,18 @@ export class OrcaRuntimeWithGetWorktreePs extends OrcaRuntimeWithStructuredAgent // in a plain folder lands in the folder rather than failing to resolve. resolveWorkspacePath: async (workspaceId) => (await this.resolveRuntimeFileTarget(`id:${workspaceId}`)).worktree.path, - resolveLaunchArgs: (provider) => this.resolveConfiguredStructuredLaunchArgs(provider), resolveLaunchEnvOverlay: () => resolveTuiAgentLaunchEnv('codex', this.requireStore().getSettings().agentDefaultEnv), resolveClaudeLaunchEnv: () => resolveTuiAgentLaunchEnv('claude', this.requireStore().getSettings().agentDefaultEnv), resolveClaudeAuthPolicy: () => claudeStructuredAuthPolicyForSettings(this.requireStore().getSettings()), + // Re-read per acquisition, like the auth policy above it: the Agent Permissions setting is + // the one copy of this fact, and the configured CLI arguments never reach a structured launch. + resolveClaudePermissionMode: () => + claudeStructuredPermissionModeForSettings(this.requireStore().getSettings()), + resolveCodexPermissionArgs: () => + codexStructuredPermissionArgsForSettings(this.requireStore().getSettings()), // Same gate and same settings as agentSession.createSupport, re-read on every acquisition. getClaudeManagedAccountGateSettings: () => this.requireStore().getSettings(), // Structured chat has no agent CLI hooks, so this projection is what the first-work @@ -176,47 +176,6 @@ export class OrcaRuntimeWithGetWorktreePs extends OrcaRuntimeWithStructuredAgent }) } - // Why the provider is honoured rather than assumed: Codex app-server flags are not - // Claude CLI flags, and prepending them to `claude` makes it exit on an unknown option. - protected resolveConfiguredStructuredLaunchArgs( - provider: AgentSessionRecord['provider'] - ): string[] { - if (provider === 'claude') { - return this.resolveConfiguredClaudeStructuredArgs() - } - return this.resolveConfiguredCodexStructuredArgs() - } - - protected resolveConfiguredClaudeStructuredArgs(): string[] { - const settings = this.requireStore().getSettings() - const shell = resolveStartupShell( - process.platform, - resolveLocalWindowsAgentStartupShell({ - platform: process.platform, - isRemote: false, - terminalWindowsShell: settings.terminalWindowsShell - }) - ) - const tokenized = tokenizeStartupCommand( - resolveTuiAgentLaunchArgs('claude', settings.agentDefaultArgs), - shell - ) - return tokenized.ok ? tokenized.tokens : [] - } - - protected resolveConfiguredCodexStructuredArgs(): string[] { - const settings = this.requireStore().getSettings() - const shell = resolveLocalWindowsAgentStartupShell({ - platform: process.platform, - isRemote: false, - terminalWindowsShell: settings.terminalWindowsShell - }) - return resolveCodexStructuredAppServerArgs( - resolveTuiAgentLaunchArgs('codex', settings.agentDefaultArgs), - shell ?? 'posix' - ) - } - protected createStructuredAgentSessionHandoffTransport(): StructuredAgentSessionHandoffTransport { return { hostLabel: hostname(), diff --git a/src/main/runtime/orca-runtime-structured-agent-session-launch-args.test.ts b/src/main/runtime/orca-runtime-structured-agent-session-launch-args.test.ts deleted file mode 100644 index c4333fd0a4d..00000000000 --- a/src/main/runtime/orca-runtime-structured-agent-session-launch-args.test.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { describe, expect, it, vi } from 'vitest' -import { OrcaRuntimeService } from './orca-runtime' - -type InstalledDeps = { - resolveLaunchArgs: (provider: 'claude' | 'codex') => Promise | string[] - resolveLaunchEnvOverlay: () => Record - resolveClaudeLaunchEnv?: () => Record -} - -const { installStructuredAgentSessionHost } = vi.hoisted(() => ({ - installStructuredAgentSessionHost: vi.fn(async (_deps: unknown) => ({}) as never) -})) - -vi.mock('./structured-agent-session-runtime', async (importOriginal) => ({ - ...(await importOriginal()), - ensureStructuredAgentSessionHost: installStructuredAgentSessionHost -})) - -function runtimeWith(settings: Record): OrcaRuntimeService { - return new OrcaRuntimeService({ getSettings: () => settings } as never) -} - -async function installedDeps(settings: Record): Promise { - installStructuredAgentSessionHost.mockClear() - await runtimeWith(settings).ensureStructuredAgentSessionHost() - return installStructuredAgentSessionHost.mock.calls[0]?.[0] as InstalledDeps -} - -describe('structured agent-session launch args wiring', () => { - it('resolves Claude launch args from the Claude agent defaults, not Codex flags', async () => { - const deps = await installedDeps({ - agentDefaultArgs: { - claude: '--dangerously-skip-permissions --model opus', - codex: '--dangerously-bypass-approvals-and-sandbox' - }, - agentDefaultEnv: {} - }) - - expect(await deps.resolveLaunchArgs('claude')).toEqual([ - '--dangerously-skip-permissions', - '--model', - 'opus' - ]) - }) - - it('still resolves Codex app-server args for a Codex session', async () => { - const deps = await installedDeps({ - agentDefaultArgs: { - claude: '--dangerously-skip-permissions', - codex: '--dangerously-bypass-approvals-and-sandbox' - }, - agentDefaultEnv: {} - }) - - const codexArgs = await deps.resolveLaunchArgs('codex') - expect(codexArgs).not.toContain('--dangerously-skip-permissions') - expect(codexArgs.length).toBeGreaterThan(0) - }) - - it('never lets a broken Codex args configuration block a Claude session', async () => { - const deps = await installedDeps({ - agentDefaultArgs: { claude: '--model opus', codex: '--not-a-real-codex-flag' }, - agentDefaultEnv: {} - }) - - expect(await deps.resolveLaunchArgs('claude')).toEqual(['--model', 'opus']) - expect(() => deps.resolveLaunchArgs('codex')).toThrow() - }) - - it('supplies the Claude env overlay so the launch resolver does not fall back to process.env', async () => { - const deps = await installedDeps({ - agentDefaultArgs: {}, - agentDefaultEnv: { - claude: { ORCA_CLAUDE_OVERLAY: 'claude-value' }, - codex: { ORCA_CODEX_OVERLAY: 'codex-value' } - } - }) - - expect(deps.resolveClaudeLaunchEnv).toBeTypeOf('function') - expect(deps.resolveClaudeLaunchEnv?.()).toMatchObject({ - ORCA_CLAUDE_OVERLAY: 'claude-value' - }) - expect(deps.resolveClaudeLaunchEnv?.()).not.toHaveProperty('ORCA_CODEX_OVERLAY') - expect(deps.resolveLaunchEnvOverlay()).toMatchObject({ ORCA_CODEX_OVERLAY: 'codex-value' }) - }) -}) diff --git a/src/main/runtime/orca-runtime-tests/worktree-ps-structured-host.spec.ts b/src/main/runtime/orca-runtime-tests/worktree-ps-structured-host.spec.ts index e6db4b6af0a..22a7a790ae8 100644 --- a/src/main/runtime/orca-runtime-tests/worktree-ps-structured-host.spec.ts +++ b/src/main/runtime/orca-runtime-tests/worktree-ps-structured-host.spec.ts @@ -1,3 +1,4 @@ +import { makeStructuredAgentStatusSubject } from '../../../shared/agent-status-subject' import { beforeEach, describe, expect, it, vi } from 'vitest' import { OrcaRuntimeService } from '../orca-runtime-test-mocks.spec' import { TEST_WORKTREE_ID, store } from '../orca-runtime-test-fixtures.spec' @@ -15,6 +16,15 @@ vi.mock('../../telemetry/cohort-classifier', () => ({ * green in typecheck while `orca worktree ps` and mobile's poll would list nothing. */ const SESSION = 'a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d' +const SUBJECT = makeStructuredAgentStatusSubject( + { + executionHostId: 'local', + wslDistro: null, + workspaceId: TEST_WORKTREE_ID, + workspaceKind: 'git-worktree' + }, + SESSION +) beforeEach(() => { _internals.resetCachesForTests() @@ -23,15 +33,18 @@ beforeEach(() => { describe('worktree ps reads structured sessions from the agent-status store', () => { it('lists a host-held structured session with no terminal behind it', async () => { const statusStore = new AgentHookServer() - statusStore.ingestStructuredStatus({ - sessionId: SESSION, - workspaceId: TEST_WORKTREE_ID, - agent: 'claude', - status: 'working', - hostExecutionOwned: true, - latestPrompt: 'ship the thing', - updatedAt: 1_757_030_400_000 - }) + statusStore.ingestStructuredStatus( + { + sessionId: SESSION, + workspaceId: TEST_WORKTREE_ID, + agent: 'claude', + status: 'working', + hostExecutionOwned: true, + latestPrompt: 'ship the thing', + updatedAt: 1_757_030_400_000 + }, + SUBJECT + ) const getAgentStatusSnapshot = vi.fn(() => statusStore.getStatusSnapshot()) const { worktrees } = await new OrcaRuntimeService(store, undefined, { @@ -53,15 +66,18 @@ describe('worktree ps reads structured sessions from the agent-status store', () it('lists nothing once the host has dropped the session', async () => { const statusStore = new AgentHookServer() - statusStore.ingestStructuredStatus({ - sessionId: SESSION, - workspaceId: TEST_WORKTREE_ID, - agent: 'claude', - status: 'attention', - latestPrompt: 'rm the branch', - updatedAt: 1_757_030_400_000 - }) - statusStore.dropStructuredStatus(SESSION) + statusStore.ingestStructuredStatus( + { + sessionId: SESSION, + workspaceId: TEST_WORKTREE_ID, + agent: 'claude', + status: 'attention', + latestPrompt: 'rm the branch', + updatedAt: 1_757_030_400_000 + }, + SUBJECT + ) + statusStore.dropStructuredStatus(SUBJECT) const { worktrees } = await new OrcaRuntimeService(store, undefined, { getAgentStatusSnapshot: () => statusStore.getStatusSnapshot() diff --git a/src/main/runtime/rpc/methods/orchestration-worker-start-mode.test.ts b/src/main/runtime/rpc/methods/orchestration-worker-start-mode.test.ts index b937f6febd2..ffdb87964bd 100644 --- a/src/main/runtime/rpc/methods/orchestration-worker-start-mode.test.ts +++ b/src/main/runtime/rpc/methods/orchestration-worker-start-mode.test.ts @@ -97,7 +97,7 @@ describe('a structured default this dispatch cannot honour', () => { decide({ settings: { ...STRUCTURED_DEFAULT, agentCmdOverrides: { claude: 'claude-wrapper' } } }) - ).toMatchObject({ mode: 'terminal', reason: 'tui_launch_customization' }) + ).toMatchObject({ mode: 'terminal', reason: 'tui_launch_command' }) }) // Neither provider is refused here on the client's platform: only the executing host knows diff --git a/src/main/runtime/rpc/methods/orchestration-worker-start-receipt-wording.test.ts b/src/main/runtime/rpc/methods/orchestration-worker-start-receipt-wording.test.ts index 7e735fa65fb..5e84ea1fae7 100644 --- a/src/main/runtime/rpc/methods/orchestration-worker-start-receipt-wording.test.ts +++ b/src/main/runtime/rpc/methods/orchestration-worker-start-receipt-wording.test.ts @@ -87,19 +87,17 @@ describe('worker-start mode receipt wording', () => { }) }) - it('names a custom TUI launch as the downgrade', () => { + it('names a custom TUI launch command as the downgrade', () => { expect( decideWorkerStartMode({ params: { agent: 'claude' }, - settings: { ...STRUCTURED_PREFERENCE, agentDefaultArgs: { claude: '--custom' } } + settings: { ...STRUCTURED_PREFERENCE, agentCmdOverrides: { claude: 'claude-wrapper' } } }) ).toEqual({ mode: 'terminal', preferred: 'structured', - reason: 'tui_launch_customization', - detail: downgradeSentence( - 'this agent has a custom launch command, arguments or environment that only a terminal applies' - ) + reason: 'tui_launch_command', + detail: downgradeSentence('this agent has a custom launch command that only a terminal runs') }) }) diff --git a/src/main/runtime/rpc/methods/structured-agent-session-rpc.test-fixture.ts b/src/main/runtime/rpc/methods/structured-agent-session-rpc.test-fixture.ts index b8fe9d5b01b..aad992d4926 100644 --- a/src/main/runtime/rpc/methods/structured-agent-session-rpc.test-fixture.ts +++ b/src/main/runtime/rpc/methods/structured-agent-session-rpc.test-fixture.ts @@ -104,7 +104,15 @@ function statusFeed(): StructuredAgentSessionStatusFeed { lastActivityAt: () => 2, snapshot: () => ({ items: STATUS_ITEMS }) } as unknown as AgentSessionJournal, - params: { location: { workspaceId: 'workspace-1' }, provider: 'codex' as const } + params: { + location: { + executionHostId: 'local', + wslDistro: null, + workspaceId: 'workspace-1', + workspaceKind: 'git-worktree' as const + }, + provider: 'codex' as const + } } ] ]), diff --git a/src/main/runtime/runtime-worktree-agent-rows-structured.test.ts b/src/main/runtime/runtime-worktree-agent-rows-structured.test.ts index 5b517f1bfc8..01c72619830 100644 --- a/src/main/runtime/runtime-worktree-agent-rows-structured.test.ts +++ b/src/main/runtime/runtime-worktree-agent-rows-structured.test.ts @@ -1,3 +1,4 @@ +import { makeStructuredAgentStatusSubject } from '../../shared/agent-status-subject' import { collectRuntimeWorktreeAgentSources } from './runtime-worktree-agent-sources' import { beforeEach, describe, expect, it, vi } from 'vitest' import { attachRuntimeWorktreeAgentRows } from './runtime-worktree-agent-rows' @@ -21,6 +22,15 @@ vi.mock('../telemetry/cohort-classifier', () => ({ */ const WORKTREE_ID = 'repo-1::/workspace/app' const SESSION = 'a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d' +const SUBJECT = makeStructuredAgentStatusSubject( + { + executionHostId: 'local', + wslDistro: null, + workspaceId: WORKTREE_ID, + workspaceKind: 'git-worktree' + }, + SESSION +) function summary(over: Partial = {}): AgentSessionStatusSummary { return { @@ -38,7 +48,7 @@ function summary(over: Partial = {}): AgentSessionSta function attach(summaries: AgentSessionStatusSummary[]): RuntimeWorktreePsSummary { const store = new AgentHookServer() for (const entry of summaries) { - store.ingestStructuredStatus(entry) + store.ingestStructuredStatus(entry, SUBJECT) } const row = { worktreeId: WORKTREE_ID, diff --git a/src/main/runtime/runtime-worktree-structured-agent-rows-liveness.test.ts b/src/main/runtime/runtime-worktree-structured-agent-rows-liveness.test.ts index afe5a3a2a71..b1e43a9025d 100644 --- a/src/main/runtime/runtime-worktree-structured-agent-rows-liveness.test.ts +++ b/src/main/runtime/runtime-worktree-structured-agent-rows-liveness.test.ts @@ -1,3 +1,4 @@ +import { makeStructuredAgentStatusSubject } from '../../shared/agent-status-subject' import { collectRuntimeWorktreeAgentSources } from './runtime-worktree-agent-sources' import { mkdtemp, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' @@ -26,6 +27,15 @@ vi.mock('../telemetry/cohort-classifier', () => ({ */ const WORKTREE_ID = 'repo-1::/workspace/app' const SESSION = 'a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d' +const SUBJECT = makeStructuredAgentStatusSubject( + { + executionHostId: 'local', + wslDistro: null, + workspaceId: WORKTREE_ID, + workspaceKind: 'git-worktree' + }, + SESSION +) const IDENTITY = { provider: 'codex', threadId: 'thread-1', @@ -80,7 +90,15 @@ async function awaitingApproval() { { journal, hasProviderChild: true, - params: { location: { workspaceId: WORKTREE_ID }, provider: 'codex' as const } + params: { + location: { + executionHostId: 'local' as const, + wslDistro: null, + workspaceId: WORKTREE_ID, + workspaceKind: 'git-worktree' as const + }, + provider: 'codex' as const + } } ] ]) @@ -91,9 +109,9 @@ async function awaitingApproval() { getRecord: () => null, now: () => Date.now(), statusSink: () => ({ - publish: (summary) => { + publish: (summary, subject) => { published.push(summary) - store.ingestStructuredStatus(summary) + store.ingestStructuredStatus(summary, subject) }, forget: (sessionId) => store.dropStructuredStatus(sessionId) }) @@ -156,7 +174,7 @@ describe('worktree ps and a closed structured chat', () => { updatedAt: Date.now() - 30 * 60 * 1000 - 1, status: 'working' as const } - store.ingestStructuredStatus(aged) + store.ingestStructuredStatus(aged, SUBJECT) const row = worktreeFor(store) expect(row.agents).toHaveLength(1) expect(row.agents[0]?.state).toBe('working') @@ -171,7 +189,7 @@ describe('worktree ps and a closed structured chat', () => { hostExecutionOwned: true as const, updatedAt: Date.now() - 30 * 60 * 1000 - 1 } - store.ingestStructuredStatus(aged) + store.ingestStructuredStatus(aged, SUBJECT) const row = worktreeFor(store) expect(row.agents).toHaveLength(1) expect(row.agents[0]?.state).toBe('blocked') @@ -182,7 +200,7 @@ describe('worktree ps and a closed structured chat', () => { it('lets an aged approval decay once the host no longer owns the child', async () => { const { store, published } = await awaitingApproval() const { hostExecutionOwned: _owned, ...held } = published.at(-1)! - store.ingestStructuredStatus({ ...held, updatedAt: Date.now() - 30 * 60 * 1000 - 1 }) + store.ingestStructuredStatus({ ...held, updatedAt: Date.now() - 30 * 60 * 1000 - 1 }, SUBJECT) const row = worktreeFor(store) expect(row.agents).toHaveLength(1) expect(row.agents[0]?.state).toBe('blocked') diff --git a/src/main/runtime/structured-agent-session-runtime.ts b/src/main/runtime/structured-agent-session-runtime.ts index 92643fcae57..4f2e75bd7b6 100644 --- a/src/main/runtime/structured-agent-session-runtime.ts +++ b/src/main/runtime/structured-agent-session-runtime.ts @@ -7,6 +7,7 @@ // reads is module-level for the same reason the registry is — the runtime // service is already far past its size budget. +import type { PermissionMode } from '@anthropic-ai/claude-agent-sdk' import { existsSync } from 'node:fs' import { join } from 'node:path' import type { AgentSessionRecord } from '../../shared/agent-session-record' @@ -74,6 +75,10 @@ export type StructuredAgentSessionRuntimeDeps = { resolveClaudeLaunchEnv?: () => Promise> | Record /** Required, and asserted at install time — an absent policy must not degrade to a guess. */ resolveClaudeAuthPolicy: () => Promise | ClaudeStructuredAuthPolicy + /** The user's Agent Permissions setting for Claude; absent means prompting. */ + resolveClaudePermissionMode?: () => Promise | PermissionMode + /** The same setting for Codex, as app-server argv; absent means its approval prompts stay on. */ + resolveCodexPermissionArgs?: () => string[] /** Raw settings getter; the reader that fails closed around it is built here, in checked code. */ getClaudeManagedAccountGateSettings?: () => ClaudeManagedAccountGateSettings resolveEnvironment?: () => Promise @@ -261,6 +266,9 @@ async function install(deps: StructuredAgentSessionRuntimeDeps): Promise diff --git a/src/main/runtime/structured-claude-runtime-adapter.ts b/src/main/runtime/structured-claude-runtime-adapter.ts index 7e743220741..9a070db60af 100644 --- a/src/main/runtime/structured-claude-runtime-adapter.ts +++ b/src/main/runtime/structured-claude-runtime-adapter.ts @@ -1,3 +1,4 @@ +import type { PermissionMode } from '@anthropic-ai/claude-agent-sdk' import { proveClaudeTranscriptBranch } from '../claude/claude-transcript-branch-proof' import type { AgentSessionRecord } from '../../shared/agent-session-record' import type { AgentSessionBackgroundTaskState } from '../../shared/agent-session-wire' @@ -27,6 +28,8 @@ export type StructuredClaudeRuntimeAdapterDeps = { /** Managed-account auth state for a Claude launch, mirroring the terminal preflight. * Required: an absent policy is what silently under-strips. */ resolveClaudeAuthPolicy: () => Promise | ClaudeStructuredAuthPolicy + /** The user's Agent Permissions setting for Claude; absent means prompting. */ + resolveClaudePermissionMode?: () => Promise | PermissionMode readClaudeManagedAccountGate?: () => ClaudeManagedAccountGateSettings | null openClaudeConnection?: ClaudeStructuredSessionAdapterDeps['openConnection'] readProcessStartTime?: ClaudeStructuredSessionAdapterDeps['readProcessStartTime'] @@ -49,6 +52,9 @@ export function createStructuredClaudeRuntimeAdapter( resolveCommand: deps.resolveClaudeCommand ?? resolveClaudeCommand, ...(deps.resolveClaudeLaunchEnv ? { resolveEnv: deps.resolveClaudeLaunchEnv } : {}), resolveAuthPolicy: deps.resolveClaudeAuthPolicy, + ...(deps.resolveClaudePermissionMode + ? { resolvePermissionMode: deps.resolveClaudePermissionMode } + : {}), ...(deps.readClaudeManagedAccountGate ? { readManagedAccountGate: deps.readClaudeManagedAccountGate } : {}) diff --git a/src/main/runtime/structured-worker-identity.test.ts b/src/main/runtime/structured-worker-identity.test.ts index 2a66536291a..670859444c9 100644 --- a/src/main/runtime/structured-worker-identity.test.ts +++ b/src/main/runtime/structured-worker-identity.test.ts @@ -149,6 +149,15 @@ describe('structured worker identity', () => { expect(parsed!.tabId).toBe(`structured-agent-session-${SESSION_ID}`) }) + it('rejects a public status pane even though its leaf is a valid terminal UUID', () => { + const paneKey = structuredAgentSessionPaneKey( + `structured-agent-session-${SESSION_ID}`, + SESSION_ID + ) + expect(isTerminalLeafId(parsePaneKey(paneKey)!.leafId)).toBe(true) + expect(structuredWorkerPaneKeyBelongsToSession(paneKey, SESSION_ID)).toBe(false) + }) + it('round-trips the session id through the process incarnation', () => { const incarnation = structuredWorkerProcessIncarnation(SESSION_ID) expect(sessionIdFromStructuredWorkerIncarnation(incarnation)).toBe(SESSION_ID) @@ -232,6 +241,24 @@ describe('structured worker identity registry', () => { ).toBeNull() }) + it('cannot rehydrate a worker credential from a public status subject', () => { + const handle = mintStructuredWorkerHandle() + expect( + registry.rehydrate({ + terminal_handle: handle, + pane_key: structuredAgentSessionPaneKey( + `structured-agent-session-${SESSION_ID}`, + SESSION_ID + ), + process_incarnation: structuredWorkerProcessIncarnation(SESSION_ID), + worktree_id: 'wt_1', + host_scope: JSON.stringify({ kind: 'local', hostId: 'local' }) + }) + ).toBeNull() + expect(registry.get(handle)).toBeNull() + expect(registry.getBySessionId(SESSION_ID)).toBeNull() + }) + it('forgets both indexes', () => { const handle = mintStructuredWorkerHandle() registry.register({ diff --git a/src/main/startup/main-process-runtime-service.ts b/src/main/startup/main-process-runtime-service.ts index a0a65d54e7a..6d7ba1fe23a 100644 --- a/src/main/startup/main-process-runtime-service.ts +++ b/src/main/startup/main-process-runtime-service.ts @@ -92,8 +92,8 @@ export function initializeMainProcessRuntime(): OrcaRuntimeService { // Why: structured chats have no hooks, so the host writes their projections here itself; the // snapshot above then lists them for the CLI and mobile without a second store. structuredAgentStatusSink: { - publish: (summary) => agentHookServer.ingestStructuredStatus(summary), - forget: (sessionId) => agentHookServer.dropStructuredStatus(sessionId) + publish: (summary, subject) => agentHookServer.ingestStructuredStatus(summary, subject), + forget: (subject) => agentHookServer.dropStructuredStatus(subject) }, // Why captured rather than resolved at read: the fleet snapshot remints cached rows on every // read, so a row observed under one process otherwise acquires whatever the pane owns now. diff --git a/src/main/window/main-window-state-lifecycle.ts b/src/main/window/main-window-state-lifecycle.ts index 443534d8352..2a5345bef50 100644 --- a/src/main/window/main-window-state-lifecycle.ts +++ b/src/main/window/main-window-state-lifecycle.ts @@ -1,5 +1,6 @@ import { app, type BrowserWindow } from 'electron' import type { Store } from '../persistence' +import { uiZoomFactorFromLevel } from '../../shared/ui-zoom-level' import { isWindowlessLaunch, showWindowWithoutStealingFocus } from './foreground-activation-policy' import { MIN_HEIGHT, MIN_WIDTH, syncTrafficLightPosition } from './main-window-visual-lifecycle' @@ -23,7 +24,7 @@ export function installMainWindowStateLifecycle(args: { mainWindow.webContents.setZoomLevel(level) // Why: native traffic lights don't scale with CSS zoom; reposition on startup to stay aligned with the zoomed titlebar. if (process.platform === 'darwin') { - syncTrafficLightPosition(mainWindow, 1.2 ** level) + syncTrafficLightPosition(mainWindow, uiZoomFactorFromLevel(level)) } }) diff --git a/src/relay/agent-status-store-relay-context.test.ts b/src/relay/agent-status-store-relay-context.test.ts index 92319a2e644..853722f3cf0 100644 --- a/src/relay/agent-status-store-relay-context.test.ts +++ b/src/relay/agent-status-store-relay-context.test.ts @@ -10,10 +10,14 @@ const SHARED_CORE_FILES = [ 'agent-status-child-work-admission.ts', 'agent-status-child-work-admission-core.ts', 'agent-status-child-work-admission-operations.ts', + 'agent-status-child-work-resume.ts', 'agent-status-child-work-alias.ts', + 'agent-status-child-work-binding.ts', 'agent-status-child-work-freshness.ts', 'agent-status-child-work-projection.ts', 'agent-status-store.ts', + 'agent-status-store-byte-budget.ts', + 'agent-status-store-child-queries.ts', 'agent-status-store-codec.ts', 'agent-status-store-mutation.ts', 'agent-status-store-contract.ts', diff --git a/src/renderer/src/assets/main.css b/src/renderer/src/assets/main.css index 6987df890a7..5278f980fd8 100644 --- a/src/renderer/src/assets/main.css +++ b/src/renderer/src/assets/main.css @@ -856,6 +856,14 @@ html.native-shell .app-layout { flex-shrink: 0; } +/* Why: a viewport preset is a window-DIP size that CDP emulates on the guest, but + UI zoom redefines this renderer's CSS px. Dividing by the live zoom factor keeps + the host box exactly as wide as the emulated page (STA-7568). */ +.browser-page-preset-viewport { + width: calc(var(--browser-page-viewport-width) / var(--ui-zoom-factor, 1)); + height: calc(var(--browser-page-viewport-height) / var(--ui-zoom-factor, 1)); +} + /* Why: small identity anchor on desktop custom titlebars where native window chrome is hidden. Sized to sit comfortably in the 36px titlebar with a little horizontal breathing room. The SVG fill is white; light mode inverts diff --git a/src/renderer/src/components/browser-pane/assemble-chrome/browser-page-context-menu.tsx b/src/renderer/src/components/browser-pane/assemble-chrome/browser-page-context-menu.tsx index 345e77957c4..fb1830bd41f 100644 --- a/src/renderer/src/components/browser-pane/assemble-chrome/browser-page-context-menu.tsx +++ b/src/renderer/src/components/browser-pane/assemble-chrome/browser-page-context-menu.tsx @@ -1,3 +1,4 @@ +import { windowDipToCssPx } from '@/lib/ui-zoom' import { useCallback, useEffect, @@ -42,9 +43,8 @@ export function BrowserPageContextMenu({ return } // Why: convert OS screen cursor coords to renderer CSS pixels — immune to guest/renderer coordinate-space mismatches from zoom/DPI. - const zoomFactor = 1.2 ** window.api.ui.getZoomLevel() - const x = Math.round((event.screenX - window.screenX) / zoomFactor) - const y = Math.round((event.screenY - window.screenY) / zoomFactor) + const x = Math.round(windowDipToCssPx(event.screenX - window.screenX)) + const y = Math.round(windowDipToCssPx(event.screenY - window.screenY)) setContextMenu({ x, y, diff --git a/src/renderer/src/components/browser-pane/host-guest/browser-page-viewport.test.ts b/src/renderer/src/components/browser-pane/host-guest/browser-page-viewport.test.ts index 7054ff08fc6..716f7d971c3 100644 --- a/src/renderer/src/components/browser-pane/host-guest/browser-page-viewport.test.ts +++ b/src/renderer/src/components/browser-pane/host-guest/browser-page-viewport.test.ts @@ -1,7 +1,10 @@ // @vitest-environment happy-dom +import { readFileSync } from 'node:fs' +import { resolve } from 'node:path' import { afterEach, describe, expect, it } from 'vitest' import { applyBrowserPageViewportLayout, + BROWSER_PAGE_PRESET_VIEWPORT_CLASS_NAME, ensureBrowserPageViewport, getBrowserPageViewportScrollState, getBrowserOverlaySlotViewport, @@ -15,6 +18,15 @@ import { syncBrowserPageChromeInset } from './browser-page-viewport' +function readPresetViewportCssRule(): string { + const css = readFileSync(resolve(import.meta.dirname, '../../../assets/main.css'), 'utf8') + const body = + css.match(new RegExp(`\\.${BROWSER_PAGE_PRESET_VIEWPORT_CLASS_NAME}\\s*\\{(?[^}]*)\\}`)) + ?.groups?.body ?? '' + + return body.replace(/\s+/g, ' ').trim() +} + function mountSlotViewport(workspaceTabId: string): HTMLDivElement { const root = document.createElement('div') root.className = 'relative flex min-h-0 flex-1 flex-col' @@ -55,8 +67,9 @@ describe('ensureBrowserPageViewport', () => { expect(viewport.scroller.style.overflow).toBe('') setBrowserPageViewportPresetSize('page-1', { width: 1440, height: 900 }) - expect(viewport.content.style.width).toBe('1440px') - expect(viewport.content.style.height).toBe('900px') + expect(viewport.content.style.getPropertyValue('--browser-page-viewport-width')).toBe('1440px') + expect(viewport.content.style.getPropertyValue('--browser-page-viewport-height')).toBe('900px') + expect(viewport.content.classList.contains(BROWSER_PAGE_PRESET_VIEWPORT_CLASS_NAME)).toBe(true) expect(viewport.scroller.style.overflow).toBe('auto') setBrowserPageViewportPresetSize('page-1', null) @@ -71,11 +84,51 @@ describe('ensureBrowserPageViewport', () => { removeBrowserPageViewport('page-1') const rebuilt = ensureBrowserPageViewport('page-1', 'workspace-1')! - expect(rebuilt.content.style.width).toBe('1024px') - expect(rebuilt.content.style.height).toBe('768px') + expect(rebuilt.content.style.getPropertyValue('--browser-page-viewport-width')).toBe('1024px') + expect(rebuilt.content.style.getPropertyValue('--browser-page-viewport-height')).toBe('768px') expect(rebuilt.scroller.style.overflow).toBe('auto') }) + // STA-7568: the CSS variable keeps the host box in window DIP while the stylesheet + // divides by the live UI zoom factor. + it('stores preset host dimensions as window-DIP CSS variables', () => { + mountSlotViewport('workspace-1') + + const viewport = ensureBrowserPageViewport('page-1', 'workspace-1')! + setBrowserPageViewportPresetSize('page-1', { width: 390, height: 844 }) + expect(viewport.content.style.getPropertyValue('--browser-page-viewport-width')).toBe('390px') + expect(viewport.content.style.getPropertyValue('--browser-page-viewport-height')).toBe('844px') + }) + + it('leaves the host box sized by the zoom-compensating rule, not an inline size', () => { + mountSlotViewport('workspace-1') + const viewport = ensureBrowserPageViewport('page-1', 'workspace-1')! + + setBrowserPageViewportPresetSize('page-1', { width: 390, height: 844 }) + + expect(viewport.content.classList.contains(BROWSER_PAGE_PRESET_VIEWPORT_CLASS_NAME)).toBe(true) + // An inline width/height would outrank the rule and reinstate the unscaled DIP box. + expect(viewport.content.style.width).toBe('') + expect(viewport.content.style.height).toBe('') + }) + + it('divides the preset DIP size by the live UI zoom factor', () => { + expect(readPresetViewportCssRule()).toBe( + 'width: calc(var(--browser-page-viewport-width) / var(--ui-zoom-factor, 1)); ' + + 'height: calc(var(--browser-page-viewport-height) / var(--ui-zoom-factor, 1));' + ) + }) + + it('clears preset dimensions when no preset is active', () => { + mountSlotViewport('workspace-1') + const viewport = ensureBrowserPageViewport('page-1', 'workspace-1')! + setBrowserPageViewportPresetSize('page-1', { width: 390, height: 844 }) + setBrowserPageViewportPresetSize('page-1', null) + + expect(viewport.content.classList.contains(BROWSER_PAGE_PRESET_VIEWPORT_CLASS_NAME)).toBe(false) + expect(viewport.content.style.width).toBe('100%') + }) + it('routes host wheel deltas to the preset scroller', () => { mountSlotViewport('workspace-1') const viewport = ensureBrowserPageViewport('page-1', 'workspace-1')! diff --git a/src/renderer/src/components/browser-pane/host-guest/browser-page-viewport.ts b/src/renderer/src/components/browser-pane/host-guest/browser-page-viewport.ts index a7f4a0d54e2..38a37415527 100644 --- a/src/renderer/src/components/browser-pane/host-guest/browser-page-viewport.ts +++ b/src/renderer/src/components/browser-pane/host-guest/browser-page-viewport.ts @@ -137,12 +137,30 @@ export function ensureBrowserPageViewport( return viewport } +/** Divides the preset's window-DIP size by the live UI zoom factor (see `main.css`). */ +export const BROWSER_PAGE_PRESET_VIEWPORT_CLASS_NAME = 'browser-page-preset-viewport' + +// Why the DIP conversion: CDP emulates the guest viewport in window DIP, but UI zoom +// redefines this renderer's CSS px, so an unconverted `${width}px` host box outgrows the +// emulated page and leaves an unpainted strip beside it (STA-7568). function applyViewportPresetSizeStyles( viewport: BrowserPageViewport, size: { width: number; height: number } | null ): void { - viewport.content.style.width = size ? `${size.width}px` : '100%' - viewport.content.style.height = size ? `${size.height}px` : '100%' + if (size) { + viewport.content.style.setProperty('--browser-page-viewport-width', `${size.width}px`) + viewport.content.style.setProperty('--browser-page-viewport-height', `${size.height}px`) + // Why: an inline width/height would outrank the class rule's zoom division. + viewport.content.style.removeProperty('width') + viewport.content.style.removeProperty('height') + viewport.content.classList.add(BROWSER_PAGE_PRESET_VIEWPORT_CLASS_NAME) + } else { + viewport.content.classList.remove(BROWSER_PAGE_PRESET_VIEWPORT_CLASS_NAME) + viewport.content.style.removeProperty('--browser-page-viewport-width') + viewport.content.style.removeProperty('--browser-page-viewport-height') + viewport.content.style.width = '100%' + viewport.content.style.height = '100%' + } viewport.scroller.style.overflow = size ? 'auto' : '' } diff --git a/src/renderer/src/components/editor/RichMarkdownEditorSurface.tsx b/src/renderer/src/components/editor/RichMarkdownEditorSurface.tsx index 12bc5cc35c3..8e2ca1e4abb 100644 --- a/src/renderer/src/components/editor/RichMarkdownEditorSurface.tsx +++ b/src/renderer/src/components/editor/RichMarkdownEditorSurface.tsx @@ -206,7 +206,8 @@ export function RichMarkdownEditorSurface({
{ if (!shouldFocusEmptyEditorFromSurfaceClick(event, editor)) { return diff --git a/src/renderer/src/components/native-chat/NativeChatMessageList.growth-windowing.test.tsx b/src/renderer/src/components/native-chat/NativeChatMessageList.growth-windowing.test.tsx new file mode 100644 index 00000000000..28925ea7fa4 --- /dev/null +++ b/src/renderer/src/components/native-chat/NativeChatMessageList.growth-windowing.test.tsx @@ -0,0 +1,543 @@ +// @vitest-environment happy-dom + +import '@testing-library/jest-dom/vitest' + +import { act, cleanup, fireEvent, render, screen } from '@testing-library/react' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import type { NativeChatMessage } from '../../../../shared/native-chat-types' +import { NativeChatMessageList } from './NativeChatMessageList' +import { + NATIVE_CHAT_BOTTOM_THRESHOLD_PX, + NATIVE_CHAT_FOLLOW_REARM_PX +} from './native-chat-autoscroll' +import { NATIVE_CHAT_ROW_GAP_PX } from './native-chat-row-height-estimate' +import { + BELOW_TRANSCRIPT_PX, + deliverResizes, + layout, + list, + marker, + ROW_PITCH_PX, + ROW_PX, + scrollTranscript, + session, + stubLayout, + stubResizeObserver, + TRANSCRIPT_LENGTH, + VIEWPORT_PX, + windowState +} from './native-chat-windowing-test-harness' + +afterEach(cleanup) + +function scrollRoot(container: HTMLElement): HTMLElement { + const scroller = container.querySelector('[data-native-chat-scroll]') + if (!scroller) { + throw new Error('no transcript scroll root') + } + return scroller +} + +/** Deliver resize and scroll events to a fixed point, as a painted frame would. */ +function paint(container: HTMLElement): void { + const scroller = scrollRoot(container) + let lastScrollTop = scroller.scrollTop + for (let pass = 0; pass < 12; pass += 1) { + let changed = false + act(() => { + changed = deliverResizes() + }) + if (scroller.scrollTop !== lastScrollTop) { + lastScrollTop = scroller.scrollTop + fireEvent.scroll(scroller) + changed = true + } + if (!changed) { + return + } + } + throw new Error('the transcript never settled: resize and scroll kept moving it') +} + +// Exercise the real virtualizer while a streaming row grows and messages append. +describe('transcript follow ownership across growth and appends', () => { + const TAIL_INDEX = TRANSCRIPT_LENGTH - 1 + const GROWTH_STEPS = 24 + const LINES_PER_STEP = 12 + /** One wrapped prose line. Content and measured height grow from this one + * number, so a step that adds lines is a step that adds pixels. */ + const STREAM_LINE_PX = 22 + /** Every row but the growing one measures at its estimate, so the reserved + * total is arithmetic rather than a snapshot. */ + const BASE_TOTAL_PX = + (TRANSCRIPT_LENGTH - 1) * ROW_PX + (TRANSCRIPT_LENGTH - 1) * NATIVE_CHAT_ROW_GAP_PX + + /** Fixed so a re-render never restamps the turn and moves the status row. */ + const TURN_STARTED_AT = Date.now() + + const transcript = Array.from({ length: TRANSCRIPT_LENGTH }, (_, index) => marker(index)) + + function appendedTranscript(count: number): NativeChatMessage[] { + return [ + ...transcript, + ...Array.from({ length: count }, (_, index) => marker(TRANSCRIPT_LENGTH + index)) + ] + } + + function tailHeightAt(step: number): number { + return Math.max(ROW_PX, (1 + step * LINES_PER_STEP) * STREAM_LINE_PX) + } + + function transcriptAt(step: number): NativeChatMessage[] { + const lines = Array.from( + { length: step * LINES_PER_STEP }, + (_, index) => `streamed line ${index}` + ) + const next = [...transcript] + next[TAIL_INDEX] = { + ...marker(TAIL_INDEX), + blocks: [{ type: 'text', text: [`marker-${TAIL_INDEX}`, ...lines].join('\n') }] + } + return next + } + + function streamingList(step: number): React.JSX.Element { + return ( + + ) + } + + function distanceFromBottom(container: HTMLElement): number { + const scroller = scrollRoot(container) + return scroller.scrollHeight - scroller.clientHeight - scroller.scrollTop + } + + function setMeasuredTail(step: number): void { + const heights = Array.from({ length: TRANSCRIPT_LENGTH }, () => ROW_PX) + heights[TAIL_INDEX] = tailHeightAt(step) + layout.measuredRowHeights = heights + } + + let restoreLayout = (): void => {} + let restoreResizeObserver = (): void => {} + beforeEach(() => { + restoreLayout = stubLayout({ scrollGeometry: true, offsetChain: true }) + restoreResizeObserver = stubResizeObserver() + layout.belowTranscriptPx = BELOW_TRANSCRIPT_PX + layout.aboveTranscriptPx = 0 + setMeasuredTail(0) + }) + afterEach(() => { + restoreResizeObserver() + restoreLayout() + layout.measuredRowHeights = [] + layout.belowTranscriptPx = BELOW_TRANSCRIPT_PX + layout.aboveTranscriptPx = 0 + vi.restoreAllMocks() + }) + + it('holds the pin, the mount and the reserved total at every frame of the growth', () => { + setMeasuredTail(0) + const { container, rerender } = render(streamingList(0)) + paint(container) + + expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) + expect(windowState(container).totalSize).toBe(BASE_TOTAL_PX + tailHeightAt(0)) + + const frames: { step: number; tail: number; total: number; distance: number }[] = [] + for (let step = 1; step <= GROWTH_STEPS; step += 1) { + setMeasuredTail(step) + rerender(streamingList(step)) + paint(container) + + const { totalSize, indexes } = windowState(container) + const distance = distanceFromBottom(container) + frames.push({ step, tail: tailHeightAt(step), total: totalSize, distance }) + + // Pinned: the reader is still looking at the bottom of the row. + expect(distance).toBeLessThanOrEqual(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) + // Mounted: never swapped for reserved space while it is the live row. + expect(indexes).toContain(TAIL_INDEX) + expect(screen.getByText(/streamed line 0/)).toBeInTheDocument() + // Tracking: the reservation follows the measurement, not the estimate. + expect(totalSize).toBe(BASE_TOTAL_PX + tailHeightAt(step)) + // Still a window, not the whole transcript remounted by the growth. + expect(indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) + } + + expect(frames).toHaveLength(GROWTH_STEPS) + expect(frames.at(-1)?.tail).toBeGreaterThan(VIEWPORT_PX * 10) + expect(Math.max(...frames.map((frame) => frame.distance))).toBeLessThanOrEqual( + NATIVE_CHAT_BOTTOM_THRESHOLD_PX + ) + }) + + it('leaves a reader who scrolled up where they were, however far the row grows', () => { + setMeasuredTail(4) + const { container, rerender } = render(streamingList(4)) + paint(container) + + const readingAt = 2000 + scrollTranscript(container, readingAt) + paint(container) + expect(distanceFromBottom(container)).toBeGreaterThan(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) + expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() + + for (let step = 5; step <= GROWTH_STEPS; step += 1) { + setMeasuredTail(step) + rerender(streamingList(step)) + paint(container) + + const { totalSize, indexes } = windowState(container) + // Not yanked: the offset the reader chose is the offset they still have. + expect(scrollRoot(container).scrollTop).toBe(readingAt) + // The row is off screen but still measured, which is what keeps the + // reserved total — and so the scrollbar — honest while it grows. + expect(indexes).toContain(TAIL_INDEX) + expect(totalSize).toBe(BASE_TOTAL_PX + tailHeightAt(step)) + } + + expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() + }) + + it.each([0, 100])( + 'keeps a reader parked above a growing row with a %i px initial measurement delta', + (measurementDelta) => { + setMeasuredTail(4) + layout.measuredRowHeights = layout.measuredRowHeights.map((height, index) => + index === TAIL_INDEX ? height + measurementDelta : height + ) + const { container, rerender } = render(streamingList(4)) + paint(container) + const scroller = scrollRoot(container) + + const parkGapPx = NATIVE_CHAT_BOTTOM_THRESHOLD_PX - 8 + const parkedAt = scroller.scrollHeight - scroller.clientHeight - parkGapPx + scrollTranscript(container, parkedAt) + expect(distanceFromBottom(container)).toBe(parkGapPx) + // Not the "scrolled far away" case above: the latest message is still on + // screen, so there is nothing to offer a way back to yet. + expect(screen.queryByRole('button', { name: /jump to latest/i })).toBeNull() + + setMeasuredTail(5) + rerender(streamingList(5)) + paint(container) + expect(scroller.scrollTop).toBe(parkedAt) + + let previousDistance = distanceFromBottom(container) + for (let step = 6; step <= GROWTH_STEPS; step += 1) { + setMeasuredTail(step) + rerender(streamingList(step)) + paint(container) + + // The offset stops moving at all... + expect(scroller.scrollTop).toBe(parkedAt) + // ...so the end runs away from the reader instead of carrying them along. + const distance = distanceFromBottom(container) + expect(distance).toBeGreaterThan(previousDistance) + previousDistance = distance + } + + expect(previousDistance).toBeGreaterThan(VIEWPORT_PX) + expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() + } + ) + + it('leaves a parked reader in place through repeated appends', () => { + const { container, rerender } = render(list(transcript)) + paint(container) + const scroller = scrollRoot(container) + const parkedAt = scroller.scrollHeight - scroller.clientHeight - 40 + scrollTranscript(container, parkedAt) + + for (let count = 1; count <= 8; count += 1) { + rerender(list(appendedTranscript(count))) + paint(container) + expect(scroller.scrollTop).toBe(parkedAt) + expect(windowState(container).indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) + } + expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() + }) + + it('follows repeated appends until the reader detaches', () => { + const { container, rerender } = render(list(transcript)) + paint(container) + const scroller = scrollRoot(container) + for (let count = 1; count <= 8; count += 1) { + rerender(list(appendedTranscript(count))) + paint(container) + expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_FOLLOW_REARM_PX) + fireEvent.scroll(scroller) + } + + const parkedAt = scroller.scrollTop - 22 + scrollTranscript(container, parkedAt) + rerender(list(appendedTranscript(9))) + paint(container) + expect(scroller.scrollTop).toBe(parkedAt) + }) + + it('follows an empty transcript through underflow into scrollable output', () => { + const { container, rerender } = render(list([])) + paint(container) + expect(scrollRoot(container).scrollTop).toBe(0) + rerender(list(transcript.slice(0, 1))) + paint(container) + expect(scrollRoot(container).scrollTop).toBe(0) + fireEvent.scroll(scrollRoot(container)) + rerender(list(transcript)) + paint(container) + expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_FOLLOW_REARM_PX) + expect(windowState(container).indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) + }) + + it.each(['reader', 'jump'] as const)('rearms growth and append following via %s', (rearm) => { + setMeasuredTail(4) + const { container, rerender } = render(streamingList(4)) + paint(container) + const scroller = scrollRoot(container) + fireEvent.scroll(scroller) + const parkedAt = scroller.scrollTop - 22 + scrollTranscript(container, parkedAt) + setMeasuredTail(5) + rerender(streamingList(5)) + paint(container) + expect(scroller.scrollTop).toBe(parkedAt) + + if (rearm === 'reader') { + scrollTranscript( + container, + scroller.scrollHeight - scroller.clientHeight - NATIVE_CHAT_FOLLOW_REARM_PX + ) + } else { + fireEvent.click(screen.getByRole('button', { name: /jump to latest/i })) + } + paint(container) + expect(screen.queryByRole('button', { name: /jump to latest/i })).toBeNull() + for (let step = 6; step <= 8; step += 1) { + setMeasuredTail(step) + rerender(streamingList(step)) + paint(container) + expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_FOLLOW_REARM_PX) + expect(windowState(container).indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) + } + rerender(list([...transcriptAt(8), marker(TRANSCRIPT_LENGTH)])) + paint(container) + expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_FOLLOW_REARM_PX) + }) + + it('preserves the visible row anchor across prepends while detached', () => { + const { container, rerender } = render(list(transcript)) + paint(container) + const readingAt = 2000 + scrollTranscript(container, readingAt) + paint(container) + + const earlier = Array.from({ length: 10 }, (_, index) => marker(index - 10)) + rerender(list([...earlier, ...transcript])) + paint(container) + expect(scrollRoot(container).scrollTop).toBe(readingAt + earlier.length * ROW_PITCH_PX) + expect(windowState(container).indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) + expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() + }) + + it('compensates a measurement entirely above the viewport without reattaching', () => { + const { container, rerender } = render(list(transcript)) + paint(container) + const scroller = scrollRoot(container) + // Establish a forward scroll direction before reading at this offset. The + // backward-scroll suppression below covers the separate case where a reader + // is still moving upward while overscan rows settle. + scrollTranscript(container, 0) + paint(container) + const readingAt = 2000 + scrollTranscript(container, readingAt) + paint(container) + const aboveIndex = windowState(container).indexes[0]! + expect((aboveIndex + 1) * ROW_PITCH_PX).toBeLessThan(readingAt) + for (const growth of [100, 200]) { + layout.measuredRowHeights = Array.from({ length: TRANSCRIPT_LENGTH }, (_, index) => + index === aboveIndex ? ROW_PX + growth : ROW_PX + ) + paint(container) + expect(scroller.scrollTop).toBe(readingAt + growth) + } + rerender(list(appendedTranscript(1))) + paint(container) + expect(scroller.scrollTop).toBe(readingAt + 200) + expect(windowState(container).indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) + }) + + it('keeps following when a pin echo arrives after the document grows', () => { + setMeasuredTail(0) + const { container } = render(streamingList(0)) + paint(container) + const scroller = scrollRoot(container) + + setMeasuredTail(1) + expect(deliverResizes()).toBe(true) + const pinnedAt = scroller.scrollTop + layout.belowTranscriptPx += 2_000 + + fireEvent.scroll(scroller) + + expect(scroller.scrollTop).toBe(pinnedAt) + expect(screen.queryByRole('button', { name: /jump to latest/i })).toBeNull() + paint(container) + expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_FOLLOW_REARM_PX) + }) + + it('does not counter upward scrolling when measured overscan rows settle', () => { + const readingAt = 2000 + const aboveIndex = Math.floor(readingAt / ROW_PITCH_PX) - 1 + const { container } = render(list(transcript)) + paint(container) + scrollTranscript(container, readingAt + 100) + paint(container) + layout.measuredRowHeights = Array.from({ length: TRANSCRIPT_LENGTH }, (_, index) => + index === aboveIndex ? ROW_PX + 10 : ROW_PX + ) + paint(container) + scrollTranscript(container, readingAt) + paint(container) + const scroller = scrollRoot(container) + const scrollTo = vi.spyOn(scroller, 'scrollTo') + + layout.measuredRowHeights = layout.measuredRowHeights.map((height, index) => + index === aboveIndex ? height + 20 : height + ) + paint(container) + + expect(scroller.scrollTop).toBe(readingAt) + expect(scrollTo).not.toHaveBeenCalled() + }) + + it('keeps the offset when a visible row shrinks past the viewport top', () => { + const focusedIndex = 45 + const { container } = render(list(transcript)) + paint(container) + scrollTranscript(container, focusedIndex * ROW_PITCH_PX) + paint(container) + layout.measuredRowHeights = Array.from({ length: TRANSCRIPT_LENGTH }, (_, index) => + index === focusedIndex ? 100 : ROW_PX + ) + paint(container) + const readingAt = focusedIndex * ROW_PITCH_PX + 60 + scrollTranscript(container, readingAt) + paint(container) + const scroller = scrollRoot(container) + const scrollTo = vi.spyOn(scroller, 'scrollTo') + + layout.measuredRowHeights = layout.measuredRowHeights.map((height, index) => + index === focusedIndex ? 30 : height + ) + paint(container) + + expect(scroller.scrollTop).toBe(readingAt) + expect(scrollTo).not.toHaveBeenCalled() + }) + + it('settles a pending end reconcile after the reader keeps scrolling away', async () => { + setMeasuredTail(0) + const { container } = render(streamingList(0)) + const scroller = scrollRoot(container) + // Trigger a pin outside React's act wrapper so its TanStack rAF reconcile is + // still pending when the reader moves away. + setMeasuredTail(1) + expect(deliverResizes()).toBe(true) + const scheduleSpy = vi.spyOn(window, 'requestAnimationFrame') + const scrollToSpy = vi.spyOn(scroller, 'scrollTo') + const readingAt = 2000 + scroller.scrollTop = readingAt + fireEvent.scroll(scroller) + expect(scrollToSpy).toHaveBeenLastCalledWith({ behavior: 'auto', top: readingAt }) + scroller.scrollTop = 1800 + fireEvent.scroll(scroller) + expect(scrollToSpy).toHaveBeenLastCalledWith({ behavior: 'auto', top: 1800 }) + + await act(async () => { + for (let frame = 0; frame < 6; frame += 1) { + await new Promise((resolve) => requestAnimationFrame(() => resolve())) + } + }) + + const scheduledFrames = scheduleSpy.mock.calls.length + scheduleSpy.mockRestore() + scrollToSpy.mockRestore() + expect(scheduledFrames).toBeLessThanOrEqual(8) + expect(scroller.scrollTop).toBe(1800) + expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() + }) + + // With something above the spacer, the two parties stop agreeing on where the + // end is: the transcript measures it from the document, the virtualizer from + // the spacer's own height against a container-absolute offset. The second is + // short by everything outside the spacer, so it reads a reader who is clearly + // above the end as sitting on it. + describe('with a gutter above the transcript', () => { + /** `pt-10` plus the "Load earlier" block and its gap — what sits above the + * spacer once a resumed session still has older history to page in. */ + const GUTTER_PX = 92 + /** Far enough up that the transcript itself calls the reader detached, and + * still inside the band the virtualizer computes (48 + 92 + 24). */ + const READING_ABOVE_END_PX = 96 + // A nonzero delta seeds the size cache; zero exercises first-measure growth. + const MEASURE_SKEW_PX = 7 + + function setSkewedTail(step: number, skew = MEASURE_SKEW_PX): void { + const heights = Array.from({ length: TRANSCRIPT_LENGTH }, () => ROW_PX) + heights[TAIL_INDEX] = tailHeightAt(step) + skew + layout.measuredRowHeights = heights + } + + beforeEach(() => { + layout.aboveTranscriptPx = GUTTER_PX + }) + + it.each([0, MEASURE_SKEW_PX])( + 'leaves a reader just above the end while the row grows (skew %i)', + (skew) => { + setSkewedTail(4, skew) + const { container, rerender } = render(streamingList(4)) + paint(container) + const scroller = scrollRoot(container) + + const readingAt = scroller.scrollHeight - scroller.clientHeight - READING_ABOVE_END_PX + scrollTranscript(container, readingAt) + paint(container) + expect(distanceFromBottom(container)).toBe(READING_ABOVE_END_PX) + + for (let step = 5; step <= 10; step += 1) { + setSkewedTail(step, skew) + rerender(streamingList(step)) + paint(container) + + // Not dragged along: the offset the reader chose is the offset they keep, + // however much the row below them grows. + expect(scroller.scrollTop).toBe(readingAt) + } + } + ) + + it('still pins a reader who is at the end, with the gutter in the document', () => { + setSkewedTail(4) + const { container, rerender } = render(streamingList(4)) + paint(container) + expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) + + for (let step = 5; step <= 10; step += 1) { + setSkewedTail(step) + rerender(streamingList(step)) + paint(container) + + expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) + } + }) + }) +}) diff --git a/src/renderer/src/components/native-chat/NativeChatMessageList.tsx b/src/renderer/src/components/native-chat/NativeChatMessageList.tsx index 45c78f03d74..c462ad3fa19 100644 --- a/src/renderer/src/components/native-chat/NativeChatMessageList.tsx +++ b/src/renderer/src/components/native-chat/NativeChatMessageList.tsx @@ -52,6 +52,7 @@ type NativeChatNavigationRequest = export function NativeChatMessageList({ session, journalItems, + isVisible = true, isWorking, expandSignal, fontScale, @@ -67,6 +68,7 @@ export function NativeChatMessageList({ }: { session: NativeChatLiveSession journalItems?: readonly AgentJournalRenderItem[] + isVisible?: boolean isWorking: boolean /** Toolbar-driven desired open state for every tool run; each flip re-syncs. */ expandSignal: boolean @@ -207,6 +209,7 @@ export function NativeChatMessageList({ const transcriptWindow = useNativeChatTranscriptWindow({ scrollRef, slots, + isVisible, // One pin serves both: revealing a diff and jumping from the rail are // mutually exclusive things to be doing. revealIndex: nativeChatSlotIndexOf(slots, railJump?.messageId ?? revealedDiff?.messageId) @@ -217,11 +220,13 @@ export function NativeChatMessageList({ itemCount: slots.length, isWorking, showTypingIndicator, + isVisible, hasMore, loadingEarlier, loadEarlier, alignToViewportTop: transcriptWindow.alignToViewportTop, scrollToEnd: transcriptWindow.scrollToEnd, + restoreScrollOffset: transcriptWindow.restoreScrollOffset, consumeProgrammaticScroll: transcriptWindow.consumeProgrammaticScroll, reconcileReaderScroll: transcriptWindow.reconcileReaderScroll }) diff --git a/src/renderer/src/components/native-chat/NativeChatMessageList.windowing.test.tsx b/src/renderer/src/components/native-chat/NativeChatMessageList.windowing.test.tsx index c6a13c7ed83..e95f6cfb406 100644 --- a/src/renderer/src/components/native-chat/NativeChatMessageList.windowing.test.tsx +++ b/src/renderer/src/components/native-chat/NativeChatMessageList.windowing.test.tsx @@ -11,15 +11,10 @@ import type { import { projectStructuredItemsToNativeChat } from '../../../../shared/structured-agent-session-projection' import type { NativeChatMessage } from '../../../../shared/native-chat-types' import { NativeChatMessageList } from './NativeChatMessageList' -import { - NATIVE_CHAT_BOTTOM_THRESHOLD_PX, - NATIVE_CHAT_FOLLOW_REARM_PX -} from './native-chat-autoscroll' +import { NATIVE_CHAT_BOTTOM_THRESHOLD_PX } from './native-chat-autoscroll' import { NATIVE_CHAT_ROW_GAP_PX } from './native-chat-row-height-estimate' import { - BELOW_TRANSCRIPT_PX, deliverResizes, - layout, list, marker, ROW_PITCH_PX, @@ -35,6 +30,45 @@ import { afterEach(cleanup) +function scrollRoot(container: HTMLElement): HTMLElement { + const scroller = container.querySelector('[data-native-chat-scroll]') + if (!scroller) { + throw new Error('no transcript scroll root') + } + return scroller +} + +/** Deliver resize and scroll events to a fixed point, as a painted frame would. */ +function paint(container: HTMLElement): void { + const scroller = scrollRoot(container) + let lastScrollTop = scroller.scrollTop + for (let pass = 0; pass < 12; pass += 1) { + let changed = false + act(() => { + changed = deliverResizes() + }) + if (scroller.scrollTop !== lastScrollTop) { + lastScrollTop = scroller.scrollTop + fireEvent.scroll(scroller) + changed = true + } + if (!changed) { + return + } + } + throw new Error('the transcript never settled: resize and scroll kept moving it') +} + +async function settleVirtualizer(container: HTMLElement): Promise { + for (let frame = 0; frame < 2; frame += 1) { + paint(container) + await act(async () => { + await new Promise((resolve) => requestAnimationFrame(() => resolve())) + }) + } + paint(container) +} + describe('windowed transcript', () => { let restoreLayout = (): void => {} beforeEach(() => { @@ -231,524 +265,126 @@ describe('transcript with a hidden scroll root', () => { restoreLayout() } }) -}) -// A row that grows in place: the same message id, more content, a taller measured -// box — what a streaming reply looks like to the window. Whole-message appends -// arrive at their final height and are a different case; this is the one where -// the row the reader is looking at keeps changing size underneath them. -// -// Exercise the real virtualizer together with the transcript's follow owner. -describe('transcript follow ownership across growth and appends', () => { - const TAIL_INDEX = TRANSCRIPT_LENGTH - 1 - const GROWTH_STEPS = 24 - const LINES_PER_STEP = 12 - /** One wrapped prose line. Content and measured height grow from this one - * number, so a step that adds lines is a step that adds pixels. */ - const STREAM_LINE_PX = 22 - /** Every row but the growing one measures at its estimate, so the reserved - * total is arithmetic rather than a snapshot. */ - const BASE_TOTAL_PX = - (TRANSCRIPT_LENGTH - 1) * ROW_PX + (TRANSCRIPT_LENGTH - 1) * NATIVE_CHAT_ROW_GAP_PX - - /** Fixed so a re-render never restamps the turn and moves the status row. */ - const TURN_STARTED_AT = Date.now() - - const transcript = Array.from({ length: TRANSCRIPT_LENGTH }, (_, index) => marker(index)) - - function appendedTranscript(count: number): NativeChatMessage[] { - return [ - ...transcript, - ...Array.from({ length: count }, (_, index) => marker(TRANSCRIPT_LENGTH + index)) + it('preserves a detached viewport when messages append while hidden', async () => { + let isVisible = true + const restoreLayout = stubLayout({ + scrollGeometry: true, + isVisible: () => isVisible + }) + const restoreResizeObserver = stubResizeObserver() + const initialMessages = Array.from({ length: 120 }, (_, index) => marker(index)) + const appendedMessages = [ + ...initialMessages, + ...Array.from({ length: 20 }, (_, index) => marker(120 + index)) ] - } + try { + const { container, rerender } = render(list(initialMessages, isVisible)) + await settleVirtualizer(container) - function tailHeightAt(step: number): number { - return Math.max(ROW_PX, (1 + step * LINES_PER_STEP) * STREAM_LINE_PX) - } - - function transcriptAt(step: number): NativeChatMessage[] { - const lines = Array.from( - { length: step * LINES_PER_STEP }, - (_, index) => `streamed line ${index}` - ) - const next = [...transcript] - next[TAIL_INDEX] = { - ...marker(TAIL_INDEX), - blocks: [{ type: 'text', text: [`marker-${TAIL_INDEX}`, ...lines].join('\n') }] - } - return next - } - - function streamingList(step: number): React.JSX.Element { - return ( - - ) - } - - function scrollRoot(container: HTMLElement): HTMLElement { - const scroller = container.querySelector('[data-native-chat-scroll]') - if (!scroller) { - throw new Error('no transcript scroll root') - } - return scroller - } - - /** One painted frame, repeated to a fixed point: deliver the resize callbacks - * the growth caused, then fire the scroll event a browser fires for any - * `scrollTop` the code wrote itself. Refusing to settle is a failure in its - * own right — that is the view oscillating. */ - function paint(container: HTMLElement): void { - const scroller = scrollRoot(container) - let lastScrollTop = scroller.scrollTop - for (let pass = 0; pass < 12; pass += 1) { - let changed = false - act(() => { - changed = deliverResizes() - }) - if (scroller.scrollTop !== lastScrollTop) { - lastScrollTop = scroller.scrollTop - fireEvent.scroll(scroller) - changed = true - } - if (!changed) { - return - } - } - throw new Error('the transcript never settled: resize and scroll kept moving it') - } - - function distanceFromBottom(container: HTMLElement): number { - const scroller = scrollRoot(container) - return scroller.scrollHeight - scroller.clientHeight - scroller.scrollTop - } - - function setMeasuredTail(step: number): void { - const heights = Array.from({ length: TRANSCRIPT_LENGTH }, () => ROW_PX) - heights[TAIL_INDEX] = tailHeightAt(step) - layout.measuredRowHeights = heights - } - - let restoreLayout = (): void => {} - let restoreResizeObserver = (): void => {} - beforeEach(() => { - restoreLayout = stubLayout({ scrollGeometry: true, offsetChain: true }) - restoreResizeObserver = stubResizeObserver() - layout.belowTranscriptPx = BELOW_TRANSCRIPT_PX - layout.aboveTranscriptPx = 0 - setMeasuredTail(0) - }) - afterEach(() => { - restoreResizeObserver() - restoreLayout() - layout.measuredRowHeights = [] - layout.belowTranscriptPx = BELOW_TRANSCRIPT_PX - layout.aboveTranscriptPx = 0 - vi.restoreAllMocks() - }) - - it('holds the pin, the mount and the reserved total at every frame of the growth', () => { - setMeasuredTail(0) - const { container, rerender } = render(streamingList(0)) - paint(container) - - expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) - expect(windowState(container).totalSize).toBe(BASE_TOTAL_PX + tailHeightAt(0)) - - const frames: { step: number; tail: number; total: number; distance: number }[] = [] - for (let step = 1; step <= GROWTH_STEPS; step += 1) { - setMeasuredTail(step) - rerender(streamingList(step)) - paint(container) - - const { totalSize, indexes } = windowState(container) - const distance = distanceFromBottom(container) - frames.push({ step, tail: tailHeightAt(step), total: totalSize, distance }) - - // Pinned: the reader is still looking at the bottom of the row. - expect(distance).toBeLessThanOrEqual(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) - // Mounted: never swapped for reserved space while it is the live row. - expect(indexes).toContain(TAIL_INDEX) - expect(screen.getByText(/streamed line 0/)).toBeInTheDocument() - // Tracking: the reservation follows the measurement, not the estimate. - expect(totalSize).toBe(BASE_TOTAL_PX + tailHeightAt(step)) - // Still a window, not the whole transcript remounted by the growth. - expect(indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) - } - - expect(frames).toHaveLength(GROWTH_STEPS) - expect(frames.at(-1)?.tail).toBeGreaterThan(VIEWPORT_PX * 10) - expect(Math.max(...frames.map((frame) => frame.distance))).toBeLessThanOrEqual( - NATIVE_CHAT_BOTTOM_THRESHOLD_PX - ) - }) - - it('leaves a reader who scrolled up where they were, however far the row grows', () => { - setMeasuredTail(4) - const { container, rerender } = render(streamingList(4)) - paint(container) - - const readingAt = 2000 - scrollTranscript(container, readingAt) - paint(container) - expect(distanceFromBottom(container)).toBeGreaterThan(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) - expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() - - for (let step = 5; step <= GROWTH_STEPS; step += 1) { - setMeasuredTail(step) - rerender(streamingList(step)) - paint(container) - - const { totalSize, indexes } = windowState(container) - // Not yanked: the offset the reader chose is the offset they still have. - expect(scrollRoot(container).scrollTop).toBe(readingAt) - // The row is off screen but still measured, which is what keeps the - // reserved total — and so the scrollbar — honest while it grows. - expect(indexes).toContain(TAIL_INDEX) - expect(totalSize).toBe(BASE_TOTAL_PX + tailHeightAt(step)) - } - - expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() - }) - - it.each([0, 100])( - 'keeps a reader parked above a growing row with a %i px initial measurement delta', - (measurementDelta) => { - setMeasuredTail(4) - layout.measuredRowHeights = layout.measuredRowHeights.map((height, index) => - index === TAIL_INDEX ? height + measurementDelta : height - ) - const { container, rerender } = render(streamingList(4)) - paint(container) const scroller = scrollRoot(container) - - const parkGapPx = NATIVE_CHAT_BOTTOM_THRESHOLD_PX - 8 - const parkedAt = scroller.scrollHeight - scroller.clientHeight - parkGapPx - scrollTranscript(container, parkedAt) - expect(distanceFromBottom(container)).toBe(parkGapPx) - // Not the "scrolled far away" case above: the latest message is still on - // screen, so there is nothing to offer a way back to yet. - expect(screen.queryByRole('button', { name: /jump to latest/i })).toBeNull() - - setMeasuredTail(5) - rerender(streamingList(5)) - paint(container) - expect(scroller.scrollTop).toBe(parkedAt) - - let previousDistance = distanceFromBottom(container) - for (let step = 6; step <= GROWTH_STEPS; step += 1) { - setMeasuredTail(step) - rerender(streamingList(step)) - paint(container) - - // The offset stops moving at all... - expect(scroller.scrollTop).toBe(parkedAt) - // ...so the end runs away from the reader instead of carrying them along. - const distance = distanceFromBottom(container) - expect(distance).toBeGreaterThan(previousDistance) - previousDistance = distance - } - - expect(previousDistance).toBeGreaterThan(VIEWPORT_PX) + const readingAt = 2_000 + scrollTranscript(container, readingAt) + await settleVirtualizer(container) expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() - } - ) - it('leaves a parked reader in place through repeated appends', () => { - const { container, rerender } = render(list(transcript)) - paint(container) - const scroller = scrollRoot(container) - const parkedAt = scroller.scrollHeight - scroller.clientHeight - 40 - scrollTranscript(container, parkedAt) - - for (let count = 1; count <= 8; count += 1) { - rerender(list(appendedTranscript(count))) - paint(container) - expect(scroller.scrollTop).toBe(parkedAt) - expect(windowState(container).indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) - } - expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() - }) - - it('follows repeated appends until the reader detaches', () => { - const { container, rerender } = render(list(transcript)) - paint(container) - const scroller = scrollRoot(container) - for (let count = 1; count <= 8; count += 1) { - rerender(list(appendedTranscript(count))) - paint(container) - expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_FOLLOW_REARM_PX) - fireEvent.scroll(scroller) - } - - const parkedAt = scroller.scrollTop - 22 - scrollTranscript(container, parkedAt) - rerender(list(appendedTranscript(9))) - paint(container) - expect(scroller.scrollTop).toBe(parkedAt) - }) - - it('follows an empty transcript through underflow into scrollable output', () => { - const { container, rerender } = render(list([])) - paint(container) - expect(scrollRoot(container).scrollTop).toBe(0) - rerender(list(transcript.slice(0, 1))) - paint(container) - expect(scrollRoot(container).scrollTop).toBe(0) - fireEvent.scroll(scrollRoot(container)) - rerender(list(transcript)) - paint(container) - expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_FOLLOW_REARM_PX) - expect(windowState(container).indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) - }) - - it.each(['reader', 'jump'] as const)('rearms growth and append following via %s', (rearm) => { - setMeasuredTail(4) - const { container, rerender } = render(streamingList(4)) - paint(container) - const scroller = scrollRoot(container) - fireEvent.scroll(scroller) - const parkedAt = scroller.scrollTop - 22 - scrollTranscript(container, parkedAt) - setMeasuredTail(5) - rerender(streamingList(5)) - paint(container) - expect(scroller.scrollTop).toBe(parkedAt) - - if (rearm === 'reader') { - scrollTranscript( - container, - scroller.scrollHeight - scroller.clientHeight - NATIVE_CHAT_FOLLOW_REARM_PX - ) - } else { - fireEvent.click(screen.getByRole('button', { name: /jump to latest/i })) - } - paint(container) - expect(screen.queryByRole('button', { name: /jump to latest/i })).toBeNull() - for (let step = 6; step <= 8; step += 1) { - setMeasuredTail(step) - rerender(streamingList(step)) - paint(container) - expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_FOLLOW_REARM_PX) - expect(windowState(container).indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) - } - rerender(list([...transcriptAt(8), marker(TRANSCRIPT_LENGTH)])) - paint(container) - expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_FOLLOW_REARM_PX) - }) - - it('preserves the visible row anchor across prepends while detached', () => { - const { container, rerender } = render(list(transcript)) - paint(container) - const readingAt = 2000 - scrollTranscript(container, readingAt) - paint(container) - - const earlier = Array.from({ length: 10 }, (_, index) => marker(index - 10)) - rerender(list([...earlier, ...transcript])) - paint(container) - expect(scrollRoot(container).scrollTop).toBe(readingAt + earlier.length * ROW_PITCH_PX) - expect(windowState(container).indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) - expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() - }) - - it('compensates a measurement entirely above the viewport without reattaching', () => { - const { container, rerender } = render(list(transcript)) - paint(container) - const scroller = scrollRoot(container) - // Establish a forward scroll direction before reading at this offset. The - // backward-scroll suppression below covers the separate case where a reader - // is still moving upward while overscan rows settle. - scrollTranscript(container, 0) - paint(container) - const readingAt = 2000 - scrollTranscript(container, readingAt) - paint(container) - const aboveIndex = windowState(container).indexes[0]! - expect((aboveIndex + 1) * ROW_PITCH_PX).toBeLessThan(readingAt) - for (const growth of [100, 200]) { - layout.measuredRowHeights = Array.from({ length: TRANSCRIPT_LENGTH }, (_, index) => - index === aboveIndex ? ROW_PX + growth : ROW_PX - ) - paint(container) - expect(scroller.scrollTop).toBe(readingAt + growth) - } - rerender(list(appendedTranscript(1))) - paint(container) - expect(scroller.scrollTop).toBe(readingAt + 200) - expect(windowState(container).indexes.length).toBeLessThan(TRANSCRIPT_LENGTH / 4) - }) - - it('keeps following when a pin echo arrives after the document grows', () => { - setMeasuredTail(0) - const { container } = render(streamingList(0)) - paint(container) - const scroller = scrollRoot(container) - - setMeasuredTail(1) - expect(deliverResizes()).toBe(true) - const pinnedAt = scroller.scrollTop - layout.belowTranscriptPx += 2_000 - - fireEvent.scroll(scroller) - - expect(scroller.scrollTop).toBe(pinnedAt) - expect(screen.queryByRole('button', { name: /jump to latest/i })).toBeNull() - paint(container) - expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_FOLLOW_REARM_PX) - }) - - it('does not counter upward scrolling when measured overscan rows settle', () => { - const readingAt = 2000 - const aboveIndex = Math.floor(readingAt / ROW_PITCH_PX) - 1 - const { container } = render(list(transcript)) - paint(container) - scrollTranscript(container, readingAt + 100) - paint(container) - layout.measuredRowHeights = Array.from({ length: TRANSCRIPT_LENGTH }, (_, index) => - index === aboveIndex ? ROW_PX + 10 : ROW_PX - ) - paint(container) - scrollTranscript(container, readingAt) - paint(container) - const scroller = scrollRoot(container) - const scrollTo = vi.spyOn(scroller, 'scrollTo') - - layout.measuredRowHeights = layout.measuredRowHeights.map((height, index) => - index === aboveIndex ? height + 20 : height - ) - paint(container) - - expect(scroller.scrollTop).toBe(readingAt) - expect(scrollTo).not.toHaveBeenCalled() - }) - - it('keeps the offset when a visible row shrinks past the viewport top', () => { - const focusedIndex = 45 - const { container } = render(list(transcript)) - paint(container) - scrollTranscript(container, focusedIndex * ROW_PITCH_PX) - paint(container) - layout.measuredRowHeights = Array.from({ length: TRANSCRIPT_LENGTH }, (_, index) => - index === focusedIndex ? 100 : ROW_PX - ) - paint(container) - const readingAt = focusedIndex * ROW_PITCH_PX + 60 - scrollTranscript(container, readingAt) - paint(container) - const scroller = scrollRoot(container) - const scrollTo = vi.spyOn(scroller, 'scrollTo') - - layout.measuredRowHeights = layout.measuredRowHeights.map((height, index) => - index === focusedIndex ? 30 : height - ) - paint(container) - - expect(scroller.scrollTop).toBe(readingAt) - expect(scrollTo).not.toHaveBeenCalled() - }) - - it('settles a pending end reconcile after the reader keeps scrolling away', async () => { - setMeasuredTail(0) - const { container } = render(streamingList(0)) - const scroller = scrollRoot(container) - // Trigger a pin outside React's act wrapper so its TanStack rAF reconcile is - // still pending when the reader moves away. - setMeasuredTail(1) - expect(deliverResizes()).toBe(true) - const scheduleSpy = vi.spyOn(window, 'requestAnimationFrame') - const scrollToSpy = vi.spyOn(scroller, 'scrollTo') - const readingAt = 2000 - scroller.scrollTop = readingAt - fireEvent.scroll(scroller) - expect(scrollToSpy).toHaveBeenLastCalledWith({ behavior: 'auto', top: readingAt }) - scroller.scrollTop = 1800 - fireEvent.scroll(scroller) - expect(scrollToSpy).toHaveBeenLastCalledWith({ behavior: 'auto', top: 1800 }) - - await act(async () => { - for (let frame = 0; frame < 6; frame += 1) { - await new Promise((resolve) => requestAnimationFrame(() => resolve())) + isVisible = false + rerender(list(initialMessages, isVisible)) + await settleVirtualizer(container) + const scrollTo = vi.spyOn(scroller, 'scrollTo') + try { + rerender(list(appendedMessages, isVisible)) + await settleVirtualizer(container) + expect(scrollTo).not.toHaveBeenCalled() + } finally { + scrollTo.mockRestore() } - }) - const scheduledFrames = scheduleSpy.mock.calls.length - scheduleSpy.mockRestore() - scrollToSpy.mockRestore() - expect(scheduledFrames).toBeLessThanOrEqual(8) - expect(scroller.scrollTop).toBe(1800) - expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() + isVisible = true + rerender(list(appendedMessages, isVisible)) + await settleVirtualizer(container) + + expect(scroller.scrollTop).toBe(readingAt) + expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() + } finally { + restoreResizeObserver() + restoreLayout() + } }) - // With something above the spacer, the two parties stop agreeing on where the - // end is: the transcript measures it from the document, the virtualizer from - // the spacer's own height against a container-absolute offset. The second is - // short by everything outside the spacer, so it reads a reader who is clearly - // above the end as sitting on it. - describe('with a gutter above the transcript', () => { - /** `pt-10` plus the "Load earlier" block and its gap — what sits above the - * spacer once a resumed session still has older history to page in. */ - const GUTTER_PX = 92 - /** Far enough up that the transcript itself calls the reader detached, and - * still inside the band the virtualizer computes (48 + 92 + 24). */ - const READING_ABOVE_END_PX = 96 - // A nonzero delta seeds the size cache; zero exercises first-measure growth. - const MEASURE_SKEW_PX = 7 + it('preserves a detached viewport when a structured session catches up after reveal', async () => { + let isVisible = true + const restoreLayout = stubLayout({ + scrollGeometry: true, + isVisible: () => isVisible + }) + const restoreResizeObserver = stubResizeObserver() + const initialMessages = Array.from({ length: 120 }, (_, index) => marker(index)) + const appendedMessages = [ + ...initialMessages, + ...Array.from({ length: 20 }, (_, index) => marker(120 + index)) + ] + try { + const { container, rerender } = render(list(initialMessages, isVisible)) + await settleVirtualizer(container) - function setSkewedTail(step: number, skew = MEASURE_SKEW_PX): void { - const heights = Array.from({ length: TRANSCRIPT_LENGTH }, () => ROW_PX) - heights[TAIL_INDEX] = tailHeightAt(step) + skew - layout.measuredRowHeights = heights + const scroller = scrollRoot(container) + const readingAt = 2_000 + scrollTranscript(container, readingAt) + await settleVirtualizer(container) + expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() + + isVisible = false + rerender(list(initialMessages, isVisible)) + await settleVirtualizer(container) + isVisible = true + rerender(list(initialMessages, isVisible)) + // The resumed transport can publish catch-up before the reveal write emits a scroll event. + rerender(list(appendedMessages, isVisible)) + await settleVirtualizer(container) + + expect(scroller.scrollTop).toBe(readingAt) + expect(screen.getByRole('button', { name: /jump to latest/i })).toBeInTheDocument() + } finally { + restoreResizeObserver() + restoreLayout() } + }) - beforeEach(() => { - layout.aboveTranscriptPx = GUTTER_PX + it('catches a following viewport up after messages append while hidden', async () => { + let isVisible = true + const restoreLayout = stubLayout({ + scrollGeometry: true, + isVisible: () => isVisible }) + const restoreResizeObserver = stubResizeObserver() + const initialMessages = Array.from({ length: 120 }, (_, index) => marker(index)) + const appendedMessages = [ + ...initialMessages, + ...Array.from({ length: 20 }, (_, index) => marker(120 + index)) + ] + try { + const { container, rerender } = render(list(initialMessages, isVisible)) + await settleVirtualizer(container) - it.each([0, MEASURE_SKEW_PX])( - 'leaves a reader just above the end while the row grows (skew %i)', - (skew) => { - setSkewedTail(4, skew) - const { container, rerender } = render(streamingList(4)) - paint(container) - const scroller = scrollRoot(container) + isVisible = false + rerender(list(initialMessages, isVisible)) + await settleVirtualizer(container) + rerender(list(appendedMessages, isVisible)) + await settleVirtualizer(container) - const readingAt = scroller.scrollHeight - scroller.clientHeight - READING_ABOVE_END_PX - scrollTranscript(container, readingAt) - paint(container) - expect(distanceFromBottom(container)).toBe(READING_ABOVE_END_PX) + isVisible = true + rerender(list(appendedMessages, isVisible)) + await settleVirtualizer(container) - for (let step = 5; step <= 10; step += 1) { - setSkewedTail(step, skew) - rerender(streamingList(step)) - paint(container) - - // Not dragged along: the offset the reader chose is the offset they keep, - // however much the row below them grows. - expect(scroller.scrollTop).toBe(readingAt) - } - } - ) - - it('still pins a reader who is at the end, with the gutter in the document', () => { - setSkewedTail(4) - const { container, rerender } = render(streamingList(4)) - paint(container) - expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) - - for (let step = 5; step <= 10; step += 1) { - setSkewedTail(step) - rerender(streamingList(step)) - paint(container) - - expect(distanceFromBottom(container)).toBeLessThanOrEqual(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) - } - }) + const scroller = scrollRoot(container) + expect( + scroller.scrollHeight - scroller.clientHeight - scroller.scrollTop + ).toBeLessThanOrEqual(NATIVE_CHAT_BOTTOM_THRESHOLD_PX) + expect(screen.queryByRole('button', { name: /jump to latest/i })).toBeNull() + } finally { + restoreResizeObserver() + restoreLayout() + } }) }) diff --git a/src/renderer/src/components/native-chat/NativeChatResolvedView.tsx b/src/renderer/src/components/native-chat/NativeChatResolvedView.tsx index 89f28683429..4f074fee22c 100644 --- a/src/renderer/src/components/native-chat/NativeChatResolvedView.tsx +++ b/src/renderer/src/components/native-chat/NativeChatResolvedView.tsx @@ -400,6 +400,7 @@ export function NativeChatResolvedView({ ) : ( (): T | null { type StructuredSessionMessageListProps = { allowFileUriLinks?: boolean + isVisible?: boolean onLinkClick?: (...args: unknown[]) => void showTurnStatus?: boolean showLiveTurnActivity?: boolean diff --git a/src/renderer/src/components/native-chat/NativeChatStructuredSession.test.tsx b/src/renderer/src/components/native-chat/NativeChatStructuredSession.test.tsx index 94d6fb78e29..41308dbce54 100644 --- a/src/renderer/src/components/native-chat/NativeChatStructuredSession.test.tsx +++ b/src/renderer/src/components/native-chat/NativeChatStructuredSession.test.tsx @@ -134,6 +134,23 @@ describe('NativeChatStructuredSession', () => { expect(mocks.fileLinkClick).toHaveBeenCalledWith(event, 'file:///repo/src/a.ts') }) + // The list defaults to visible, so a dropped prop silently re-arms auto-scroll + // on reveal and drags a reader who left a hidden pane detached to the bottom. + it.each([true, false])('tells the transcript the pane is visible: %s', (isVisible) => { + render( + + ) + + expect(mocks.messageListProps?.isVisible).toBe(isVisible) + }) + // Turn status and transcript image previews shipped Codex-first. Every // structured session renders through the same list, so neither is agent-gated. it.each(['codex', 'claude'] as const)( diff --git a/src/renderer/src/components/native-chat/NativeChatStructuredSession.tsx b/src/renderer/src/components/native-chat/NativeChatStructuredSession.tsx index acf80594d66..0da97ba0eba 100644 --- a/src/renderer/src/components/native-chat/NativeChatStructuredSession.tsx +++ b/src/renderer/src/components/native-chat/NativeChatStructuredSession.tsx @@ -18,22 +18,12 @@ import { useStructuredAgentSession } from './use-structured-agent-session' import { useNativeChatImageRuntimeContext } from './native-chat-image-runtime-context' import { useStructuredNativeChatPaneCommands } from './use-structured-native-chat-pane-commands' import type { NativeChatStructuredViewProps } from './native-chat-view-types' -import { NativeChatBackgroundTasksStatus } from './NativeChatBackgroundTasksStatus' +import { NativeChatStructuredSessionStatus } from './NativeChatStructuredSessionStatus' import { useNativeChatLaunchDraftSignal } from './use-native-chat-launch-draft-adoption' import { NativeChatLaunchRetry } from './NativeChatLaunchRetry' import { useNativeChatProvisionalLaunch } from './use-native-chat-provisional-launch' import { NativeChatDeliveryRetry } from './NativeChatDeliveryRetry' -type StoppingBackgroundTasks = { - sessionId: string - taskIds: ReadonlySet - all: boolean -} - -const NO_STOPPING_TASKS: ReadonlySet = new Set() - -type ExpandedBackgroundTasks = { sessionId: string; expanded: boolean } - function encodeQuestionAnswer(questionId: string, answer: string): string { return `${encodeURIComponent(questionId)}:${encodeURIComponent(answer)}` } @@ -59,12 +49,6 @@ export function NativeChatStructuredSession( transcriptLoading: controller.status === 'idle' || controller.status === 'loading' }) const [composerError, setComposerError] = useState(null) - const [stoppingBackgroundTasks, setStoppingBackgroundTasks] = - useState(null) - // Held here, not in the strip: the strip unmounts whenever live work briefly - // drops to nothing, and its own state would collapse the list each time. - const [expandedBackgroundTasks, setExpandedBackgroundTasks] = - useState(null) const [optionPickerRequest, setOptionPickerRequest] = useState<{ id: string sequence: number @@ -119,8 +103,6 @@ export function NativeChatStructuredSession( rootRef, { sessionId: props.sessionId, isVisible: props.isVisible } ) - const activeStoppingBackgroundTasks = - stoppingBackgroundTasks?.sessionId === props.sessionId ? stoppingBackgroundTasks : null const prompt = controller.prompts[0] ?? null const cancelPrompt = () => { if (controller.turnId && prompt) { @@ -225,6 +207,7 @@ export function NativeChatStructuredSession( - {controller.error || composerError ? ( -

- {controller.error ?? composerError} -

- ) : null} - {controller.backgroundTasks.show ? ( - - setExpandedBackgroundTasks({ sessionId: props.sessionId, expanded }) - } - onStop={(taskId) => { - const targetSessionId = props.sessionId - setStoppingBackgroundTasks((current) => { - const taskIds = new Set( - current?.sessionId === targetSessionId ? current.taskIds : NO_STOPPING_TASKS - ) - if (taskId) { - taskIds.add(taskId) - } - return { - sessionId: targetSessionId, - taskIds, - all: taskId ? current?.sessionId === targetSessionId && current.all : true - } - }) - void controller.stopBackgroundTask(taskId).finally(() => { - setStoppingBackgroundTasks((current) => { - if (current?.sessionId !== targetSessionId) { - return current - } - const taskIds = new Set(current.taskIds) - if (taskId) { - taskIds.delete(taskId) - } - const all = taskId ? current.all : false - return taskIds.size === 0 && !all - ? null - : { sessionId: targetSessionId, taskIds, all } - }) - }) - }} - /> - ) : null} + {prompt ? null : ( + all: boolean +} + +const NO_STOPPING_TASKS: ReadonlySet = new Set() + +export function NativeChatStructuredSessionStatus(props: { + sessionId: string + error: string | null + composerError: string | null + isVisible: boolean + backgroundTasks: StructuredSessionBackgroundTasksView + stopBackgroundTask: (taskId?: string) => Promise +}): React.JSX.Element { + const [stopping, setStopping] = useState(null) + const [expanded, setExpanded] = useState<{ sessionId: string; expanded: boolean } | null>(null) + const activeStopping = stopping?.sessionId === props.sessionId ? stopping : null + + const onStop = (taskId?: string) => { + const sessionId = props.sessionId + setStopping((current) => { + const taskIds = new Set( + current?.sessionId === sessionId ? current.taskIds : NO_STOPPING_TASKS + ) + if (taskId) { + taskIds.add(taskId) + } + return { + sessionId, + taskIds, + all: taskId ? current?.sessionId === sessionId && current.all : true + } + }) + void props.stopBackgroundTask(taskId).finally(() => { + setStopping((current) => { + if (current?.sessionId !== sessionId) { + return current + } + const taskIds = new Set(current.taskIds) + if (taskId) { + taskIds.delete(taskId) + } + const all = taskId ? current.all : false + return taskIds.size === 0 && !all ? null : { sessionId, taskIds, all } + }) + }) + } + + return ( + <> + {props.error || props.composerError ? ( +

+ {props.error ?? props.composerError} +

+ ) : null} + {props.backgroundTasks.show ? ( + setExpanded({ sessionId: props.sessionId, expanded: value })} + onStop={onStop} + /> + ) : null} + + ) +} diff --git a/src/renderer/src/components/native-chat/StructuredAgentSessionStatusBridge.test.tsx b/src/renderer/src/components/native-chat/StructuredAgentSessionStatusBridge.test.tsx index b82f2418514..f2c77fb5c98 100644 --- a/src/renderer/src/components/native-chat/StructuredAgentSessionStatusBridge.test.tsx +++ b/src/renderer/src/components/native-chat/StructuredAgentSessionStatusBridge.test.tsx @@ -320,18 +320,20 @@ describe('StructuredAgentSessionStatusBridge', () => { expect(statuses()).toEqual([expect.objectContaining({ subagents: undefined })]) }) - it('keeps quiet live children authoritative and reconfirms them per session after reconnect', async () => { + it('requires fresh parent evidence as well as a reconfirmed feed after reconnect', async () => { render() await waitFor(() => expect(mocks.subscribeStatus).toHaveBeenCalledOnce()) const live = summary({ backgroundTasks: [{ id: 'child', kind: 'agent', state: 'working' }] }) + let parentIsFresh = false const childState = () => buildSubagentChildRows({ parentEntry: statuses()[0], tab: structuredTab as never, - parentIsFresh: false + parentIsFresh })[0]?.state act(() => feed().emit({ type: 'snapshot', sessions: [live] })) - // A hook's evidence window has expired, but the host has not retracted its live task. + expect(childState()).toBe('unverifiable') + parentIsFresh = true expect(childState()).toBe('working') act(() => feed().emit({ type: 'end' })) expect(childState()).toBe('unverifiable') @@ -340,6 +342,8 @@ describe('StructuredAgentSessionStatusBridge', () => { expect(childState()).toBe('unverifiable') act(() => feed(1).emit({ type: 'status', session: live })) expect(childState()).toBe('working') + parentIsFresh = false + expect(childState()).toBe('unverifiable') const writes = mocks.setAgentStatus.mock.calls.length act(() => feed(1).emit({ type: 'status', session: live })) expect(mocks.setAgentStatus).toHaveBeenCalledTimes(writes) diff --git a/src/renderer/src/components/native-chat/native-chat-windowing-test-harness.tsx b/src/renderer/src/components/native-chat/native-chat-windowing-test-harness.tsx index 9f204078dcb..ea5b4cca407 100644 --- a/src/renderer/src/components/native-chat/native-chat-windowing-test-harness.tsx +++ b/src/renderer/src/components/native-chat/native-chat-windowing-test-harness.tsx @@ -91,18 +91,36 @@ export function reservedTranscriptHeight(root: ParentNode): number { export function stubLayout({ scrollGeometry = false, offsetChain = false, - viewportHeight = () => VIEWPORT_PX + viewportHeight = () => VIEWPORT_PX, + isVisible = () => true }: { scrollGeometry?: boolean /** Give the spacer an `offsetTop` and a chain to walk up to the scroll root, * so `scrollMargin` can be something other than zero. */ offsetChain?: boolean viewportHeight?: () => number + /** A hidden transcript measures as nothing, the way `display: none` does. */ + isVisible?: () => boolean } = {}): () => void { - const scrollTops = new WeakMap() + let scrollTops = new WeakMap() + let wasLaidOut = isVisible() + /** Losing the box drops the retained offset, the way `display: none` does in a + * browser: a revealed pane reads a reader's place back only if production + * restored it. */ + const laidOut = (): boolean => { + const nowLaidOut = isVisible() + if (wasLaidOut && !nowLaidOut) { + scrollTops = new WeakMap() + } + wasLaidOut = nowLaidOut + return nowLaidOut + } const restores = [ overrideLayoutProperty('offsetHeight', { get(this: HTMLElement): number { + if (!laidOut()) { + return 0 + } if (this.hasAttribute('data-native-chat-scroll')) { return viewportHeight() } @@ -125,21 +143,27 @@ export function stubLayout({ restores.push( overrideLayoutProperty('clientHeight', { get(this: HTMLElement): number { - return this.hasAttribute('data-native-chat-scroll') ? viewportHeight() : 0 + return this.hasAttribute('data-native-chat-scroll') && laidOut() ? viewportHeight() : 0 } }), overrideLayoutProperty('scrollHeight', { get(this: HTMLElement): number { - return this.hasAttribute('data-native-chat-scroll') + return this.hasAttribute('data-native-chat-scroll') && laidOut() ? layout.aboveTranscriptPx + reservedTranscriptHeight(this) + layout.belowTranscriptPx : 0 } }), overrideLayoutProperty('scrollTop', { get(this: HTMLElement): number { + if (this.hasAttribute('data-native-chat-scroll') && !laidOut()) { + return 0 + } return scrollTops.get(this) ?? 0 }, set(this: HTMLElement, value: number): void { + if (this.hasAttribute('data-native-chat-scroll') && !laidOut()) { + return + } // A browser clamps; without this `scrollTop = scrollHeight` would park // the view past the end and every distance-from-bottom would read 0. const max = Math.max(0, this.scrollHeight - this.clientHeight) @@ -245,10 +269,11 @@ export function session(messages: NativeChatMessage[]): NativeChatLiveSession { } } -export function list(messages: NativeChatMessage[]): React.JSX.Element { +export function list(messages: NativeChatMessage[], isVisible = true): React.JSX.Element { return ( void + scrollToEnd: () => void +}): React.JSX.Element { + const scrollRef = useRef(null) + const contentRef = useRef(null) + const transcript = useNativeChatTranscriptScroll({ + scrollRef, + contentRef, + itemCount: 100, + isWorking: false, + showTypingIndicator: false, + isVisible, + hasMore: false, + loadingEarlier: false, + loadEarlier: vi.fn(), + alignToViewportTop: vi.fn(), + scrollToEnd, + restoreScrollOffset, + consumeProgrammaticScroll: () => false, + reconcileReaderScroll: vi.fn() + }) + return ( +
+
+
+ ) +} + +afterEach(cleanup) + +describe('native chat transcript visibility', () => { + it('restores the last detached offset when a retained tab is revealed', () => { + let scrollTop = 900 + const scrollToEnd = vi.fn() + let scrollElement: HTMLElement | null = null + const restoreScrollOffset = vi.fn((offset: number) => { + scrollTop = offset + }) + const view = render( + + ) + scrollElement = view.getByTestId('scroll') + Object.defineProperties(scrollElement, { + clientHeight: { configurable: true, get: () => 100 }, + scrollHeight: { configurable: true, get: () => 1_000 }, + scrollTop: { + configurable: true, + get: () => scrollTop, + set: (value: number) => { + scrollTop = value + } + } + }) + + scrollTop = 320 + fireEvent.scroll(scrollElement) + view.rerender( + + ) + + // A reveal-time geometry reconciliation can drift the retained DOM to its end. + scrollTop = 900 + fireEvent.scroll(scrollElement) + view.rerender( + + ) + + expect(restoreScrollOffset).toHaveBeenCalledExactlyOnceWith(320) + expect(scrollTop).toBe(320) + }) +}) diff --git a/src/renderer/src/components/native-chat/use-native-chat-transcript-scroll.ts b/src/renderer/src/components/native-chat/use-native-chat-transcript-scroll.ts index c54cbf54e85..fa87d3f333b 100644 --- a/src/renderer/src/components/native-chat/use-native-chat-transcript-scroll.ts +++ b/src/renderer/src/components/native-chat/use-native-chat-transcript-scroll.ts @@ -35,6 +35,10 @@ function geometryOf(element: HTMLElement): ScrollGeometry { } } +function hasMeasurableViewport(element: HTMLElement | null): element is HTMLElement { + return element !== null && element.clientHeight > 0 +} + export type NativeChatTranscriptScroll = { showJump: boolean onScroll: UIEventHandler @@ -49,11 +53,13 @@ export function useNativeChatTranscriptScroll({ itemCount, isWorking, showTypingIndicator, + isVisible, hasMore, loadingEarlier, loadEarlier, alignToViewportTop, scrollToEnd, + restoreScrollOffset, consumeProgrammaticScroll, reconcileReaderScroll }: { @@ -62,23 +68,28 @@ export function useNativeChatTranscriptScroll({ itemCount: number isWorking: boolean showTypingIndicator: boolean + isVisible: boolean hasMore: boolean loadingEarlier: boolean loadEarlier: () => void alignToViewportTop: (element: HTMLElement) => void scrollToEnd: () => void + restoreScrollOffset: (offset: number) => void consumeProgrammaticScroll: (event: Event) => boolean reconcileReaderScroll: (isTakingOver: boolean) => void }): NativeChatTranscriptScroll { const [showJump, setShowJump] = useState(false) const followingRef = useRef(true) + const detachedScrollTopRef = useRef(null) + const isVisibleRef = useRef(isVisible) + const previousIsVisibleRef = useRef(isVisible) const previousScrollTopRef = useRef(0) const loadEarlierRequestedAtRef = useRef(null) const syncScrollState = useCallback( (event?: Event): ScrollGeometry | null => { const element = scrollRef.current - if (!element) { + if (!isVisibleRef.current || !hasMeasurableViewport(element)) { return null } const geometry = geometryOf(element) @@ -95,6 +106,7 @@ export function useNativeChatTranscriptScroll({ reconcileReaderScroll(wasFollowing && !following) } } + detachedScrollTopRef.current = followingRef.current ? null : geometry.scrollTop setShowJump(shouldShowJumpToLatest(followingRef.current, geometry)) return geometry }, @@ -129,11 +141,17 @@ export function useNativeChatTranscriptScroll({ [hasMore, itemCount, loadEarlier, loadingEarlier, syncScrollState] ) + const scrollToEndWhenMeasurable = useCallback(() => { + if (hasMeasurableViewport(scrollRef.current)) { + scrollToEnd() + } + }, [scrollRef, scrollToEnd]) + const scrollToBottom = useCallback(() => { followingRef.current = true - scrollToEnd() + scrollToEndWhenMeasurable() setShowJump(false) - }, [scrollToEnd]) + }, [scrollToEndWhenMeasurable]) const scrollMessageToTop = useCallback( (element: HTMLElement) => { @@ -144,10 +162,27 @@ export function useNativeChatTranscriptScroll({ ) useLayoutEffect(() => { - if (followingRef.current) { - scrollToEnd() + const revealed = isVisible && !previousIsVisibleRef.current + isVisibleRef.current = isVisible + previousIsVisibleRef.current = isVisible + if (!isVisible) { + return } - }, [itemCount, isWorking, showTypingIndicator, scrollToEnd]) + if (!followingRef.current) { + if (revealed && detachedScrollTopRef.current !== null) { + restoreScrollOffset(detachedScrollTopRef.current) + } + return + } + scrollToEndWhenMeasurable() + }, [ + isVisible, + itemCount, + isWorking, + restoreScrollOffset, + showTypingIndicator, + scrollToEndWhenMeasurable + ]) useEffect(() => { const element = scrollRef.current @@ -156,7 +191,7 @@ export function useNativeChatTranscriptScroll({ } const observer = new ResizeObserver(() => { if (followingRef.current) { - scrollToEnd() + scrollToEndWhenMeasurable() } else { syncScrollState() } @@ -168,7 +203,7 @@ export function useNativeChatTranscriptScroll({ observer.observe(contentRef.current) } return () => observer.disconnect() - }, [contentRef, scrollRef, scrollToEnd, syncScrollState]) + }, [contentRef, scrollRef, scrollToEndWhenMeasurable, syncScrollState]) return { showJump, onScroll, scrollToBottom, scrollMessageToTop } } diff --git a/src/renderer/src/components/native-chat/use-native-chat-transcript-window.options.test.tsx b/src/renderer/src/components/native-chat/use-native-chat-transcript-window.options.test.tsx index 82166952670..70ddd5d4f34 100644 --- a/src/renderer/src/components/native-chat/use-native-chat-transcript-window.options.test.tsx +++ b/src/renderer/src/components/native-chat/use-native-chat-transcript-window.options.test.tsx @@ -67,13 +67,16 @@ afterEach(() => { }) describe('native chat transcript virtualizer contract', () => { - it('retains prepend anchoring without independently following the end', () => { - renderHook(() => - useNativeChatTranscriptWindow({ - scrollRef: { current: null }, - slots: [], - revealIndex: -1 - }) + it('retains prepend anchoring without geometry-driven end following', () => { + const { rerender } = renderHook( + ({ isVisible }) => + useNativeChatTranscriptWindow({ + scrollRef: { current: null }, + slots: [], + isVisible, + revealIndex: -1 + }), + { initialProps: { isVisible: false } } ) expect(virtualizerMock.options.current).toMatchObject({ @@ -81,6 +84,14 @@ describe('native chat transcript virtualizer contract', () => { followOnAppend: false, scrollEndThreshold: -1 }) + + rerender({ isVisible: true }) + + expect(virtualizerMock.options.current).toMatchObject({ + anchorTo: 'end', + followOnAppend: false, + scrollEndThreshold: -1 + }) }) it('periodically resets retired measurements while restoring live measured sizes', () => { @@ -95,6 +106,7 @@ describe('native chat transcript virtualizer contract', () => { useNativeChatTranscriptWindow({ scrollRef: { current: scrollElement }, slots: [slot(id)], + isVisible: true, revealIndex: -1 }), { initialProps: { id: 'message-0' } } @@ -115,7 +127,12 @@ describe('native chat transcript virtualizer contract', () => { ({ text }) => { const current = slot('message-0') current.message.blocks = [{ type: 'text', text }] - return useNativeChatTranscriptWindow({ scrollRef, slots: [current], revealIndex: -1 }) + return useNativeChatTranscriptWindow({ + scrollRef, + slots: [current], + isVisible: true, + revealIndex: -1 + }) }, { initialProps: { text: 'first' } } ) @@ -145,6 +162,7 @@ describe('native chat transcript virtualizer contract', () => { useNativeChatTranscriptWindow({ scrollRef: { current: scrollElement }, slots: [slot('message-0')], + isVisible: true, revealIndex: -1 }) ) @@ -156,6 +174,25 @@ describe('native chat transcript virtualizer contract', () => { expect(result.current.consumeProgrammaticScroll(new Event('scroll'))).toBe(true) }) + it('restores a detached offset through the virtualizer', () => { + const scrollElement = document.createElement('div') + virtualizerMock.scrollElement.current = scrollElement + const { result } = renderHook(() => + useNativeChatTranscriptWindow({ + scrollRef: { current: scrollElement }, + slots: [slot('message-0')], + isVisible: true, + revealIndex: -1 + }) + ) + + result.current.restoreScrollOffset(320) + + expect(virtualizerMock.scrollToOffset).toHaveBeenCalledExactlyOnceWith(320, { + behavior: 'auto' + }) + }) + it('lets an explicit reveal supersede a pending reader takeover', () => { const scrollElement = document.createElement('div') const target = document.createElement('div') @@ -165,6 +202,7 @@ describe('native chat transcript virtualizer contract', () => { useNativeChatTranscriptWindow({ scrollRef: { current: scrollElement }, slots: [slot('message-0')], + isVisible: true, revealIndex: -1 }) ) diff --git a/src/renderer/src/components/native-chat/use-native-chat-transcript-window.ts b/src/renderer/src/components/native-chat/use-native-chat-transcript-window.ts index 15604bcb9a2..77546388020 100644 --- a/src/renderer/src/components/native-chat/use-native-chat-transcript-window.ts +++ b/src/renderer/src/components/native-chat/use-native-chat-transcript-window.ts @@ -41,6 +41,8 @@ export type NativeChatTranscriptWindow = { * browser's real max scroll, so this lands where the document bottom is, * trailing chrome included. */ scrollToEnd: () => void + /** Restore a detached reader offset through the virtualizer's scroll owner. */ + restoreScrollOffset: (offset: number) => void /** True when this scroll event is the echo of a registered application write. */ consumeProgrammaticScroll: (event: Event) => boolean /** Rebase a pending end reconcile while the reader takes over this frame. */ @@ -84,10 +86,12 @@ function rectOffsetWithin(element: HTMLElement, container: HTMLElement): number export function useNativeChatTranscriptWindow({ scrollRef, slots, + isVisible, revealIndex }: { scrollRef: React.RefObject slots: readonly NativeChatTranscriptSlot[] + isVisible: boolean /** Slot the transcript was asked to reveal, or -1. */ revealIndex: number }): NativeChatTranscriptWindow { @@ -275,7 +279,7 @@ export function useNativeChatTranscriptWindow({ const scrollToEnd = useCallback(() => { const container = scrollRef.current - if (!container) { + if (!isVisible || !container) { return } finishReaderTakeover() @@ -290,7 +294,27 @@ export function useNativeChatTranscriptWindow({ if (container.scrollTop !== previous) { programmaticScrollMarks.mark(container.scrollTop) } - }, [finishReaderTakeover, programmaticScrollMarks, scrollRef, virtualizer]) + }, [finishReaderTakeover, isVisible, programmaticScrollMarks, scrollRef, virtualizer]) + + const restoreScrollOffset = useCallback( + (offset: number) => { + const container = scrollRef.current + if (!isVisible || !container) { + return + } + finishReaderTakeover() + if (virtualizer.scrollElement) { + virtualizer.scrollToOffset(offset, { behavior: 'auto' }) + return + } + const previous = container.scrollTop + container.scrollTop = offset + if (container.scrollTop !== previous) { + programmaticScrollMarks.mark(container.scrollTop) + } + }, + [finishReaderTakeover, isVisible, programmaticScrollMarks, scrollRef, virtualizer] + ) const consumeProgrammaticScroll = useCallback( (event: Event): boolean => { @@ -338,6 +362,7 @@ export function useNativeChatTranscriptWindow({ measureRow: virtualizer.measureElement, alignToViewportTop, scrollToEnd, + restoreScrollOffset, consumeProgrammaticScroll, reconcileReaderScroll } diff --git a/src/renderer/src/components/settings/LinearAgentSkillGuide.test.tsx b/src/renderer/src/components/settings/LinearAgentSkillGuide.test.tsx index 75da65cd885..d362fc1218b 100644 --- a/src/renderer/src/components/settings/LinearAgentSkillGuide.test.tsx +++ b/src/renderer/src/components/settings/LinearAgentSkillGuide.test.tsx @@ -1,25 +1,30 @@ import { renderToStaticMarkup } from 'react-dom/server' import { describe, expect, it, vi } from 'vitest' -import { LinearAgentSkillGuide } from './LinearAgentSkillGuide' +import { LinearAgentSkillGuide, type LinearSetupReadiness } from './LinearAgentSkillGuide' -const baseStatus = { +const baseReadiness: LinearSetupReadiness = { connected: true, - connectionChecking: false, + checking: false, skillInstalled: false, skillChecking: false, - visibleInTasks: true + skillUnverifiable: false, + visible: true +} + +function renderGuide(readiness: Partial): string { + return renderToStaticMarkup( + Skill install panel
} + /> + ) } describe('LinearAgentSkillGuide', () => { it('renders the setup checklist with an inlined skill panel', () => { - const markup = renderToStaticMarkup( - Skill install panel
} - /> - ) + const markup = renderGuide({}) expect(markup).toContain('Setup checklist') expect(markup).toContain('2 of 3 ready') @@ -32,34 +37,11 @@ describe('LinearAgentSkillGuide', () => { }) it('marks the checklist complete when every step is done', () => { - const markup = renderToStaticMarkup( - Skill panel
} - /> - ) - - expect(markup).toContain('All set') + expect(renderGuide({ skillInstalled: true })).toContain('All set') }) it('keeps durable progress while a skill recheck is in flight', () => { - const markup = renderToStaticMarkup( - Skill panel} - /> - ) + const markup = renderGuide({ skillInstalled: true, skillChecking: true }) expect(markup).toContain('Checking…') expect(markup).not.toContain('2 of 3 ready') @@ -67,20 +49,53 @@ describe('LinearAgentSkillGuide', () => { }) it('keeps durable progress while a connection check is in flight', () => { - const markup = renderToStaticMarkup( - Skill panel} - /> - ) + const markup = renderGuide({ skillInstalled: true, checking: true }) expect(markup).toContain('Checking…') expect(markup).not.toContain('2 of 3 ready') }) + + // The reported bug: a scan that could not vouch for "not installed" was counted + // as a step the user had left undone. + it('reports an unverifiable skill scan as unknown instead of an unfinished step', () => { + const markup = renderGuide({ skillUnverifiable: true }) + + expect(markup).toContain('Cannot verify') + expect(markup).toContain('2/3') + expect(markup).toContain('bg-amber-500') + expect(markup).not.toContain('2 of 3 ready') + expect(markup).not.toContain('All set') + }) + + it('still claims nothing while a rescan of an unverifiable step runs', () => { + const markup = renderGuide({ skillUnverifiable: true, skillChecking: true }) + + expect(markup).toContain('Checking…') + expect(markup).not.toContain('Cannot verify') + }) + + it('lets a found skill outrank a stale unverifiable flag', () => { + const markup = renderGuide({ skillInstalled: true, skillUnverifiable: true }) + + expect(markup).toContain('All set') + expect(markup).not.toContain('Cannot verify') + }) + + // The unknown-skill label is only the headline when the skill is the sole open + // question; a plainly unfinished step must still read as the count. + it('keeps the confirmed count when the unfinished step is the connection', () => { + const markup = renderGuide({ connected: false, skillUnverifiable: true }) + + expect(markup).toContain('1 of 3 ready') + expect(markup).not.toContain('Cannot verify') + }) + + it('does not headline an unknown skill over an unfinished visibility step', () => { + const markup = renderGuide({ visible: false, skillUnverifiable: true }) + + expect(markup).toContain('1 of 3 ready') + expect(markup).not.toContain('Cannot verify') + // Hiding Linear is deliberate, so the shared table keeps this pill neutral. + expect(markup).not.toContain('bg-amber-500') + }) }) diff --git a/src/renderer/src/components/settings/LinearAgentSkillGuide.tsx b/src/renderer/src/components/settings/LinearAgentSkillGuide.tsx index 0bbcc77ec5f..ca3b6a5f165 100644 --- a/src/renderer/src/components/settings/LinearAgentSkillGuide.tsx +++ b/src/renderer/src/components/settings/LinearAgentSkillGuide.tsx @@ -1,19 +1,27 @@ import type { ReactNode } from 'react' -import { Check, Circle } from 'lucide-react' +import { Check, Circle, TriangleAlert } from 'lucide-react' import { Button } from '@/components/ui/button' -import { IntegrationStatusPill } from '@/components/integration-status-pill' +import { + IntegrationStatusPill, + type IntegrationStatusTone +} from '@/components/integration-status-pill' +import { + TASK_PROVIDER_SETUP_STATUS_TONE, + getTaskProviderCompletedSteps, + getTaskProviderSetupStatus, + type TaskProviderReadiness +} from './task-source-setup-state' import { translate } from '@/i18n/i18n' -export type LinearSetupStepStatus = { - connected: boolean - connectionChecking: boolean +/** The guide renders the skill row, so unlike other providers those facts are required. */ +export type LinearSetupReadiness = TaskProviderReadiness & { skillInstalled: boolean skillChecking: boolean - visibleInTasks: boolean + skillUnverifiable: boolean } type LinearAgentSkillGuideProps = { - status: LinearSetupStepStatus + readiness: LinearSetupReadiness onOpenTaskSources: () => void onManageLinearAccess: () => void // Why: skill install/update lives once under step 2 so the page does not @@ -23,10 +31,12 @@ type LinearAgentSkillGuideProps = { function SetupStatusIcon({ done, - checking + checking, + unverifiable }: { done: boolean checking: boolean + unverifiable?: boolean }): React.JSX.Element { // Keep a fixed size-5 slot so checking/done/pending never shift the column. if (checking) { @@ -36,6 +46,15 @@ function SetupStatusIcon({ ) } + // Why above `done`: an unvouched-for scan says nothing about the step either + // way, and painting it as pending is the claim this checklist got wrong. + if (unverifiable) { + return ( + + + + ) + } if (done) { return ( @@ -50,21 +69,64 @@ function SetupStatusIcon({ ) } +type LinearSetupPill = { tone: IntegrationStatusTone; label: string; showCount: boolean } + +function getLinearSetupPill(readiness: LinearSetupReadiness): LinearSetupPill { + const { completed, total } = getTaskProviderCompletedSteps(readiness) + // Why: route through the card's status so the two Linear surfaces share one + // precedence. Reading `skillUnverifiable` directly here headlined "Cannot verify" + // over a step the user had plainly not done (or before they had even connected). + const status = getTaskProviderSetupStatus(readiness) + // Tone is the shared table's call, not this surface's; only the copy differs. + const tone = TASK_PROVIDER_SETUP_STATUS_TONE[status] + if (status === 'checking') { + return { + tone, + label: translate('auto.components.settings.LinearAgentSkillGuide.setupChecking', 'Checking…'), + showCount: false + } + } + if (status === 'ready') { + return { + tone, + label: translate('auto.components.settings.LinearAgentSkillGuide.setupReady', 'All set'), + showCount: false + } + } + // Why: a scan that cannot vouch for "not installed" must not be counted against + // the user, so the label reports what was confirmed instead of asserting a failure. + if (status === 'skill-unverified') { + return { + tone, + label: translate( + 'auto.components.settings.LinearAgentSkillGuide.setupUnverified', + 'Cannot verify' + ), + showCount: true + } + } + return { + tone, + label: translate( + 'auto.components.settings.LinearAgentSkillGuide.setupProgress', + '{{done}} of {{total}} ready', + { done: completed, total } + ), + showCount: false + } +} + // Connect, skill, and Tasks visibility in one checklist — skill UI is inlined. export function LinearAgentSkillGuide({ - status, + readiness, onOpenTaskSources, onManageLinearAccess, skillPanel }: LinearAgentSkillGuideProps): React.JSX.Element { - // Count durable outcomes even while a recheck runs so the pill does not flash - // from "All set" down to "2 of 3 ready" during skill/connection scans. - const checking = status.connectionChecking || status.skillChecking - const completed = [status.connected, status.skillInstalled, status.visibleInTasks].filter( - Boolean - ).length - const total = 3 - const allReady = completed === total && !checking + // Share the Task Sources card's arithmetic so the two Linear setup surfaces + // cannot disagree about the same three facts; the copy stays count-based here. + const pill = getLinearSetupPill(readiness) + const { completed, total } = getTaskProviderCompletedSteps(readiness) return (
@@ -83,23 +145,22 @@ export function LinearAgentSkillGuide({ )}

- - {checking - ? translate('auto.components.settings.LinearAgentSkillGuide.setupChecking', 'Checking…') - : allReady - ? translate('auto.components.settings.LinearAgentSkillGuide.setupReady', 'All set') - : translate( - 'auto.components.settings.LinearAgentSkillGuide.setupProgress', - '{{done}} of {{total}} ready', - { done: completed, total } - )} - + + {pill.label} + {pill.showCount ? ( + // Mirrors the Task Sources card so the confirmed count survives a label + // that no longer carries it. + + {`${completed}/${total}`} + + ) : null} +
- +

@@ -118,11 +179,11 @@ export function LinearAgentSkillGuide({ ') expect(markup).not.toContain('>Hide') }) + + it('labels an unverifiable skill scan as unknown while keeping the confirmed count', () => { + const markup = renderToStaticMarkup( + } + name="Linear" + description="Linear setup" + readiness={{ ...readiness, connected: true, skillUnverifiable: true }} + visible + canHide + defaultExpanded={false} + onToggleVisible={vi.fn()} + /> + ) + + expect(markup).toContain('Cannot verify') + expect(markup).toContain('2/3') + expect(markup).not.toContain('Skill required') + }) }) diff --git a/src/renderer/src/components/settings/TaskSourceProviderCard.tsx b/src/renderer/src/components/settings/TaskSourceProviderCard.tsx index 56e77fa5931..fa77b71c699 100644 --- a/src/renderer/src/components/settings/TaskSourceProviderCard.tsx +++ b/src/renderer/src/components/settings/TaskSourceProviderCard.tsx @@ -45,6 +45,11 @@ function getSetupStatusLabel(status: TaskProviderSetupStatus): string { 'auto.components.settings.TaskSourceProviderCard.statusSkillRequired', 'Skill required' ) + case 'skill-unverified': + return translate( + 'auto.components.settings.TaskSourceProviderCard.statusUnverified', + 'Cannot verify' + ) case 'unavailable': return translate( 'auto.components.settings.TaskSourceProviderCard.statusUnavailable', diff --git a/src/renderer/src/components/settings/task-source-setup-state.test.ts b/src/renderer/src/components/settings/task-source-setup-state.test.ts index 6eec46a34db..40bccf9f73e 100644 --- a/src/renderer/src/components/settings/task-source-setup-state.test.ts +++ b/src/renderer/src/components/settings/task-source-setup-state.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import type { TaskProvider } from '../../../../shared/task-providers' import { + TASK_PROVIDER_SETUP_STATUS_TONE, getAutoExpandedTaskProvider, getIncompleteVisibleTaskProviders, getStalledVisibleTaskProviders, @@ -84,6 +85,46 @@ describe('task-source-setup-state', () => { expect(isTaskProviderReady({ connected: true, checking: true, visible: true })).toBe(false) }) + // A skill scan that could not vouch for "not installed" is not a step the user + // left undone, so it must not read as `skill-required`. + it('reports an unverifiable skill scan as unknown rather than as a missing step', () => { + const unverifiable = { + connected: true, + checking: false, + skillInstalled: false, + skillChecking: false, + skillUnverifiable: true, + visible: true + } + + expect(getTaskProviderSetupStatus(unverifiable)).toBe('skill-unverified') + expect(TASK_PROVIDER_SETUP_STATUS_TONE['skill-unverified']).toBe('attention') + expect(isTaskProviderReady(unverifiable)).toBe(false) + // The count reports confirmed steps, so it is unchanged by the unknown. + expect(getTaskProviderCompletedSteps(unverifiable)).toEqual({ completed: 2, total: 3 }) + }) + + it('keeps an in-flight check and an unconnected provider ahead of an unverifiable scan', () => { + expect( + getTaskProviderSetupStatus({ + connected: true, + checking: true, + skillInstalled: false, + skillUnverifiable: true, + visible: true + }) + ).toBe('checking') + expect( + getTaskProviderSetupStatus({ + connected: false, + checking: false, + skillInstalled: false, + skillUnverifiable: true, + visible: true + }) + ).toBe('connect-required') + }) + it('reports the first unmet step as the status', () => { expect(getTaskProviderSetupStatus({ connected: false, checking: true, visible: true })).toBe( 'checking' diff --git a/src/renderer/src/components/settings/task-source-setup-state.ts b/src/renderer/src/components/settings/task-source-setup-state.ts index 628de69dbf0..bc6babe07ea 100644 --- a/src/renderer/src/components/settings/task-source-setup-state.ts +++ b/src/renderer/src/components/settings/task-source-setup-state.ts @@ -8,6 +8,8 @@ export type TaskProviderReadiness = { /** Linear only — agent skill install. Other providers leave this undefined. */ skillInstalled?: boolean skillChecking?: boolean + /** The scan could not vouch for `skillInstalled: false`: an unread root, or an error before any answer. */ + skillUnverifiable?: boolean visible: boolean } @@ -16,6 +18,7 @@ export type TaskProviderSetupStatus = | 'ready' | 'connect-required' | 'skill-required' + | 'skill-unverified' | 'unavailable' | 'hidden' | 'incomplete' @@ -30,6 +33,7 @@ export const TASK_PROVIDER_SETUP_STATUS_TONE: Record< hidden: 'neutral', 'connect-required': 'attention', 'skill-required': 'attention', + 'skill-unverified': 'attention', unavailable: 'attention', incomplete: 'attention' } @@ -83,6 +87,10 @@ export function getTaskProviderSetupStatus( if (!readiness.connected) { return 'connect-required' } + // Why before `skill-required`: that status offers Install, which reinstalls a skill that may be present. + if (readiness.skillUnverifiable) { + return 'skill-unverified' + } if (readiness.skillInstalled === false) { return 'skill-required' } diff --git a/src/renderer/src/components/settings/use-linear-agent-skill-setup.ts b/src/renderer/src/components/settings/use-linear-agent-skill-setup.ts index 46c7ea2b932..f3a32534fe4 100644 --- a/src/renderer/src/components/settings/use-linear-agent-skill-setup.ts +++ b/src/renderer/src/components/settings/use-linear-agent-skill-setup.ts @@ -30,6 +30,8 @@ export function useLinearAgentSkillSetup(): { // Status surfaces (step badges, checklist pills) read this so a focus-triggered // rescan does not flip a known result back to "checking". skillChecking: boolean + /** The scan could not vouch for "not installed", so no surface may claim it. */ + skillUnverifiable: boolean installDisabled: boolean error: string | null terminalShellOverride: string | undefined @@ -44,6 +46,7 @@ export function useLinearAgentSkillSetup(): { installed: skillInstalled, loading: skillLoading, settled: skillSettled, + installedUnverifiable: skillUnverifiable, error: skillError, skills: linearSkills, refresh: refreshSkill @@ -98,6 +101,7 @@ export function useLinearAgentSkillSetup(): { skillInstalled, skillLoading, skillChecking: skillLoading && !skillSettled, + skillUnverifiable, installDisabled, error: activeSkillRuntime.installDisabledReason ?? skillError, terminalShellOverride: activeSkillRuntime.terminalShellOverride, diff --git a/src/renderer/src/components/settings/use-task-source-provider-readiness.test.tsx b/src/renderer/src/components/settings/use-task-source-provider-readiness.test.tsx index d00a358996f..ac1df506058 100644 --- a/src/renderer/src/components/settings/use-task-source-provider-readiness.test.tsx +++ b/src/renderer/src/components/settings/use-task-source-provider-readiness.test.tsx @@ -13,8 +13,10 @@ const mocks = vi.hoisted(() => ({ installed: false, loading: false, settled: true, + installedUnverifiable: false, error: null, skills: [], + sources: [], refresh: vi.fn() } })) @@ -91,8 +93,10 @@ beforeEach(() => { installed: true, loading: false, settled: true, + installedUnverifiable: false, error: null, skills: [], + sources: [], refresh: vi.fn() } }) @@ -169,4 +173,12 @@ describe('useTaskSourceProviderReadiness', () => { await renderProbe(['github', 'linear', 'jira']) expect(latest?.jira.visible).toBe(true) }) + + it('carries an unverifiable skill scan through to Linear readiness', async () => { + mocks.skill = { ...mocks.skill, installed: false, installedUnverifiable: true } + await renderProbe() + + expect(latest?.linear.skillInstalled).toBe(false) + expect(latest?.linear.skillUnverifiable).toBe(true) + }) }) diff --git a/src/renderer/src/components/settings/use-task-source-provider-readiness.ts b/src/renderer/src/components/settings/use-task-source-provider-readiness.ts index 6b9fa6171ba..d669248eb4d 100644 --- a/src/renderer/src/components/settings/use-task-source-provider-readiness.ts +++ b/src/renderer/src/components/settings/use-task-source-provider-readiness.ts @@ -36,7 +36,8 @@ export function useTaskSourceProviderReadiness( const { installed: linearSkillInstalled, loading: linearSkillLoading, - settled: linearSkillSettled + settled: linearSkillSettled, + installedUnverifiable: linearSkillUnverifiable } = useInstalledAgentSkillNames(LINEAR_AGENT_SKILL_NAMES, { discoveryTarget: activeSkillRuntime.discoveryTarget, sourceKinds: GLOBAL_AGENT_SKILL_SOURCE_KINDS @@ -83,6 +84,7 @@ export function useTaskSourceProviderReadiness( checking: linearChecking, skillInstalled: linearSkillInstalled, skillChecking: linearSkillLoading && !linearSkillSettled, + skillUnverifiable: linearSkillUnverifiable, visible: visible.has('linear') }, jira: { @@ -101,6 +103,7 @@ export function useTaskSourceProviderReadiness( linearSkillInstalled, linearSkillLoading, linearSkillSettled, + linearSkillUnverifiable, reviewChecking, reviewUnavailable, visibleProvidersKey diff --git a/src/renderer/src/components/sidebar/add-repo-skip-finalization.test.ts b/src/renderer/src/components/sidebar/add-repo-skip-finalization.test.ts index 8f1808f4c24..fac6aaa7a24 100644 --- a/src/renderer/src/components/sidebar/add-repo-skip-finalization.test.ts +++ b/src/renderer/src/components/sidebar/add-repo-skip-finalization.test.ts @@ -61,11 +61,19 @@ describe('finalizeImportedRepoAfterSkip', () => { finalizeImportedRepoAfterSkip(state, 'repo-new') expect(state.setActiveRepo).toHaveBeenCalledWith('repo-new') - expect(state.setFilterRepoIds).toHaveBeenCalledWith([]) + expect(state.setFilterRepoIds).toHaveBeenCalledWith(['repo-old', 'repo-new']) expect(state.setShowActiveOnly).toHaveBeenCalledWith(false) expect(state.setHideDefaultBranchWorkspace).not.toHaveBeenCalled() }) + it('leaves the project filter off when the import lands with no filter', () => { + const state = makeState({ filterRepoIds: [] }) + + finalizeImportedRepoAfterSkip(state, 'repo-new') + + expect(state.setFilterRepoIds).not.toHaveBeenCalled() + }) + it('clears default-branch hiding when it would hide every imported worktree', () => { const state = makeState({ hideDefaultBranchWorkspace: true, @@ -140,7 +148,7 @@ describe('finalizeImportedRepoAfterSkip', () => { finalizeImportedRepoAfterSkip(state, 'repo-new') expect(state.setActiveRepo).toHaveBeenCalledWith('repo-new') - expect(state.setFilterRepoIds).toHaveBeenCalledWith([]) + expect(state.setFilterRepoIds).toHaveBeenCalledWith(['repo-old', 'repo-new']) expect(state.setShowActiveOnly).toHaveBeenCalledWith(false) expect(state.setHideDefaultBranchWorkspace).not.toHaveBeenCalled() }) diff --git a/src/renderer/src/components/sidebar/add-repo-skip-finalization.ts b/src/renderer/src/components/sidebar/add-repo-skip-finalization.ts index f22a8d9d251..a37d14fd8f2 100644 --- a/src/renderer/src/components/sidebar/add-repo-skip-finalization.ts +++ b/src/renderer/src/components/sidebar/add-repo-skip-finalization.ts @@ -1,16 +1,15 @@ import type { Worktree } from '../../../../shared/worktree/types' import { isDefaultBranchWorkspace } from './default-branch-workspace' +import { revealRepoInProjectFilter, type ProjectFilterRevealState } from './project-filter-reveal' -export type AddRepoSkipFinalizationState = { +export type AddRepoSkipFinalizationState = ProjectFilterRevealState & { activeRepoId: string | null - filterRepoIds: readonly string[] showActiveOnly: boolean hideDefaultBranchWorkspace: boolean showSleepingWorkspaces: boolean alwaysShowDefaultBranchWorkspace: boolean worktreesByRepo: Record setActiveRepo: (repoId: string | null) => void - setFilterRepoIds: (repoIds: string[]) => void setShowActiveOnly: (value: boolean) => void setHideDefaultBranchWorkspace: (value: boolean) => void setAlwaysShowDefaultBranchWorkspace: (value: boolean) => void @@ -27,9 +26,7 @@ export function finalizeImportedRepoAfterSkip( if (state.activeRepoId !== importedRepoId) { state.setActiveRepo(importedRepoId) } - if (state.filterRepoIds.length > 0 && !state.filterRepoIds.includes(importedRepoId)) { - state.setFilterRepoIds([]) - } + revealRepoInProjectFilter(state, importedRepoId) if (state.showActiveOnly) { state.setShowActiveOnly(false) } diff --git a/src/renderer/src/components/sidebar/folder-workspace-composer-submit.ts b/src/renderer/src/components/sidebar/folder-workspace-composer-submit.ts index 7185f453351..62b29c8edb8 100644 --- a/src/renderer/src/components/sidebar/folder-workspace-composer-submit.ts +++ b/src/renderer/src/components/sidebar/folder-workspace-composer-submit.ts @@ -141,7 +141,6 @@ export async function submitFolderWorkspaceCreate({ }, prompt: launchDraftPrompt ?? note, promptDelivery: launchDraftPrompt ? 'draft' : 'auto-submit', - tuiCustomization: { agentArgs }, initialSessionOptions: startupPlan?.sessionOptions }) : null diff --git a/src/renderer/src/components/sidebar/project-added-default-checkout.test.ts b/src/renderer/src/components/sidebar/project-added-default-checkout.test.ts index 24d1fd7b76a..71abdc34135 100644 --- a/src/renderer/src/components/sidebar/project-added-default-checkout.test.ts +++ b/src/renderer/src/components/sidebar/project-added-default-checkout.test.ts @@ -529,7 +529,7 @@ describe('finishProjectAddWithDefaultCheckout', () => { reason: 'no_authoritative_detection' }) expect(mocks.state.setActiveRepo).toHaveBeenCalledWith('repo-1') - expect(mocks.state.setFilterRepoIds).toHaveBeenCalledWith([]) + expect(mocks.state.setFilterRepoIds).toHaveBeenCalledWith(['repo-2', 'repo-1']) expect(mocks.state.setShowActiveOnly).toHaveBeenCalledWith(false) }) }) diff --git a/src/renderer/src/components/sidebar/project-filter-reveal.test.ts b/src/renderer/src/components/sidebar/project-filter-reveal.test.ts new file mode 100644 index 00000000000..b0836415a75 --- /dev/null +++ b/src/renderer/src/components/sidebar/project-filter-reveal.test.ts @@ -0,0 +1,32 @@ +import { describe, expect, it, vi } from 'vitest' +import { revealRepoInProjectFilter } from './project-filter-reveal' + +function makeState(filterRepoIds: readonly string[]) { + return { filterRepoIds, setFilterRepoIds: vi.fn() } +} + +describe('revealRepoInProjectFilter', () => { + it('keeps the existing selection and adds the revealed project', () => { + const state = makeState(['repo-a', 'repo-b']) + + revealRepoInProjectFilter(state, 'repo-c') + + expect(state.setFilterRepoIds).toHaveBeenCalledWith(['repo-a', 'repo-b', 'repo-c']) + }) + + it('does nothing when no project filter is active', () => { + const state = makeState([]) + + revealRepoInProjectFilter(state, 'repo-c') + + expect(state.setFilterRepoIds).not.toHaveBeenCalled() + }) + + it('does nothing when the project is already selected', () => { + const state = makeState(['repo-a', 'repo-c']) + + revealRepoInProjectFilter(state, 'repo-c') + + expect(state.setFilterRepoIds).not.toHaveBeenCalled() + }) +}) diff --git a/src/renderer/src/components/sidebar/project-filter-reveal.ts b/src/renderer/src/components/sidebar/project-filter-reveal.ts new file mode 100644 index 00000000000..0ce2b15ce10 --- /dev/null +++ b/src/renderer/src/components/sidebar/project-filter-reveal.ts @@ -0,0 +1,12 @@ +export type ProjectFilterRevealState = { + filterRepoIds: readonly string[] + setFilterRepoIds: (repoIds: readonly string[]) => void +} + +export function revealRepoInProjectFilter(state: ProjectFilterRevealState, repoId: string): void { + // Why: an empty allow-list disables filtering, so adding one id would narrow the unfiltered view. + if (state.filterRepoIds.length === 0 || state.filterRepoIds.includes(repoId)) { + return + } + state.setFilterRepoIds([...state.filterRepoIds, repoId]) +} diff --git a/src/renderer/src/components/sidebar/useWorktreeAgentRows.test.ts b/src/renderer/src/components/sidebar/useWorktreeAgentRows.test.ts index 34393219518..b02afa1fbfc 100644 --- a/src/renderer/src/components/sidebar/useWorktreeAgentRows.test.ts +++ b/src/renderer/src/components/sidebar/useWorktreeAgentRows.test.ts @@ -768,7 +768,7 @@ describe('applyAgentRowLineage', () => { expect(ordered[2].lineage).toMatchObject({ depth: 1, isLastSibling: true }) }) - it('decays working subagent child rows to idle when the parent status is stale', () => { + it('marks working subagent child rows unverifiable when the parent status is stale', () => { const entry = makeEntry(PANE_KEY_1, 1000, { state: 'working', subagents: [{ id: 'a1', state: 'working', startedAt: 1000 }] @@ -781,7 +781,7 @@ describe('applyAgentRowLineage', () => { }) const child = rows.find((row) => row.rowSource === 'subagent') - expect(child?.state).toBe('idle') + expect(child?.state).toBe('unverifiable') }) it('surfaces a live subagent waiting state', () => { diff --git a/src/renderer/src/components/sidebar/worktree-subagent-child-rows.test.ts b/src/renderer/src/components/sidebar/worktree-subagent-child-rows.test.ts new file mode 100644 index 00000000000..c535e3e80ee --- /dev/null +++ b/src/renderer/src/components/sidebar/worktree-subagent-child-rows.test.ts @@ -0,0 +1,55 @@ +import { describe, expect, it } from 'vitest' +import type { AgentStatusEntry } from '../../../../shared/agent-status-types' +import type { TerminalTab } from '../../../../shared/terminal-tab-types' +import { buildSubagentChildRows } from './worktree-subagent-child-rows' + +const tab: TerminalTab = { + id: 'parent-tab', + ptyId: null, + worktreeId: 'folder-workspace', + title: 'Parent', + customTitle: null, + color: null, + sortOrder: 0, + createdAt: 1 +} + +describe('shared CLI and structured child freshness', () => { + it.each([ + ['working', true, undefined, 'working'], + ['working', true, 'live', 'working'], + ['working', false, undefined, 'unverifiable'], + ['working', false, 'live', 'unverifiable'], + ['working', true, 'unverifiable', 'unverifiable'], + ['working', false, 'unverifiable', 'unverifiable'], + ['waiting', false, undefined, 'unverifiable'], + ['waiting', false, 'live', 'unverifiable'], + ['blocked', false, undefined, 'unverifiable'], + ['blocked', false, 'live', 'unverifiable'], + ['idle', false, undefined, 'idle'], + ['idle', false, 'live', 'idle'], + ['idle', false, 'unverifiable', 'idle'], + ['unverifiable', true, 'live', 'unverifiable'] + ] as const)( + '%s with fresh parent %s and transport %s projects %s', + (state, parentIsFresh, subagentObservation, expected) => { + const parentEntry: AgentStatusEntry = { + paneKey: 'parent-pane', + tabId: tab.id, + worktreeId: tab.worktreeId, + state: 'working', + prompt: 'parent prompt', + updatedAt: 100, + stateStartedAt: 10, + stateHistory: [], + subagentObservation, + subagents: [{ id: 'child', state, startedAt: 20 }] + } + const row = buildSubagentChildRows({ parentEntry, tab, parentIsFresh })[0] + expect(row.state).toBe(expected) + expect(row.activationPaneKey).toBe(parentEntry.paneKey) + expect(row.startedAt).toBe(20) + expect(parentEntry.subagents).toEqual([{ id: 'child', state, startedAt: 20 }]) + } + ) +}) diff --git a/src/renderer/src/components/sidebar/worktree-subagent-child-rows.ts b/src/renderer/src/components/sidebar/worktree-subagent-child-rows.ts index a140fc30e85..e629a8e352b 100644 --- a/src/renderer/src/components/sidebar/worktree-subagent-child-rows.ts +++ b/src/renderer/src/components/sidebar/worktree-subagent-child-rows.ts @@ -1,5 +1,6 @@ import type { DashboardAgentRow } from '@/components/dashboard/useDashboardData' import type { AgentStatusEntry } from '../../../../shared/agent-status-types' +import { resolveAgentChildWorkFreshness } from '../../../../shared/agent-status-child-work-freshness' import type { TerminalTab } from '../../../../shared/terminal-tab-types' /** Row-identity key for an in-process subagent child row. The NUL separator @@ -21,7 +22,7 @@ export function buildSubagentChildRows(args: { parentEntry: AgentStatusEntry tab: TerminalTab /** Freshness of the parent's hook stream. A stale parent means active child - * states are equally stale, so they decay to idle together. */ + * states are equally unverifiable. */ parentIsFresh: boolean }): DashboardAgentRow[] { const subagents = args.parentEntry.subagents @@ -29,17 +30,14 @@ export function buildSubagentChildRows(args: { return [] } return subagents.map((subagent) => { - const observation = args.parentEntry.subagentObservation - const fresh = observation === 'live' || (observation === undefined && args.parentIsFresh) - const activeState = - fresh && subagent.state !== 'idle' && subagent.state !== 'unverifiable' - ? subagent.state - : undefined - const state = - subagent.state === 'unverifiable' || - (observation === 'unverifiable' && subagent.state !== 'idle') - ? 'unverifiable' - : (activeState ?? 'idle') + const freshness = resolveAgentChildWorkFreshness({ + state: subagent.state, + membership: 'live', + parentEvidenceFresh: args.parentIsFresh, + transportObservation: args.parentEntry.subagentObservation ?? 'live' + }) + const state = freshness === 'done' ? 'idle' : freshness === 'monitoring' ? 'working' : freshness + const activeState = state !== 'idle' && state !== 'unverifiable' ? state : undefined const startedAt = subagent.startedAt > 0 ? subagent.startedAt : args.parentEntry.stateStartedAt const paneKey = subagentRowKey(args.parentEntry.paneKey, subagent.id) const entry: AgentStatusEntry = { diff --git a/src/renderer/src/hooks/installed-agent-skill-verdict.test.ts b/src/renderer/src/hooks/installed-agent-skill-verdict.test.ts new file mode 100644 index 00000000000..93956f54220 --- /dev/null +++ b/src/renderer/src/hooks/installed-agent-skill-verdict.test.ts @@ -0,0 +1,114 @@ +import { describe, expect, it } from 'vitest' +import type { SkillDiscoverySource, SkillSourceKind } from '../../../shared/skills' +import { GLOBAL_AGENT_SKILL_SOURCE_KINDS } from './useInstalledAgentSkills' +import { + getInstalledAgentSkillVerdict, + hasUnreadableAgentSkillSource, + type InstalledAgentSkillScan +} from './installed-agent-skill-verdict' + +function source( + sourceKind: SkillSourceKind, + skippedReason?: SkillDiscoverySource['skippedReason'] +): SkillDiscoverySource { + return { + id: `${sourceKind}-root`, + label: sourceKind, + path: `/roots/${sourceKind}`, + sourceKind, + providers: ['claude'], + owner: null, + // An unread root reports `exists`: the host could not prove otherwise. + exists: true, + ...(skippedReason ? { skippedReason } : {}) + } +} + +function scan(overrides: Partial = {}): InstalledAgentSkillScan { + return { + enabled: true, + installed: false, + settled: true, + error: null, + sources: [], + sourceKinds: ['home'], + ...overrides + } +} + +const unverifiable = (overrides: Partial): boolean => + getInstalledAgentSkillVerdict(scan(overrides)).installedUnverifiable +const error = (overrides: Partial): string | null => + getInstalledAgentSkillVerdict(scan(overrides)).error + +describe('hasUnreadableAgentSkillSource', () => { + it('flags a root that did not answer even though it reports as present', () => { + expect(hasUnreadableAgentSkillSource([source('home', 'unavailable')])).toBe(true) + }) + + it('ignores roots that were scanned or are genuinely absent', () => { + expect( + hasUnreadableAgentSkillSource([ + source('home'), + { ...source('home'), id: 'gone', exists: false, skippedReason: 'missing' } + ]) + ).toBe(false) + }) + + it('ignores an unread root outside the scopes the caller asked about', () => { + expect( + hasUnreadableAgentSkillSource( + [source('repo', 'unavailable')], + GLOBAL_AGENT_SKILL_SOURCE_KINDS + ) + ).toBe(false) + }) +}) + +describe('getInstalledAgentSkillVerdict', () => { + it('treats a complete scan that found nothing as proof of absence', () => { + expect(unverifiable({ sources: [source('home')] })).toBe(false) + }) + + it('cannot vouch for a negative when a root this query cares about did not answer', () => { + expect(unverifiable({ sources: [source('home', 'unavailable')] })).toBe(true) + }) + + it('ignores an unreadable root outside the queried source kinds', () => { + expect(unverifiable({ sources: [source('repo', 'unavailable')] })).toBe(false) + }) + + // The reported bug: `sources` is empty until a result lands, so a scan that + // errored before answering is invisible to the unreadable-root check. + it('cannot vouch for a negative when the scan errored before ever answering', () => { + expect(unverifiable({ settled: false, error: 'scan failed' })).toBe(true) + }) + + it('keeps an answer it already holds when a later refresh fails', () => { + expect(unverifiable({ settled: true, error: 'scan failed' })).toBe(false) + }) + + it('stays silent while a first scan is still pending with no error', () => { + expect(unverifiable({ settled: false })).toBe(false) + }) + + it('takes finding the skill as proof, whatever else failed', () => { + expect(unverifiable({ installed: true, settled: false, error: 'scan failed' })).toBe(false) + }) + + it('says nothing about a query that is switched off', () => { + expect(unverifiable({ enabled: false, sources: [source('home', 'unavailable')] })).toBe(false) + }) + + it("prefers the scan's own failure over the advisory", () => { + expect(error({ settled: false, error: 'scan failed' })).toBe('scan failed') + }) + + it('advises when an unreadable root is the only reason the answer is empty', () => { + expect(error({ sources: [source('home', 'unavailable')] })).toContain('did not respond') + }) + + it('stays quiet for a trustworthy negative', () => { + expect(error({ sources: [source('home')] })).toBeNull() + }) +}) diff --git a/src/renderer/src/hooks/installed-agent-skill-verdict.ts b/src/renderer/src/hooks/installed-agent-skill-verdict.ts new file mode 100644 index 00000000000..025781c8644 --- /dev/null +++ b/src/renderer/src/hooks/installed-agent-skill-verdict.ts @@ -0,0 +1,65 @@ +import type { SkillDiscoverySource, SkillSourceKind } from '../../../shared/skills' +import { translate } from '@/i18n/i18n' + +/** + * True when a root this query cares about did not answer, so its skills are + * unknown rather than absent. The host serves such a root's last answer, but a + * root that has never answered has none to serve, and a bare "Not installed" + * there offers Install for a skill that may already be present. + */ +export function hasUnreadableAgentSkillSource( + sources: readonly SkillDiscoverySource[], + sourceKinds?: readonly SkillSourceKind[] +): boolean { + return sources.some( + (source) => + source.skippedReason === 'unavailable' && + (!sourceKinds || sourceKinds.includes(source.sourceKind)) + ) +} + +export type InstalledAgentSkillScan = { + enabled: boolean + installed: boolean + /** A scan answered for this target; a cached answer counts. */ + settled: boolean + /** The scan's own failure, before the advisory below is folded in. */ + error: string | null + sources: readonly SkillDiscoverySource[] + sourceKinds?: readonly SkillSourceKind[] +} + +export type InstalledAgentSkillVerdict = { + /** Nothing proves the skill absent, so no surface may render it as undone. */ + installedUnverifiable: boolean + /** The scan's own failure, else the advisory an unverifiable negative earns. */ + error: string | null +} + +/** + * Finding the skill is proof, so only a negative is ever doubted. Two shapes + * qualify: a scan that answered without reading a root this query cares about, + * and a scan that never answered at all — invisible to `sources`, which stay + * empty until a result lands. A failed refresh over an answer already held is + * neither: that answer still stands. + */ +export function getInstalledAgentSkillVerdict( + scan: InstalledAgentSkillScan +): InstalledAgentSkillVerdict { + const installedUnverifiable = + scan.enabled && + !scan.installed && + (hasUnreadableAgentSkillSource(scan.sources, scan.sourceKinds) || + (!scan.settled && scan.error !== null)) + return { + installedUnverifiable, + error: + scan.error ?? + (installedUnverifiable + ? translate( + 'auto.hooks.useInstalledAgentSkills.unreadableSkillSource', + 'A skill folder did not respond, so this status may be incomplete.' + ) + : null) + } +} diff --git a/src/renderer/src/hooks/useInstalledAgentSkills.react.test.tsx b/src/renderer/src/hooks/useInstalledAgentSkills.react.test.tsx index f8fd67e6b43..6a682fb0f1e 100644 --- a/src/renderer/src/hooks/useInstalledAgentSkills.react.test.tsx +++ b/src/renderer/src/hooks/useInstalledAgentSkills.react.test.tsx @@ -735,6 +735,8 @@ describe('useInstalledAgentSkill', () => { // fresh discovery per store write for as long as the host stays unreachable. expect(discover).toHaveBeenCalledTimes(1) expect(latestState?.error).toBe('runtime host unreachable') + // No result ever landed, so "not installed" is a claim this scan cannot back. + expect(latestState?.installedUnverifiable).toBe(true) }) it('hydrates from the warm cache on its very first render pass', async () => { @@ -882,6 +884,34 @@ describe('useInstalledAgentSkill', () => { expect(latestState?.installed).toBe(false) }) + it('keeps a landed answer authoritative when a later refresh fails', async () => { + const discover = vi + .fn<(target?: SkillDiscoveryTarget) => Promise>() + .mockResolvedValueOnce(discoveryResult([])) + .mockRejectedValue(new Error('refresh failed')) + Object.defineProperty(window, 'api', { + configurable: true, + value: { skills: { discover } } + }) + + await renderProbe() + await flushMicrotasks() + expect(discover).toHaveBeenCalledTimes(1) + expect(latestState?.settled).toBe(true) + expect(latestState?.installedUnverifiable).toBe(false) + + await act(async () => { + notifyInstalledAgentSkillsChanged() + }) + await flushMicrotasks() + + // The refresh failed, but the answer the scan already landed still stands. + expect(discover).toHaveBeenCalledTimes(2) + expect(latestState?.error).toBe('refresh failed') + expect(latestState?.settled).toBe(true) + expect(latestState?.installedUnverifiable).toBe(false) + }) + it('empties the discovery cache when an install notification fires', async () => { // Why: assert the cache directly — a mounted component forces a rescan and // would hide a missing invalidation. diff --git a/src/renderer/src/hooks/useInstalledAgentSkills.test.ts b/src/renderer/src/hooks/useInstalledAgentSkills.test.ts index a3340a104e2..6e82faab9a0 100644 --- a/src/renderer/src/hooks/useInstalledAgentSkills.test.ts +++ b/src/renderer/src/hooks/useInstalledAgentSkills.test.ts @@ -1,16 +1,11 @@ import { afterEach, describe, expect, it, vi } from 'vitest' -import type { - DiscoveredSkill, - SkillDiscoveryResult, - SkillDiscoverySource -} from '../../../shared/skills' +import type { DiscoveredSkill, SkillDiscoveryResult } from '../../../shared/skills' import type { ProjectExecutionRuntimeResolution } from '../../../shared/project-execution-runtime' import { GLOBAL_AGENT_SKILL_SOURCE_KINDS, _installedAgentSkillDiscoveryInternalsForTests, hasInstalledAgentSkill, hasInstalledAgentSkillNamed, - hasUnreadableAgentSkillSource, notifyInstalledAgentSkillsRefreshed } from './useInstalledAgentSkills' @@ -162,44 +157,6 @@ describe('hasInstalledAgentSkill', () => { }) }) -describe('hasUnreadableAgentSkillSource', () => { - function source(overrides: Partial): SkillDiscoverySource { - return { - id: 'home', - label: 'Agent skills home', - path: '/Users/test/.agents/skills', - sourceKind: 'home', - providers: ['agent-skills'], - owner: null, - // An unread root reports `exists`: the host could not prove otherwise. - exists: true, - ...overrides - } - } - - it('flags a root that did not answer even though it reports as present', () => { - expect(hasUnreadableAgentSkillSource([source({ skippedReason: 'unavailable' })])).toBe(true) - }) - - it('ignores roots that were scanned or are genuinely absent', () => { - expect( - hasUnreadableAgentSkillSource([ - source({}), - source({ id: 'gone', exists: false, skippedReason: 'missing' }) - ]) - ).toBe(false) - }) - - it('ignores an unread root outside the scopes the caller asked about', () => { - expect( - hasUnreadableAgentSkillSource( - [source({ id: 'repo', sourceKind: 'repo', skippedReason: 'unavailable' })], - GLOBAL_AGENT_SKILL_SOURCE_KINDS - ) - ).toBe(false) - }) -}) - describe('isOrchestrationSkillName', () => { it('matches only the orchestration skill name', () => { expect( diff --git a/src/renderer/src/hooks/useInstalledAgentSkills.ts b/src/renderer/src/hooks/useInstalledAgentSkills.ts index d7ac999a873..42115bf8206 100644 --- a/src/renderer/src/hooks/useInstalledAgentSkills.ts +++ b/src/renderer/src/hooks/useInstalledAgentSkills.ts @@ -8,7 +8,6 @@ import type { } from '../../../shared/skills' import { ORCHESTRATION_SKILL_NAME } from '@/lib/agent-feature-install-commands' import { markOrchestrationSetupComplete } from '@/lib/orchestration-setup-state' -import { translate } from '@/i18n/i18n' import { discoverInstalledAgentSkills, getCachedSkillDiscovery, @@ -16,6 +15,10 @@ import { getSkillDiscoveryTargetKey, resetSkillDiscoveryCacheForTests } from './installed-agent-skill-discovery' +import { + getInstalledAgentSkillVerdict, + type InstalledAgentSkillScan +} from './installed-agent-skill-verdict' import { INSTALLED_AGENT_SKILLS_CHANGED_EVENT, INSTALLED_AGENT_SKILLS_REFRESHED_EVENT @@ -48,6 +51,8 @@ export type InstalledAgentSkillState = { // Why: a forced rescan keeps the previous result, so only the first scan per // runtime-scoped target is genuinely unknown. settled: boolean + // A negative this scan cannot vouch for: render it as unknown, not as undone. + installedUnverifiable: boolean error: string | null skills: readonly DiscoveredSkill[] sources: readonly SkillDiscoverySource[] @@ -94,23 +99,6 @@ export function hasInstalledAgentSkillNamed( }) } -/** - * True when a root this query cares about did not answer, so its skills are - * unknown rather than absent. The host serves such a root's last answer, but a - * root that has never answered has none to serve, and a bare "Not installed" - * there offers Install for a skill that may already be present. - */ -export function hasUnreadableAgentSkillSource( - sources: readonly SkillDiscoverySource[], - sourceKinds?: readonly SkillSourceKind[] -): boolean { - return sources.some( - (source) => - source.skippedReason === 'unavailable' && - (!sourceKinds || sourceKinds.includes(source.sourceKind)) - ) -} - export function notifyInstalledAgentSkillsRefreshed(): void { if (typeof window !== 'undefined') { window.dispatchEvent(new CustomEvent(INSTALLED_AGENT_SKILLS_REFRESHED_EVENT)) @@ -323,10 +311,15 @@ export function useInstalledAgentSkillNames( [candidateSkillNames, enabled, skills, sourceKinds] ) - const incompleteScan = useMemo( - () => enabled && !installed && hasUnreadableAgentSkillSource(sources, sourceKinds), - [enabled, installed, sources, sourceKinds] - ) + const settled = enabled && resultForRender !== null + const scan: InstalledAgentSkillScan = { + enabled, + installed, + settled, + error: errorForRender, + sources, + sourceKinds + } useEffect(() => { if (installed && candidateSkillNames.some(isOrchestrationSkillName)) { @@ -341,15 +334,8 @@ export function useInstalledAgentSkillNames( return { installed, loading: loadingForRender, - settled: enabled && resultForRender !== null, - error: - errorForRender ?? - (incompleteScan - ? translate( - 'auto.hooks.useInstalledAgentSkills.unreadableSkillSource', - 'A skill folder did not respond, so this status may be incomplete.' - ) - : null), + settled, + ...getInstalledAgentSkillVerdict(scan), skills, sources, refresh: forceRefresh diff --git a/src/renderer/src/hooks/useIpcEvents-zoom-routing.test.ts b/src/renderer/src/hooks/useIpcEvents-zoom-routing.test.ts deleted file mode 100644 index 5e20aa0994b..00000000000 --- a/src/renderer/src/hooks/useIpcEvents-zoom-routing.test.ts +++ /dev/null @@ -1,408 +0,0 @@ -import type * as ReactModule from 'react' -import { beforeEach, describe, expect, it, vi } from 'vitest' -import { resolveZoomTarget } from './resolve-zoom-target' - -function makeTarget(args: { hasXtermClass?: boolean; editorClosest?: boolean }): { - classList: { contains: (token: string) => boolean } - closest: (selector: string) => Element | null -} { - const { hasXtermClass = false, editorClosest = false } = args - return { - classList: { - contains: (token: string) => hasXtermClass && token === 'xterm-helper-textarea' - }, - closest: () => (editorClosest ? ({} as Element) : null) - } -} - -describe('resolveZoomTarget', () => { - it('routes to terminal zoom when terminal input is focused', () => { - expect( - resolveZoomTarget({ - activeView: 'terminal', - activeTabType: 'terminal', - activeElement: makeTarget({ hasXtermClass: true }) - }) - ).toBe('terminal') - }) - - it('routes to ui zoom for an active terminal tab after terminal focus is released', () => { - expect( - resolveZoomTarget({ - activeView: 'terminal', - activeTabType: 'terminal', - activeElement: makeTarget({}) - }) - ).toBe('ui') - }) - - it('routes to editor zoom for editor tabs', () => { - expect( - resolveZoomTarget({ - activeView: 'terminal', - activeTabType: 'editor', - activeElement: makeTarget({}) - }) - ).toBe('editor') - }) - - it('routes to editor zoom when editor surface has focus during stale tab state', () => { - expect( - resolveZoomTarget({ - activeView: 'terminal', - activeTabType: 'terminal', - activeElement: makeTarget({ editorClosest: true }) - }) - ).toBe('editor') - }) - - it('routes to ui zoom outside terminal view', () => { - expect( - resolveZoomTarget({ - activeView: 'settings', - activeTabType: 'terminal', - activeElement: makeTarget({ hasXtermClass: true }) - }) - ).toBe('ui') - }) - - it('routes to ui zoom for active browser tabs before stale DOM focus', () => { - expect( - resolveZoomTarget({ - activeView: 'terminal', - activeTabType: 'browser', - activeElement: makeTarget({ editorClosest: true, hasXtermClass: true }) - }) - ).toBe('ui') - }) - - it('routes to ui zoom for browser tabs without an active browser page', () => { - expect( - resolveZoomTarget({ - activeView: 'terminal', - activeTabType: 'browser', - activeElement: makeTarget({}) - }) - ).toBe('ui') - }) -}) - -describe('useIpcEvents zoom routing', () => { - beforeEach(() => { - vi.resetModules() - vi.unstubAllGlobals() - // Zoom routing never renders toast UI; keep Sonner's DOM style injector out of this synthetic-document harness. - vi.doMock('sonner', () => ({ - toast: { - dismiss: vi.fn(), - error: vi.fn(), - info: vi.fn(), - success: vi.fn(), - warning: vi.fn() - } - })) - }) - - it('applies app zoom for an active browser tab', async () => { - const terminalZoomListenerRef: { - current: ((direction: 'in' | 'out' | 'reset') => void) | null - } = { current: null } - const setUI = vi.fn() - - vi.doMock('react', async () => { - const actual = await vi.importActual('react') - return { - ...actual, - useEffect: (effect: () => void | (() => void)) => { - effect() - } - } - }) - vi.doMock('../store', () => ({ - useAppStore: { - subscribe: vi.fn(() => () => {}), - getState: () => ({ - activeView: 'terminal', - activeTabType: 'browser', - activeWorktreeId: 'wt-1', - activeBrowserTabId: 'workspace-1', - activeBrowserTabIdByWorktree: { 'wt-1': 'workspace-1' }, - browserTabsByWorktree: { - 'wt-1': [ - { - id: 'workspace-1', - activePageId: 'page-1', - pageIds: ['page-1'] - } - ] - }, - browserPagesByWorkspace: { - 'workspace-1': [{ id: 'page-1', worktreeId: 'wt-1' }] - }, - editorFontZoomLevel: 0, - setEditorFontZoomLevel: vi.fn(), - settings: { terminalFontSize: 13 }, - setUpdateStatus: vi.fn(), - fetchRepos: vi.fn(), - fetchWorktrees: vi.fn(), - setActiveView: vi.fn(), - activeModal: null, - closeModal: vi.fn(), - openModal: vi.fn(), - setActiveRepo: vi.fn(), - setActiveWorktree: vi.fn(), - revealWorktreeInSidebar: vi.fn(), - setIsFullScreen: vi.fn(), - setRateLimitsFromPush: vi.fn() - }) - } - })) - vi.doMock('@/lib/ui-zoom', () => ({ applyUIZoom: vi.fn() })) - vi.doMock('@/lib/worktree-activation', () => ({ - activateAndRevealWorktree: vi.fn(), - ensureWorktreeHasInitialTerminal: vi.fn() - })) - vi.doMock('@/components/sidebar/visible-worktrees', () => ({ - getVisibleWorktreeIds: () => [] - })) - vi.doMock('@/lib/editor-font-zoom', () => ({ - nextEditorFontZoomLevel: vi.fn(() => 0), - computeEditorFontSize: vi.fn(() => 13) - })) - vi.doMock('@/components/settings/SettingsConstants', () => ({ - zoomLevelToPercent: vi.fn(() => 120), - ZOOM_STEP: 0.5, - ZOOM_MIN: -3, - ZOOM_MAX: 3 - })) - vi.doMock('@/lib/zoom-events', () => ({ dispatchZoomLevelChanged: vi.fn() })) - - const makeEvents = (target: Record = {}): Record => - new Proxy(target, { - get: (namespace, prop) => { - if (typeof prop === 'string' && prop in namespace) { - return namespace[prop] - } - return () => () => {} - } - }) - vi.stubGlobal('document', { - activeElement: makeTarget({ editorClosest: true }) - }) - - vi.stubGlobal('window', { - dispatchEvent: vi.fn(), - setTimeout: vi.fn(() => 1), - clearTimeout: vi.fn(), - api: { - repos: makeEvents(), - automations: makeEvents(), - worktrees: makeEvents(), - keybindings: makeEvents(), - settings: makeEvents(), - updater: { - getStatus: () => Promise.resolve({ state: 'idle' }), - onStatus: () => () => {}, - onClearDismissal: () => () => {} - }, - browser: makeEvents(), - rateLimits: { - get: () => Promise.resolve({ limits: {}, lastUpdatedAt: Date.now() }), - onUpdate: () => () => {} - }, - ssh: { - listTargets: () => Promise.resolve([]), - listPortForwards: () => Promise.resolve([]), - listDetectedPorts: () => Promise.resolve([]), - getState: () => Promise.resolve(null), - onStateChanged: () => () => {}, - onCredentialRequest: () => () => {}, - onCredentialResolved: () => () => {}, - onPortForwardsChanged: () => () => {}, - onDetectedPortsChanged: () => () => {} - }, - runtime: { - getTerminalFitOverrides: () => Promise.resolve([]), - getTerminalDrivers: () => Promise.resolve([]), - getBrowserDrivers: () => Promise.resolve([]), - onTerminalFitOverrideChanged: () => () => {}, - onTerminalDriverChanged: () => () => {}, - onBrowserDriverChanged: () => () => {}, - onClientHostedBrowserRowsChanged: () => () => {}, - getClientHostedBrowserRows: async () => [] - }, - agentStatus: { onSet: () => () => {} }, - ui: makeEvents({ - consumePendingOpenSettings: () => Promise.resolve(false), - onTerminalZoom: (listener: (direction: 'in' | 'out' | 'reset') => void) => { - terminalZoomListenerRef.current = listener - return () => {} - }, - getZoomLevel: vi.fn(() => 0), - set: setUI - }) - } - }) - - const { useIpcEvents } = await import('./useIpcEvents') - const { applyUIZoom } = await import('@/lib/ui-zoom') - - useIpcEvents() - expect(terminalZoomListenerRef.current).toBeTypeOf('function') - const listener = terminalZoomListenerRef.current - if (!listener) { - throw new Error('Expected terminal zoom listener to be registered') - } - listener('in') - - expect(applyUIZoom).toHaveBeenCalledWith(0.5) - expect(setUI).toHaveBeenCalledWith({ uiZoomLevel: 0.5 }) - }) - - it('applies app zoom for an active terminal tab after terminal focus is released', async () => { - const terminalZoomListenerRef: { - current: ((direction: 'in' | 'out' | 'reset') => void) | null - } = { current: null } - const setUI = vi.fn() - - vi.doMock('react', async () => { - const actual = await vi.importActual('react') - return { - ...actual, - useEffect: (effect: () => void | (() => void)) => { - effect() - } - } - }) - vi.doMock('../store', () => ({ - useAppStore: { - subscribe: vi.fn(() => () => {}), - getState: () => ({ - activeView: 'terminal', - activeTabType: 'terminal', - activeWorktreeId: 'wt-1', - activeBrowserTabId: null, - activeBrowserTabIdByWorktree: {}, - browserTabsByWorktree: {}, - browserPagesByWorkspace: {}, - editorFontZoomLevel: 0, - setEditorFontZoomLevel: vi.fn(), - settings: { terminalFontSize: 13 }, - setUpdateStatus: vi.fn(), - fetchRepos: vi.fn(), - fetchWorktrees: vi.fn(), - setActiveView: vi.fn(), - activeModal: null, - closeModal: vi.fn(), - openModal: vi.fn(), - setActiveRepo: vi.fn(), - setActiveWorktree: vi.fn(), - revealWorktreeInSidebar: vi.fn(), - setIsFullScreen: vi.fn(), - setRateLimitsFromPush: vi.fn() - }) - } - })) - vi.doMock('@/lib/ui-zoom', () => ({ applyUIZoom: vi.fn() })) - vi.doMock('@/lib/worktree-activation', () => ({ - activateAndRevealWorktree: vi.fn(), - ensureWorktreeHasInitialTerminal: vi.fn() - })) - vi.doMock('@/components/sidebar/visible-worktrees', () => ({ - getVisibleWorktreeIds: () => [] - })) - vi.doMock('@/lib/editor-font-zoom', () => ({ - nextEditorFontZoomLevel: vi.fn(() => 0), - computeEditorFontSize: vi.fn(() => 13) - })) - vi.doMock('@/components/settings/SettingsConstants', () => ({ - zoomLevelToPercent: vi.fn(() => 120), - ZOOM_STEP: 0.5, - ZOOM_MIN: -3, - ZOOM_MAX: 3 - })) - vi.doMock('@/lib/zoom-events', () => ({ dispatchZoomLevelChanged: vi.fn() })) - - const makeEvents = (target: Record = {}): Record => - new Proxy(target, { - get: (namespace, prop) => { - if (typeof prop === 'string' && prop in namespace) { - return namespace[prop] - } - return () => () => {} - } - }) - vi.stubGlobal('document', { - activeElement: makeTarget({}) - }) - - vi.stubGlobal('window', { - dispatchEvent: vi.fn(), - setTimeout: vi.fn(() => 1), - clearTimeout: vi.fn(), - api: { - repos: makeEvents(), - automations: makeEvents(), - worktrees: makeEvents(), - keybindings: makeEvents(), - settings: makeEvents(), - updater: { - getStatus: () => Promise.resolve({ state: 'idle' }), - onStatus: () => () => {}, - onClearDismissal: () => () => {} - }, - browser: makeEvents(), - rateLimits: { - get: () => Promise.resolve({ limits: {}, lastUpdatedAt: Date.now() }), - onUpdate: () => () => {} - }, - ssh: { - listTargets: () => Promise.resolve([]), - listPortForwards: () => Promise.resolve([]), - listDetectedPorts: () => Promise.resolve([]), - getState: () => Promise.resolve(null), - onStateChanged: () => () => {}, - onCredentialRequest: () => () => {}, - onCredentialResolved: () => () => {}, - onPortForwardsChanged: () => () => {}, - onDetectedPortsChanged: () => () => {} - }, - runtime: { - getTerminalFitOverrides: () => Promise.resolve([]), - getTerminalDrivers: () => Promise.resolve([]), - getBrowserDrivers: () => Promise.resolve([]), - onTerminalFitOverrideChanged: () => () => {}, - onTerminalDriverChanged: () => () => {}, - onBrowserDriverChanged: () => () => {}, - onClientHostedBrowserRowsChanged: () => () => {}, - getClientHostedBrowserRows: async () => [] - }, - agentStatus: { onSet: () => () => {} }, - ui: makeEvents({ - consumePendingOpenSettings: () => Promise.resolve(false), - onTerminalZoom: (listener: (direction: 'in' | 'out' | 'reset') => void) => { - terminalZoomListenerRef.current = listener - return () => {} - }, - getZoomLevel: vi.fn(() => 0), - set: setUI - }) - } - }) - - const { useIpcEvents } = await import('./useIpcEvents') - const { applyUIZoom } = await import('@/lib/ui-zoom') - const { dispatchZoomLevelChanged } = await import('@/lib/zoom-events') - - useIpcEvents() - const listener = terminalZoomListenerRef.current - if (!listener) { - throw new Error('Expected terminal zoom listener to be registered') - } - listener('in') - - expect(applyUIZoom).toHaveBeenCalledWith(0.5) - expect(setUI).toHaveBeenCalledWith({ uiZoomLevel: 0.5 }) - expect(dispatchZoomLevelChanged).toHaveBeenCalledWith('ui', 120) - }) -}) diff --git a/src/renderer/src/hooks/zoom-routing.test.ts b/src/renderer/src/hooks/zoom-routing.test.ts new file mode 100644 index 00000000000..953a4d6ac51 --- /dev/null +++ b/src/renderer/src/hooks/zoom-routing.test.ts @@ -0,0 +1,235 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { UI_ZOOM_MAX } from '../../../shared/ui-zoom-level' +import { resolveZoomTarget } from './resolve-zoom-target' + +function makeTarget(args: { hasXtermClass?: boolean; editorClosest?: boolean }): { + classList: { contains: (token: string) => boolean } + closest: (selector: string) => Element | null +} { + const { hasXtermClass = false, editorClosest = false } = args + return { + classList: { + contains: (token: string) => hasXtermClass && token === 'xterm-helper-textarea' + }, + closest: () => (editorClosest ? ({} as Element) : null) + } +} + +describe('resolveZoomTarget', () => { + it('routes to terminal zoom when terminal input is focused', () => { + expect( + resolveZoomTarget({ + activeView: 'terminal', + activeTabType: 'terminal', + activeElement: makeTarget({ hasXtermClass: true }) + }) + ).toBe('terminal') + }) + + it('routes to ui zoom for an active terminal tab after terminal focus is released', () => { + expect( + resolveZoomTarget({ + activeView: 'terminal', + activeTabType: 'terminal', + activeElement: makeTarget({}) + }) + ).toBe('ui') + }) + + it('routes to editor zoom for editor tabs', () => { + expect( + resolveZoomTarget({ + activeView: 'terminal', + activeTabType: 'editor', + activeElement: makeTarget({}) + }) + ).toBe('editor') + }) + + it('routes to editor zoom when editor surface has focus during stale tab state', () => { + expect( + resolveZoomTarget({ + activeView: 'terminal', + activeTabType: 'terminal', + activeElement: makeTarget({ editorClosest: true }) + }) + ).toBe('editor') + }) + + it('routes to ui zoom outside terminal view', () => { + expect( + resolveZoomTarget({ + activeView: 'settings', + activeTabType: 'terminal', + activeElement: makeTarget({ hasXtermClass: true }) + }) + ).toBe('ui') + }) + + it('routes to ui zoom for active browser tabs before stale DOM focus', () => { + expect( + resolveZoomTarget({ + activeView: 'terminal', + activeTabType: 'browser', + activeElement: makeTarget({ editorClosest: true, hasXtermClass: true }) + }) + ).toBe('ui') + }) + + it('routes to ui zoom for browser tabs without an active browser page', () => { + expect( + resolveZoomTarget({ + activeView: 'terminal', + activeTabType: 'browser', + activeElement: makeTarget({}) + }) + ).toBe('ui') + }) +}) + +describe('registerZoomIpcBridge', () => { + beforeEach(() => { + vi.resetModules() + vi.unstubAllGlobals() + }) + + // Why the bridge and not useIpcEvents: every assertion below is zoom-ipc-bridge behavior, + // and useIpcEvents only reaches it through app-lifetime-ipc-bridge's ~32-import graph — + // seconds of transform per test that timed out under parallel load. + async function mountZoomBridge( + args: { + activeView?: string + activeTabType?: string + activeElement?: ReturnType + uiZoomLevel?: number + editorFontZoomLevel?: number + } = {} + ) { + const { + activeView = 'terminal', + activeTabType = 'browser', + activeElement = makeTarget({ editorClosest: true, hasXtermClass: true }), + uiZoomLevel = 0, + editorFontZoomLevel = 0 + } = args + + const applyUIZoom = vi.fn() + const dispatchZoomLevelChanged = vi.fn() + const setEditorFontZoomLevel = vi.fn() + const setUI = vi.fn() + + vi.doMock('@/lib/ui-zoom', () => ({ applyUIZoom })) + vi.doMock('@/lib/zoom-events', () => ({ dispatchZoomLevelChanged })) + vi.doMock('../store', () => ({ + useAppStore: { + getState: () => ({ + activeView, + activeTabType, + editorFontZoomLevel, + setEditorFontZoomLevel, + settings: { terminalFontSize: 13 } + }) + } + })) + + const listenerRef: { current: ((direction: 'in' | 'out' | 'reset') => void) | null } = { + current: null + } + vi.stubGlobal('document', { activeElement }) + vi.stubGlobal('window', { + api: { + ui: { + onTerminalZoom: (listener: (direction: 'in' | 'out' | 'reset') => void) => { + listenerRef.current = listener + return () => {} + }, + getZoomLevel: () => uiZoomLevel, + set: setUI + } + } + }) + + const { registerZoomIpcBridge } = await import('./ipc-events/zoom-ipc-bridge') + const unsubs: (() => void)[] = [] + registerZoomIpcBridge(unsubs) + + expect(unsubs).toHaveLength(1) + const fire = listenerRef.current + if (!fire) { + throw new Error('Expected the terminal-zoom listener to be registered') + } + return { fire, applyUIZoom, dispatchZoomLevelChanged, setEditorFontZoomLevel, setUI } + } + + it('applies app zoom for an active browser tab', async () => { + const zoom = await mountZoomBridge({ activeTabType: 'browser' }) + + zoom.fire('in') + + expect(zoom.applyUIZoom).toHaveBeenCalledWith(0.5) + expect(zoom.setUI).toHaveBeenCalledWith({ uiZoomLevel: 0.5 }) + // 1.2 ** 0.5 rounds to 110%, the percent the zoom overlay shows. + expect(zoom.dispatchZoomLevelChanged).toHaveBeenCalledWith('ui', 110) + }) + + it('applies app zoom for an active terminal tab after terminal focus is released', async () => { + const zoom = await mountZoomBridge({ + activeTabType: 'terminal', + activeElement: makeTarget({}) + }) + + zoom.fire('in') + + expect(zoom.applyUIZoom).toHaveBeenCalledWith(0.5) + expect(zoom.setUI).toHaveBeenCalledWith({ uiZoomLevel: 0.5 }) + expect(zoom.dispatchZoomLevelChanged).toHaveBeenCalledWith('ui', 110) + }) + + it('leaves zoom to the terminal while terminal input holds focus', async () => { + const zoom = await mountZoomBridge({ + activeTabType: 'terminal', + activeElement: makeTarget({ hasXtermClass: true }) + }) + + zoom.fire('in') + + expect(zoom.applyUIZoom).not.toHaveBeenCalled() + expect(zoom.setUI).not.toHaveBeenCalled() + expect(zoom.dispatchZoomLevelChanged).not.toHaveBeenCalled() + }) + + it('routes an editor tab to editor font zoom instead of app zoom', async () => { + const zoom = await mountZoomBridge({ + activeTabType: 'editor', + activeElement: makeTarget({}), + editorFontZoomLevel: 0 + }) + + zoom.fire('in') + + expect(zoom.setEditorFontZoomLevel).toHaveBeenCalledWith(1) + expect(zoom.setUI).toHaveBeenCalledWith({ editorFontZoomLevel: 1 }) + // 13px base + one step = 14px, reported against the base as 108%. + expect(zoom.dispatchZoomLevelChanged).toHaveBeenCalledWith('editor', 108) + expect(zoom.applyUIZoom).not.toHaveBeenCalled() + }) + + it('clamps app zoom at the supported maximum', async () => { + const zoom = await mountZoomBridge({ uiZoomLevel: UI_ZOOM_MAX }) + + zoom.fire('in') + + expect(zoom.applyUIZoom).toHaveBeenCalledWith(UI_ZOOM_MAX) + expect(zoom.setUI).toHaveBeenCalledWith({ uiZoomLevel: UI_ZOOM_MAX }) + }) + + it('resets app zoom to 100% regardless of the current level', async () => { + const zoom = await mountZoomBridge({ uiZoomLevel: 2 }) + + zoom.fire('reset') + + expect(zoom.applyUIZoom).toHaveBeenCalledWith(0) + expect(zoom.setUI).toHaveBeenCalledWith({ uiZoomLevel: 0 }) + expect(zoom.dispatchZoomLevelChanged).toHaveBeenCalledWith('ui', 100) + }) +}) diff --git a/src/renderer/src/i18n/locales/en.json b/src/renderer/src/i18n/locales/en.json index f452788ac95..277b5c626eb 100644 --- a/src/renderer/src/i18n/locales/en.json +++ b/src/renderer/src/i18n/locales/en.json @@ -11519,7 +11519,8 @@ "noteKeysBody": "API keys and workspaces are stored for the active runtime.", "noteVisibilityTitle": "Hiding ≠ disconnect", "noteVisibilityBody": "Hiding Linear in Task Sources only removes it from the picker. It does not remove your key or skill.", - "setupChecking": "Checking…" + "setupChecking": "Checking…", + "setupUnverified": "Cannot verify" }, "TaskSourceLinearSetup": { "connectTitle": "Connect Linear", @@ -11545,7 +11546,8 @@ "statusHidden": "Hidden from Tasks", "statusIncomplete": "Needs setup", "collapseSetup": "Collapse {{provider}} setup steps", - "expandSetup": "Show {{provider}} setup steps" + "expandSetup": "Show {{provider}} setup steps", + "statusUnverified": "Cannot verify" }, "TaskSourceShowInTasksStep": { "shown": "Shown", diff --git a/src/renderer/src/i18n/locales/zh.json b/src/renderer/src/i18n/locales/zh.json index f44bc5972e1..5eda823d4a2 100644 --- a/src/renderer/src/i18n/locales/zh.json +++ b/src/renderer/src/i18n/locales/zh.json @@ -10269,7 +10269,8 @@ "noteKeysBody": "API 密钥和工作区存储在当前运行环境中。", "noteVisibilityTitle": "隐藏不等于断开连接", "noteVisibilityBody": "在任务来源中隐藏 Linear 只会将其从选择器中移除,不会删除密钥或技能。", - "setupChecking": "检查中…" + "setupChecking": "检查中…", + "setupUnverified": "无法验证" }, "TaskSourceLinearSetup": { "connectTitle": "连接 Linear", @@ -10291,6 +10292,7 @@ "statusReady": "已就绪", "statusConnectRequired": "需要连接", "statusSkillRequired": "需要技能", + "statusUnverified": "无法验证", "statusUnavailable": "状态不可用", "statusHidden": "已从任务中隐藏", "statusIncomplete": "需要设置", diff --git a/src/renderer/src/i18n/settings-status-label-localization.test.ts b/src/renderer/src/i18n/settings-status-label-localization.test.ts index bcbb0837090..1bb8fa312c0 100644 --- a/src/renderer/src/i18n/settings-status-label-localization.test.ts +++ b/src/renderer/src/i18n/settings-status-label-localization.test.ts @@ -52,6 +52,9 @@ const REQUIRED_KEYS: Record = { 'auto.components.settings.ComputerUsePane.statusGranted': 'Granted', 'auto.components.settings.ComputerUsePane.statusUnsupported': 'macOS only', 'auto.components.settings.ComputerUsePane.statusNotEnabled': 'Not enabled', + // Linear setup checklist — unverifiable skill scan (Settings pane + Task Sources card) + 'auto.components.settings.LinearAgentSkillGuide.setupUnverified': 'Cannot verify', + 'auto.components.settings.TaskSourceProviderCard.statusUnverified': 'Cannot verify', // Source-control CLI integration cards 'auto.components.settings.cli.source.control.integration.cards.statusConnected': 'Connected', 'auto.components.settings.cli.source.control.integration.cards.statusUnavailable': 'Unavailable', diff --git a/src/renderer/src/lib/agent-launch-route-input.test.ts b/src/renderer/src/lib/agent-launch-route-input.test.ts index 62eabe93ed4..2ea4c568243 100644 --- a/src/renderer/src/lib/agent-launch-route-input.test.ts +++ b/src/renderer/src/lib/agent-launch-route-input.test.ts @@ -106,7 +106,7 @@ describe('buildAgentLaunchRouteInput', () => { promptDelivery: 'auto-submit', launchText: 'fix the flaky test', nativeChatTranscriptIsLocalReadable: true, - requiresTuiLaunchCustomization: false, + requiresTuiLaunchCommand: false, initialSessionOptions: { model: 'gpt-5.4' } }) expect(mocks.getExecutionHostIdForWorktree).toHaveBeenCalledWith(appStore, 'wt-1') @@ -240,7 +240,6 @@ describe('buildAgentLaunchRouteInput', () => { it.each([ ['a cwd', { cwd: '/repo/sub' }, {}], - ['explicit agent args', { agentArgs: '--model gpt-5.4' }, {}], ['a settings command override', {}, { agentCmdOverrides: { codex: 'codex-nightly' } }] ] as const)('requires a terminal for %s', (_name, tuiCustomization, settingsOverride) => { const input = buildAgentLaunchRouteInput( @@ -251,7 +250,28 @@ describe('buildAgentLaunchRouteInput', () => { tuiCustomization } ) - expect(input.requiresTuiLaunchCustomization).toBe(true) + expect(input.requiresTuiLaunchCommand).toBe(true) + }) + + // The reported P0: `--dangerously-skip-permissions --model Opus` matched no blessed string, so + // every new Claude tab was silently demoted to the terminal-backed chat. The Arguments field is + // a terminal concern and no longer reaches this decision. + it.each([ + ['claude', '--dangerously-skip-permissions --model Opus'], + ['codex', '--dangerously-bypass-approvals-and-sandbox --model gpt-5.6-sol'], + ['claude', '--append-system-prompt "be brief"'] + ] as const)('keeps %s structured with configured arguments %s', (agent, agentArgs) => { + const appStore = store({ + ...STRUCTURED_SETTINGS, + agentDefaultArgs: { [agent]: agentArgs }, + agentDefaultEnv: { [agent]: { ORCA_QA: '1' } } + }) + const args = { + agent, + workspace: { kind: 'git-worktree' as const, worktreeId: 'wt-1' } + } + expect(routeFor(appStore, args)).toBe('structured-native-chat') + expect(buildAgentLaunchRouteInput(appStore, args).requiresTuiLaunchCommand).toBe(false) }) // Grok reads its transcript off local disk, so it is the agent the readability answer routes on. diff --git a/src/renderer/src/lib/agent-launch-route-input.ts b/src/renderer/src/lib/agent-launch-route-input.ts index fcda99dcf7e..85fbf2e8ca3 100644 --- a/src/renderer/src/lib/agent-launch-route-input.ts +++ b/src/renderer/src/lib/agent-launch-route-input.ts @@ -7,8 +7,7 @@ import { import type { TuiAgent } from '../../../shared/tui-agent' import { parseWorkspaceKey } from '../../../shared/workspace-scope' import { - hasExplicitTuiAgentArgs, - hasExplicitTuiLaunchCustomization, + hasExplicitTuiLaunchCommand, type AgentLaunchRoutingInput } from '@/lib/agent-launch-routing' // Why: the `connection-context` facade imports the store root; the resolver's own module keeps @@ -53,8 +52,8 @@ export type AgentLaunchRouteArgs = { workspace: ProspectiveWorkspace prompt?: string promptDelivery?: NativeChatLaunchPromptDelivery - /** A cwd or explicit CLI args only a terminal can apply. */ - tuiCustomization?: { cwd?: string | null; agentArgs?: string | null } + /** A working directory only a terminal can apply; a structured session runs in its workspace. */ + tuiCustomization?: { cwd?: string | null } initialSessionOptions?: Readonly> } @@ -130,10 +129,8 @@ export function buildAgentLaunchRouteInput( workspace, executionHostId ), - requiresTuiLaunchCustomization: - Boolean(tuiCustomization?.cwd?.trim()) || - hasExplicitTuiAgentArgs(agent, tuiCustomization?.agentArgs) || - hasExplicitTuiLaunchCustomization(store.settings, agent), + requiresTuiLaunchCommand: + Boolean(tuiCustomization?.cwd?.trim()) || hasExplicitTuiLaunchCommand(store.settings, agent), initialSessionOptions: args.initialSessionOptions } } diff --git a/src/renderer/src/lib/agent-launch-routing.test.ts b/src/renderer/src/lib/agent-launch-routing.test.ts index bb22ad6a815..941d184602b 100644 --- a/src/renderer/src/lib/agent-launch-routing.test.ts +++ b/src/renderer/src/lib/agent-launch-routing.test.ts @@ -1,9 +1,7 @@ import { describe, expect, it } from 'vitest' import { STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY } from '../../../shared/protocol-version' import { - hasExplicitTuiAgentArgs, - hasExplicitTuiLaunchCustomization, - hasSemanticallyNonEmptyAgentArgs, + hasExplicitTuiLaunchCommand, resolveAgentLaunchRoute, structuredAgentLaunchSupported } from './agent-launch-routing' @@ -96,7 +94,7 @@ describe('resolveAgentLaunchRoute', () => { // openclaude and grok render native chat but have no structured adapter. expect(route({ agent: 'openclaude' })).toBe('legacy-native-chat') expect(route({ agent: 'grok' })).toBe('legacy-native-chat') - expect(route({ requiresTuiLaunchCustomization: true })).toBe('legacy-native-chat') + expect(route({ requiresTuiLaunchCommand: true })).toBe('legacy-native-chat') }) it.each([ @@ -147,21 +145,13 @@ describe('resolveAgentLaunchRoute', () => { ).toBe('legacy-native-chat') }) - it('normalizes semantically empty argument and settings customization', () => { - expect(hasSemanticallyNonEmptyAgentArgs(' \n\t')).toBe(false) - expect( - hasExplicitTuiLaunchCustomization( - { agentCmdOverrides: {}, agentDefaultArgs: { codex: ' ' }, agentDefaultEnv: {} }, - 'codex' - ) - ).toBe(false) - }) - - it('does not classify the resolved default TUI args as customization', () => { - expect(hasExplicitTuiAgentArgs('codex', '--dangerously-bypass-approvals-and-sandbox')).toBe( + it('treats a whitespace-only command override as no override', () => { + expect(hasExplicitTuiLaunchCommand({ agentCmdOverrides: { codex: ' ' } }, 'codex')).toBe( false ) - expect(hasExplicitTuiAgentArgs('codex', '--model gpt-5.6-sol')).toBe(true) + expect( + hasExplicitTuiLaunchCommand({ agentCmdOverrides: { codex: 'codex-nightly' } }, 'codex') + ).toBe(true) }) }) diff --git a/src/renderer/src/lib/agent-launch-routing.ts b/src/renderer/src/lib/agent-launch-routing.ts index 5c4d8de9586..ba614053131 100644 --- a/src/renderer/src/lib/agent-launch-routing.ts +++ b/src/renderer/src/lib/agent-launch-routing.ts @@ -10,11 +10,7 @@ import { type NativeChatLaunchPromptDelivery } from '@/lib/native-chat-initial-view-mode' -export { - hasExplicitTuiAgentArgs, - hasExplicitTuiLaunchCustomization, - hasSemanticallyNonEmptyAgentArgs -} from '../../../shared/tui-agent-launch-customization' +export { hasExplicitTuiLaunchCommand } from '../../../shared/tui-agent-launch-command-override' export type AgentLaunchRoute = 'structured-native-chat' | 'legacy-native-chat' | 'terminal-tui' @@ -37,7 +33,7 @@ export type AgentLaunchRoutingInput = { promptDelivery?: NativeChatLaunchPromptDelivery launchText?: string nativeChatTranscriptIsLocalReadable?: boolean - requiresTuiLaunchCustomization?: boolean + requiresTuiLaunchCommand?: boolean initialSessionOptions?: Readonly> } @@ -77,7 +73,7 @@ export function structuredAgentLaunchSupported( hostCapabilities: input.hostCapabilities, workspaceKind: input.workspaceKind, projectRuntime: input.projectRuntime, - requiresTuiLaunchCustomization: input.requiresTuiLaunchCustomization + requiresTuiLaunchCommand: input.requiresTuiLaunchCommand }).supported ) } diff --git a/src/renderer/src/lib/launch-agent-in-new-tab.ts b/src/renderer/src/lib/launch-agent-in-new-tab.ts index d756316a6af..ff005550807 100644 --- a/src/renderer/src/lib/launch-agent-in-new-tab.ts +++ b/src/renderer/src/lib/launch-agent-in-new-tab.ts @@ -219,7 +219,7 @@ function launchAgentInNewTabInternal(args: LaunchAgentInNewTabArgs): LaunchAgent workspace: { kind: workspaceKindForWorktreeId(worktreeId), worktreeId }, prompt: trimmedPrompt, promptDelivery: viewModePromptDelivery, - tuiCustomization: { cwd: initialCwd, agentArgs }, + tuiCustomization: { cwd: initialCwd }, initialSessionOptions: startupPlan.sessionOptions, onPromptDelivered }) diff --git a/src/renderer/src/lib/launch-work-item-direct-route-preparation.ts b/src/renderer/src/lib/launch-work-item-direct-route-preparation.ts index 93cb9d146de..e81dbf4b411 100644 --- a/src/renderer/src/lib/launch-work-item-direct-route-preparation.ts +++ b/src/renderer/src/lib/launch-work-item-direct-route-preparation.ts @@ -98,7 +98,6 @@ export async function prepareDirectWorkItemAgentLaunch(args: { workspace: { kind: 'git-worktree', worktreeId: args.worktreeId, repoId: args.repoId }, prompt: args.draftContent, promptDelivery: args.promptDelivery, - tuiCustomization: { agentArgs: args.agentArgs }, initialSessionOptions: startupPlan?.sessionOptions }) const structuredLaunch = plan?.route === 'structured-native-chat' diff --git a/src/renderer/src/lib/ui-zoom.test.ts b/src/renderer/src/lib/ui-zoom.test.ts new file mode 100644 index 00000000000..93f9716ab8d --- /dev/null +++ b/src/renderer/src/lib/ui-zoom.test.ts @@ -0,0 +1,103 @@ +import { afterEach, describe, expect, it, vi } from 'vitest' +import type * as UIZoomModule from './ui-zoom' + +const MAC_UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)' +const LINUX_UA = 'Mozilla/5.0 (X11; Linux x86_64)' + +/** Loads a fresh copy of the module: `isMac` is resolved once at module scope, + * so platform and the preload bridge have to be in place before evaluation. */ +async function loadUIZoom( + args: { level?: number; userAgent?: string; withBridge?: boolean } = {} +): Promise<{ + module: typeof UIZoomModule + setProperty: ReturnType + setZoomLevel: ReturnType + syncTrafficLights: ReturnType + setLevel: (level: number) => void +}> { + const { level = 0, userAgent = LINUX_UA, withBridge = true } = args + let current = level + const setProperty = vi.fn() + const setZoomLevel = vi.fn((next: number) => { + current = next + }) + const syncTrafficLights = vi.fn() + + vi.stubGlobal('navigator', { userAgent }) + vi.stubGlobal('document', { documentElement: { style: { setProperty } } }) + vi.stubGlobal( + 'window', + withBridge + ? { api: { ui: { getZoomLevel: () => current, setZoomLevel, syncTrafficLights } } } + : {} + ) + + vi.resetModules() + const module = await import('./ui-zoom') + return { module, setProperty, setZoomLevel, syncTrafficLights, setLevel: (l) => (current = l) } +} + +afterEach(() => { + vi.unstubAllGlobals() +}) + +describe('windowDipToCssPx', () => { + // STA-7568: a box pinned to a native size must shrink as UI zoom inflates the CSS px + // it is measured in, so that box x factor lands back on the DIP size it was given. + it('converts a DIP size into the CSS px that occupies it at the live zoom level', async () => { + const { module, setLevel } = await loadUIZoom() + + for (const level of [0, 1, -1, 0.5, 5]) { + setLevel(level) + const zoomFactor = 1.2 ** level + expect(module.windowDipToCssPx(390) * zoomFactor).toBeCloseTo(390) + } + }) + + it('is identity at 100% zoom', async () => { + const { module } = await loadUIZoom({ level: 0 }) + + expect(module.windowDipToCssPx(390)).toBe(390) + }) + + it('falls back to unscaled CSS px when no preload zoom bridge exists', async () => { + // The web client serves the same renderer without a webFrame to zoom. + const { module } = await loadUIZoom({ withBridge: false }) + + expect(module.windowDipToCssPx(390)).toBe(390) + }) +}) + +describe('applyUIZoom', () => { + it('sets the webFrame level and publishes the matching factor', async () => { + const { module, setProperty, setZoomLevel } = await loadUIZoom() + + module.applyUIZoom(1) + + expect(setZoomLevel).toHaveBeenCalledWith(1) + expect(setProperty).toHaveBeenCalledWith('--ui-zoom-factor', String(1.2)) + }) + + it('repositions native traffic lights on macOS only', async () => { + const mac = await loadUIZoom({ userAgent: MAC_UA }) + mac.module.applyUIZoom(1) + expect(mac.syncTrafficLights).toHaveBeenCalledWith(1.2) + + const linux = await loadUIZoom({ userAgent: LINUX_UA }) + linux.module.applyUIZoom(1) + expect(linux.syncTrafficLights).not.toHaveBeenCalled() + }) +}) + +describe('syncZoomCSSVar', () => { + it('publishes the restored level without rewriting it', async () => { + const { module, setProperty, setZoomLevel } = await loadUIZoom({ level: 1 }) + + module.syncZoomCSSVar() + + expect(setProperty).toHaveBeenCalledWith('--ui-zoom-factor', String(1.2)) + // Main restores the zoom before startup hydration runs; writing it back would be a no-op + // at best and could clobber a level applied in between. + expect(setZoomLevel).not.toHaveBeenCalled() + }) +}) diff --git a/src/renderer/src/lib/ui-zoom.ts b/src/renderer/src/lib/ui-zoom.ts index eb1749f222c..42851476a32 100644 --- a/src/renderer/src/lib/ui-zoom.ts +++ b/src/renderer/src/lib/ui-zoom.ts @@ -1,17 +1,37 @@ +import { uiZoomFactorFromLevel } from '../../../shared/ui-zoom-level' + const isMac = navigator.userAgent.includes('Mac') +/** Mirrors the live UI zoom factor so stylesheets can compensate a box that has + * to hold a fixed window-DIP size (see `main.css`'s traffic-light pad). */ +const UI_ZOOM_FACTOR_CSS_VAR = '--ui-zoom-factor' + +/** Scale applied to this renderer's CSS pixels, or the persisted level in the web client. */ +function getUIZoomFactor(): number { + return uiZoomFactorFromLevel(window.api?.ui?.getZoomLevel?.() ?? 0) +} + +/** Window DIP -> renderer CSS px. Use when laying out a DOM box that has to + * land on an exact native size, such as an emulated guest viewport. */ +export function windowDipToCssPx(dip: number): number { + return dip / getUIZoomFactor() +} + +function publishZoomFactor(zoomFactor: number): void { + document.documentElement.style.setProperty(UI_ZOOM_FACTOR_CSS_VAR, String(zoomFactor)) + if (isMac) { + window.api.ui.syncTrafficLights(zoomFactor) + } +} + /** * Apply a UI zoom level change: sets webFrame zoom via the preload API, * updates the CSS variable used to compensate the traffic-light pad, * and repositions the native macOS traffic lights to stay aligned. */ export function applyUIZoom(level: number): void { - const zoomFactor = 1.2 ** level window.api.ui.setZoomLevel(level) - document.documentElement.style.setProperty('--ui-zoom-factor', String(zoomFactor)) - if (isMac) { - window.api.ui.syncTrafficLights(zoomFactor) - } + publishZoomFactor(uiZoomFactorFromLevel(level)) } /** @@ -19,10 +39,5 @@ export function applyUIZoom(level: number): void { * Call on startup after the main process has restored the zoom. */ export function syncZoomCSSVar(): void { - const level = window.api.ui.getZoomLevel() - const zoomFactor = 1.2 ** level - document.documentElement.style.setProperty('--ui-zoom-factor', String(zoomFactor)) - if (isMac) { - window.api.ui.syncTrafficLights(zoomFactor) - } + publishZoomFactor(getUIZoomFactor()) } diff --git a/src/renderer/src/lib/worktree-activation-created-agent.test.ts b/src/renderer/src/lib/worktree-activation-created-agent.test.ts index dd6eaa2ac31..d3e7009857e 100644 --- a/src/renderer/src/lib/worktree-activation-created-agent.test.ts +++ b/src/renderer/src/lib/worktree-activation-created-agent.test.ts @@ -69,6 +69,16 @@ describe('activateAndRevealWorktree', () => { expect(recordWorktreeVisit).toHaveBeenCalledWith(worktree.id) }) + it('adds the activated project to an active project filter', () => { + const worktree = makeWorktree() + seedEmptyActivatableWorktree(worktree) + useAppStore.setState({ filterRepoIds: ['repo-2'] }) + + activateAndRevealWorktree(worktree.id) + + expect(useAppStore.getState().filterRepoIds).toEqual(['repo-2', worktree.repoId]) + }) + it('does not relaunch the creation-time agent when reopening an empty worktree', () => { const worktree = makeWorktree() const { revealWorktreeInSidebar } = seedEmptyActivatableWorktree(worktree) diff --git a/src/renderer/src/lib/worktree-activation.ts b/src/renderer/src/lib/worktree-activation.ts index bf4bbce1123..f2e2ac8f85a 100644 --- a/src/renderer/src/lib/worktree-activation.ts +++ b/src/renderer/src/lib/worktree-activation.ts @@ -19,6 +19,7 @@ import { } from './folder-workspace-path-status' import { toast } from 'sonner' import { isDetachedHeadWorkspace } from '@/components/sidebar/visible-worktrees' +import { revealRepoInProjectFilter } from '@/components/sidebar/project-filter-reveal' import type { ExecutionHostId } from '../../../shared/execution-host' import { findFolderWorkspaceOwner } from './folder-workspace-runtime-owner' import type { WorktreeStartupPayload } from '@/lib/worktree-startup-payload' @@ -272,11 +273,9 @@ export function activateAndRevealWorktree( useAppStore.getState().queueTabInitialCwd(primaryTabId, opts.initialCwd) } - // 5. Clear sidebar filters hiding the target — reveal needs the card rendered, else it silently no-ops. + // 5. Lift the sidebar filters hiding the target — reveal needs the card rendered, else it silently no-ops. if (opts?.clearSidebarFilters !== false) { - if (state.filterRepoIds.length > 0 && !state.filterRepoIds.includes(wt.repoId)) { - state.setFilterRepoIds([]) - } + revealRepoInProjectFilter(state, wt.repoId) if ( state.hideAutomationGeneratedWorkspaces && wt.automationProvenance?.kind === 'created-by-automation' diff --git a/src/shared/agent-hook-listener/listener-state.ts b/src/shared/agent-hook-listener/listener-state.ts index 0f40b433801..d4daeaa04b2 100644 --- a/src/shared/agent-hook-listener/listener-state.ts +++ b/src/shared/agent-hook-listener/listener-state.ts @@ -119,6 +119,15 @@ export function admitLegacyAgentStatus( return legacyStatusAdapter(state).admit(caller, mode, entry, options) } +export function canAdmitLegacyAgentStatusEntry( + state: HookListenerState, + caller: AgentStatusLegacyIngressCaller, + entry: AgentHookEventPayload, + mode: AgentStatusLegacyAdmissionMode +): boolean { + return legacyStatusAdapter(state).canAdmit(caller, mode, entry) +} + export function deleteLegacyAgentStatus(state: HookListenerState, paneKey: string): boolean { return legacyStatusAdapter(state).delete(paneKey) } diff --git a/src/shared/agent-status-child-work-admission-core.ts b/src/shared/agent-status-child-work-admission-core.ts index 7c797f34d4b..bc8b9e4fe34 100644 --- a/src/shared/agent-status-child-work-admission-core.ts +++ b/src/shared/agent-status-child-work-admission-core.ts @@ -130,6 +130,14 @@ export function updateExistingAgentChildWork( aliases: AgentChildWorkAliasInput[], removeAliases: string[] = [] ): AgentChildWorkAdmissionResult { + if ( + child.membership === 'settled' && + (request.membership !== 'settled' || + request.state !== child.state || + request.outcome !== child.outcome) + ) { + return rejectAgentChildWorkAdmission('stale-invocation') + } const updated = buildAgentChildWork( request, child.childWorkId, @@ -146,10 +154,7 @@ export function resolveAgentChildWorkAliasRecords( store: AgentStatusStore, aliases: AgentChildWorkAliasInput[] ): AgentChildWorkAliasRecord[] { - return aliases.flatMap((alias) => { - const found = store.getAlias(alias) - return found ? [found] : [] - }) + return store.resolveChildAliases(aliases) } export function validateExistingAgentChildWork( diff --git a/src/shared/agent-status-child-work-admission-operations.ts b/src/shared/agent-status-child-work-admission-operations.ts index 57b35736df4..2fb86e49c2e 100644 --- a/src/shared/agent-status-child-work-admission-operations.ts +++ b/src/shared/agent-status-child-work-admission-operations.ts @@ -1,9 +1,5 @@ -import { serializeAgentChildWorkAliasKey } from './agent-status-child-work-alias' -import { - AGENT_CHILD_WORK_INVOCATION_HISTORY_MAX, - agentChildWorkFencesEqual, - type AgentChildWorkId -} from './agent-status-child-work' +import { serializeAgentChildWorkBindingKey } from './agent-status-child-work-binding' +import { agentChildWorkFencesEqual, type AgentChildWorkId } from './agent-status-child-work' import { agentChildWorkAliasesForChild, buildAgentChildWork, @@ -19,8 +15,7 @@ import type { AgentChildWorkAdmissionResult, AgentChildWorkAdoptRequest, AgentChildWorkAnnounceRequest, - AgentChildWorkReparentRequest, - AgentChildWorkResumeRequest + AgentChildWorkReparentRequest } from './agent-status-child-work-admission' import { parseAgentChildWorkInput, @@ -74,13 +69,18 @@ export function announceAgentChildWork( ? commitAgentChildWork(store, child, aliases, true) : rejectAgentChildWorkAdmission('invalid') } - if (bindings.length !== exact.length || exactIds.size > 1) { + if ((exact.length === 0 && bindings.length > 0) || exactIds.size > 1) { return rejectAgentChildWorkAdmission(exactIds.size > 1 ? 'ambiguous' : 'stale-invocation') } const existingId = exact[0]?.childWorkId if (existingId) { const child = findAgentChildWork(store, existingId) - if (!child) { + if ( + !child || + !agentStatusSubjectsEqual(child.parent, parent) || + child.provider !== request.provider || + child.kind !== request.kind + ) { return rejectAgentChildWorkAdmission('ambiguous') } if (!agentChildWorkFencesEqual(child.invocation, fence)) { @@ -150,7 +150,7 @@ export function adoptAgentChildWork( const oldAliases = agentChildWorkAliasesForChild(store, child.childWorkId) const removeAliases = oldAliases .filter((alias) => alias.kind !== request.kind) - .map(serializeAgentChildWorkAliasKey) + .map(serializeAgentChildWorkBindingKey) const reclassified = oldAliases.map((alias) => ({ parent: alias.parent, provider: alias.provider, @@ -162,7 +162,7 @@ export function adoptAgentChildWork( fence: alias.fence })) const unique = new Map( - [...reclassified, ...aliases].map((alias) => [serializeAgentChildWorkAliasKey(alias), alias]) + [...reclassified, ...aliases].map((alias) => [serializeAgentChildWorkBindingKey(alias), alias]) ) const reclassifiedCollisions = resolveAgentChildWorkAliasRecords(store, [ ...unique.values() @@ -173,72 +173,6 @@ export function adoptAgentChildWork( return updateExistingAgentChildWork(store, request, child, [...unique.values()], removeAliases) } -export function resumeAgentChildWork( - store: AgentStatusStore, - request: AgentChildWorkResumeRequest -): AgentChildWorkAdmissionResult { - const child = findAgentChildWork(store, request.childWorkId) - const invalid = validateExistingAgentChildWork( - child, - request.parent, - request.provider, - request.expectedFence - ) - const nextFence = parseAgentChildWorkInvocationFence(request.nextFence) - if (invalid || !child) { - return invalid ?? rejectAgentChildWorkAdmission('unknown-child') - } - if (!nextFence) { - return rejectAgentChildWorkAdmission('invalid') - } - if (nextFence.generation <= child.invocation.generation) { - return rejectAgentChildWorkAdmission('stale-invocation') - } - const aliases = buildAgentChildWorkAliases( - request.parent, - request.provider, - request.kind, - request.aliases, - child.childWorkId, - nextFence - ) - if (!aliases) { - return rejectAgentChildWorkAdmission('invalid') - } - const collisions = resolveAgentChildWorkAliasRecords(store, aliases).filter( - (binding) => binding.childWorkId !== child.childWorkId - ) - if (collisions.length > 0) { - return rejectAgentChildWorkAdmission('ambiguous') - } - const previousInvocations = [ - ...(child.previousInvocations ?? []), - { - fence: child.invocation, - ...(child.outcome !== undefined ? { outcome: child.outcome } : {}), - ...(child.membership === 'settled' ? { settledAt: child.observedAt } : {}) - } - ].slice(-AGENT_CHILD_WORK_INVOCATION_HISTORY_MAX) - const retainedFences = [nextFence, ...previousInvocations.map((entry) => entry.fence)] - const nextAliasKeys = new Set(aliases.map(serializeAgentChildWorkAliasKey)) - const removeAliases = agentChildWorkAliasesForChild(store, child.childWorkId) - .filter( - (alias) => !retainedFences.some((fence) => agentChildWorkFencesEqual(alias.fence, fence)) - ) - .map(serializeAgentChildWorkAliasKey) - .filter((key) => !nextAliasKeys.has(key)) - const resumed = buildAgentChildWork( - request, - child.childWorkId, - child.firstObservedAt, - nextFence, - previousInvocations - ) - return resumed - ? commitAgentChildWork(store, resumed, aliases, false, removeAliases) - : rejectAgentChildWorkAdmission('invalid') -} - export function reparentAgentChildWork( store: AgentStatusStore, request: AgentChildWorkReparentRequest @@ -282,7 +216,7 @@ export function reparentAgentChildWork( moved, aliases, false, - oldAliases.map(serializeAgentChildWorkAliasKey) + oldAliases.map(serializeAgentChildWorkBindingKey) ) : rejectAgentChildWorkAdmission('invalid') } diff --git a/src/shared/agent-status-child-work-admission.ts b/src/shared/agent-status-child-work-admission.ts index 554191db895..493fba612e2 100644 --- a/src/shared/agent-status-child-work-admission.ts +++ b/src/shared/agent-status-child-work-admission.ts @@ -13,9 +13,9 @@ import type { import { adoptAgentChildWork, announceAgentChildWork, - reparentAgentChildWork, - resumeAgentChildWork + reparentAgentChildWork } from './agent-status-child-work-admission-operations' +import { resumeAgentChildWork } from './agent-status-child-work-resume' import { authorizeAgentChildWorkStop } from './agent-status-child-work-stop' import type { AgentStatusStore } from './agent-status-store' import type { AgentStatusSubject } from './agent-status-subject' diff --git a/src/shared/agent-status-child-work-binding.ts b/src/shared/agent-status-child-work-binding.ts new file mode 100644 index 00000000000..c48aee4b4c7 --- /dev/null +++ b/src/shared/agent-status-child-work-binding.ts @@ -0,0 +1,56 @@ +import { + deserializeAgentChildWorkAliasKey, + parseAgentChildWorkAliasInput, + serializeAgentChildWorkAliasKey, + type AgentChildWorkAliasInput +} from './agent-status-child-work-alias' + +const BINDING_PREFIX = 'agent-child-work-binding-v1:' + +/** One alias may name several proven lifetimes; the binding, not the alias, is a row key. */ +export function serializeAgentChildWorkBindingKey(binding: AgentChildWorkAliasInput): string { + const { parent, provider, segmentId, kind, aliasKind, alias, childWorkId, fence } = binding + const parsed = parseAgentChildWorkAliasInput({ + parent, + provider, + segmentId, + kind, + aliasKind, + alias, + childWorkId, + fence + }) + if (!parsed) { + throw new Error('Invalid child-work binding') + } + return `${BINDING_PREFIX}${JSON.stringify([ + serializeAgentChildWorkAliasKey(parsed), + parsed.childWorkId, + parsed.fence.invocationId, + parsed.fence.generation + ])}` +} + +export function deserializeAgentChildWorkBindingKey( + value: string +): AgentChildWorkAliasInput | null { + if (!value.startsWith(BINDING_PREFIX)) { + return null + } + let tuple: unknown + try { + tuple = JSON.parse(value.slice(BINDING_PREFIX.length)) + } catch { + return null + } + if (!Array.isArray(tuple) || tuple.length !== 4 || typeof tuple[0] !== 'string') { + return null + } + const alias = deserializeAgentChildWorkAliasKey(tuple[0]) + const parsed = parseAgentChildWorkAliasInput({ + ...alias, + childWorkId: tuple[1], + fence: { invocationId: tuple[2], generation: tuple[3] } + }) + return parsed && serializeAgentChildWorkBindingKey(parsed) === value ? parsed : null +} diff --git a/src/shared/agent-status-child-work-freshness.ts b/src/shared/agent-status-child-work-freshness.ts index ca513c81143..0bd32a87a11 100644 --- a/src/shared/agent-status-child-work-freshness.ts +++ b/src/shared/agent-status-child-work-freshness.ts @@ -11,7 +11,7 @@ export type AgentChildWorkFreshnessInput = { export function resolveAgentChildWorkFreshness( input: AgentChildWorkFreshnessInput ): AgentChildWorkState { - if (input.membership === 'settled') { + if (input.membership === 'settled' || input.state === 'idle' || input.state === 'done') { return input.state } return input.parentEvidenceFresh && input.transportObservation === 'live' diff --git a/src/shared/agent-status-child-work-lifetime.test.ts b/src/shared/agent-status-child-work-lifetime.test.ts new file mode 100644 index 00000000000..29242eb1862 --- /dev/null +++ b/src/shared/agent-status-child-work-lifetime.test.ts @@ -0,0 +1,206 @@ +import { describe, expect, it, vi } from 'vitest' +import { AGENT_CHILD_WORK_INVOCATION_HISTORY_MAX } from './agent-status-child-work' +import { + createAgentChildWorkAdmission, + type AgentChildWorkAnnounceRequest +} from './agent-status-child-work-admission' +import { serializeAgentChildWorkAliasKey } from './agent-status-child-work-alias' +import { createAgentStatusStore } from './agent-status-store' +import { + deserializeAgentStatusStoreSnapshot, + serializeAgentStatusStoreSnapshot +} from './agent-status-store-persistence' +import { makeStructuredAgentStatusSubject } from './agent-status-subject' + +const parent = makeStructuredAgentStatusSubject( + { + executionHostId: 'ssh:host-a', + wslDistro: null, + workspaceId: 'folder-a', + workspaceKind: 'folder' + }, + 'session_11111111-1111-4111-8111-111111111111' +) + +function observation( + overrides: Partial = {} +): AgentChildWorkAnnounceRequest { + return { + parent, + provider: 'claude', + aliases: [{ segmentId: 'segment-1', aliasKind: 'task_id', alias: 'task-1' }], + fence: { invocationId: 'invocation-1', generation: 1 }, + lifetime: 'current', + kind: 'agent', + state: 'working', + membership: 'live', + observedAt: 10, + stoppable: true, + provenance: { source: 'structured-session', producerId: 'journal-1' }, + ...overrides + } +} + +function setup() { + const store = createAgentStatusStore({ epoch: 'epoch-a', mode: 'authority' }) + expect(store.applyMutation({ parent: { subject: parent } })).not.toBeNull() + let sequence = 0 + const mintChildWorkId = vi.fn(() => `child-${++sequence}`) + return { + store, + mintChildWorkId, + admission: createAgentChildWorkAdmission(store, { mintChildWorkId }) + } +} + +describe('child-work lifetime fencing', () => { + it('keeps set-valued alias bindings across proven reuse and persistence', () => { + const { store, admission } = setup() + expect(admission.announce(observation())).toMatchObject({ + accepted: true, + childWorkId: 'child-1' + }) + expect( + admission.announce( + observation({ + lifetime: 'proven-new', + fence: { invocationId: 'invocation-2', generation: 2 }, + observedAt: 20 + }) + ) + ).toMatchObject({ accepted: true, childWorkId: 'child-2' }) + const snapshot = store.getSnapshot() + expect(snapshot.aliases).toHaveLength(2) + expect(new Set(snapshot.aliases.map(serializeAgentChildWorkAliasKey)).size).toBe(1) + const restored = createAgentStatusStore({ epoch: 'epoch-b', mode: 'authority' }) + expect( + restored.applySnapshot( + deserializeAgentStatusStoreSnapshot(serializeAgentStatusStoreSnapshot(snapshot)) + ) + ).toBe(true) + expect(restored.getSnapshot().aliases).toEqual(snapshot.aliases) + expect(restored.getChildren(parent)).toEqual(snapshot.children) + }) + + it('rejects old alias updates and stops after resume without cloning a snapshot for admission', () => { + const { store, admission } = setup() + const snapshot = vi.spyOn(store, 'getSnapshot') + admission.announce(observation()) + expect( + admission.resume({ + ...observation({ observedAt: 20 }), + childWorkId: 'child-1', + expectedFence: observation().fence, + nextFence: { invocationId: 'invocation-2', generation: 2 } + }) + ).toMatchObject({ accepted: true }) + const before = store.getChild('child-1') + expect( + admission.announce( + observation({ observedAt: 30, state: 'done', membership: 'settled', outcome: 'failed' }) + ) + ).toEqual({ accepted: false, reason: 'stale-invocation' }) + expect( + admission.authorizeStop({ + parent, + childWorkId: 'child-1', + expectedFence: observation().fence + }) + ).toBeNull() + expect(store.getChild('child-1')).toEqual(before) + expect(snapshot).not.toHaveBeenCalled() + }) + + it('does not reactivate settled history via an ordinary re-announcement', () => { + const { store, admission } = setup() + admission.announce(observation({ state: 'done', membership: 'settled', outcome: 'cancelled' })) + expect(admission.announce(observation({ observedAt: 20 }))).toEqual({ + accepted: false, + reason: 'stale-invocation' + }) + expect(store.getChild('child-1')).toMatchObject({ membership: 'settled', outcome: 'cancelled' }) + }) + + it('does not remint a deleted child from a delayed observation after restart', () => { + const { store, admission } = setup() + admission.announce(observation()) + expect(store.applyMutation({ removeChildren: ['child-1'] })).not.toBeNull() + const restored = createAgentStatusStore({ epoch: 'epoch-b', mode: 'authority' }) + expect(restored.applySnapshot(store.getSnapshot())).toBe(true) + const mintChildWorkId = vi.fn(() => 'replacement') + const restarted = createAgentChildWorkAdmission(restored, { mintChildWorkId }) + expect(restarted.announce(observation({ observedAt: 30 })).accepted).toBe(false) + expect( + restarted.announce(observation({ lifetime: 'proven-new', observedAt: 30 })).accepted + ).toBe(false) + expect(mintChildWorkId).not.toHaveBeenCalled() + expect(restored.getChildren(parent)).toEqual([]) + }) + + it('retains retired-fence rejection beyond bounded invocation history', () => { + const { store, admission } = setup() + admission.announce(observation()) + for ( + let generation = 2; + generation <= AGENT_CHILD_WORK_INVOCATION_HISTORY_MAX + 3; + generation++ + ) { + expect( + admission.resume({ + ...observation({ observedAt: generation * 10 }), + childWorkId: 'child-1', + expectedFence: { + invocationId: `invocation-${generation - 1}`, + generation: generation - 1 + }, + nextFence: { invocationId: `invocation-${generation}`, generation } + }) + ).toMatchObject({ accepted: true }) + } + expect(store.getChild('child-1')?.previousInvocations).toHaveLength( + AGENT_CHILD_WORK_INVOCATION_HISTORY_MAX + ) + expect(store.getSnapshot().aliases).toHaveLength(AGENT_CHILD_WORK_INVOCATION_HISTORY_MAX + 1) + expect(admission.announce(observation({ observedAt: 1000 })).accepted).toBe(false) + expect( + admission.announce(observation({ observedAt: 1000, lifetime: 'proven-new' })).accepted + ).toBe(false) + expect( + admission.resume({ + ...observation({ observedAt: 1000 }), + childWorkId: 'child-1', + expectedFence: { invocationId: 'invocation-35', generation: 35 }, + nextFence: observation().fence + }).accepted + ).toBe(false) + }) + + it('fences former parent and provisional-kind aliases after explicit moves', () => { + const { store, admission, mintChildWorkId } = setup() + admission.announce(observation({ kind: 'unknown' })) + expect( + admission.adopt({ + ...observation({ observedAt: 20 }), + childWorkId: 'child-1', + expectedFence: observation().fence + }) + ).toMatchObject({ accepted: true }) + expect(admission.announce(observation({ kind: 'unknown', observedAt: 30 })).accepted).toBe( + false + ) + const toParent = { ...parent, workspaceId: 'folder-b' } + expect(store.applyMutation({ parent: { subject: toParent } })).not.toBeNull() + expect( + admission.reparent({ + childWorkId: 'child-1', + fromParent: parent, + toParent, + expectedFence: observation().fence, + observedAt: 40 + }) + ).toMatchObject({ accepted: true }) + expect(admission.announce(observation({ observedAt: 50 })).accepted).toBe(false) + expect(mintChildWorkId).toHaveBeenCalledTimes(1) + expect(store.getChild('child-1')?.parent).toEqual(toParent) + }) +}) diff --git a/src/shared/agent-status-child-work-projection.test.ts b/src/shared/agent-status-child-work-projection.test.ts index 91200735498..add9d8a14ca 100644 --- a/src/shared/agent-status-child-work-projection.test.ts +++ b/src/shared/agent-status-child-work-projection.test.ts @@ -145,7 +145,7 @@ describe('resolveAgentChildWorkFreshness', () => { } ) - it('does not turn live idle into settled or rewrite settled history on contact loss', () => { + it('preserves idle evidence and settled history on contact loss', () => { expect( resolveAgentChildWorkFreshness({ state: 'idle', @@ -153,7 +153,7 @@ describe('resolveAgentChildWorkFreshness', () => { parentEvidenceFresh: false, transportObservation: 'live' }) - ).toBe('unverifiable') + ).toBe('idle') expect( resolveAgentChildWorkFreshness({ state: 'done', diff --git a/src/shared/agent-status-child-work-resume.ts b/src/shared/agent-status-child-work-resume.ts new file mode 100644 index 00000000000..b8b87efccf5 --- /dev/null +++ b/src/shared/agent-status-child-work-resume.ts @@ -0,0 +1,85 @@ +import { serializeAgentChildWorkBindingKey } from './agent-status-child-work-binding' +import { + AGENT_CHILD_WORK_INVOCATION_HISTORY_MAX, + agentChildWorkFencesEqual +} from './agent-status-child-work' +import { + agentChildWorkAliasesForChild, + buildAgentChildWork, + buildAgentChildWorkAliases, + commitAgentChildWork, + findAgentChildWork, + rejectAgentChildWorkAdmission, + resolveAgentChildWorkAliasRecords, + validateExistingAgentChildWork +} from './agent-status-child-work-admission-core' +import type { + AgentChildWorkAdmissionResult, + AgentChildWorkResumeRequest +} from './agent-status-child-work-admission' +import { parseAgentChildWorkInvocationFence } from './agent-status-child-work-codec' +import type { AgentStatusStore } from './agent-status-store' + +export function resumeAgentChildWork( + store: AgentStatusStore, + request: AgentChildWorkResumeRequest +): AgentChildWorkAdmissionResult { + const child = findAgentChildWork(store, request.childWorkId) + const invalid = validateExistingAgentChildWork( + child, + request.parent, + request.provider, + request.expectedFence + ) + const nextFence = parseAgentChildWorkInvocationFence(request.nextFence) + if (invalid || !child) { + return invalid ?? rejectAgentChildWorkAdmission('unknown-child') + } + if (!nextFence) { + return rejectAgentChildWorkAdmission('invalid') + } + if (nextFence.generation <= child.invocation.generation) { + return rejectAgentChildWorkAdmission('stale-invocation') + } + const aliases = buildAgentChildWorkAliases( + request.parent, + request.provider, + request.kind, + request.aliases, + child.childWorkId, + nextFence + ) + if (!aliases) { + return rejectAgentChildWorkAdmission('invalid') + } + const collisions = resolveAgentChildWorkAliasRecords(store, aliases).filter( + (binding) => binding.childWorkId !== child.childWorkId + ) + if (collisions.length > 0) { + return rejectAgentChildWorkAdmission('ambiguous') + } + const previousInvocations = [ + ...(child.previousInvocations ?? []), + { + fence: child.invocation, + ...(child.outcome !== undefined ? { outcome: child.outcome } : {}), + ...(child.membership === 'settled' ? { settledAt: child.observedAt } : {}) + } + ].slice(-AGENT_CHILD_WORK_INVOCATION_HISTORY_MAX) + const resumed = buildAgentChildWork( + request, + child.childWorkId, + child.firstObservedAt, + nextFence, + previousInvocations + ) + const retainedFences = [nextFence, ...previousInvocations.map((entry) => entry.fence)] + const removeAliases = agentChildWorkAliasesForChild(store, child.childWorkId) + .filter( + (alias) => !retainedFences.some((fence) => agentChildWorkFencesEqual(fence, alias.fence)) + ) + .map(serializeAgentChildWorkBindingKey) + return resumed + ? commitAgentChildWork(store, resumed, aliases, false, removeAliases) + : rejectAgentChildWorkAdmission('invalid') +} diff --git a/src/shared/agent-status-legacy-adapter.test.ts b/src/shared/agent-status-legacy-adapter.test.ts index ff64e5ac9ca..484084e01d6 100644 --- a/src/shared/agent-status-legacy-adapter.test.ts +++ b/src/shared/agent-status-legacy-adapter.test.ts @@ -28,11 +28,18 @@ describe('legacy agent-status adapter', () => { expect(adapter.view.get(entry.paneKey)).toBe(entry) }) - it('refuses keys already owned by the canonical projection', () => { + it('refuses structured rows and keys already owned by the canonical projection', () => { const canonicalPaneKeys = new Set() const adapter = createAgentStatusLegacyAdapter({ isCanonicalPaneKey: (paneKey) => canonicalPaneKeys.has(paneKey) }) + const structured = { ...status('structured-pane'), structuredHost: 'owned' as const } + + expect( + adapter.admit('main-status-update', AGENT_STATUS_2A_CURRENT_PRODUCER_MODE, structured) + ).toBe(false) + expect(adapter.view.size).toBe(0) + const prior = status('canonical-pane', 'legacy before canonical publication') expect(adapter.admit('main-status-update', AGENT_STATUS_2A_CURRENT_PRODUCER_MODE, prior)).toBe( true @@ -137,21 +144,27 @@ describe('legacy agent-status adapter', () => { expect(adapter.view.get('immutable')?.payload.prompt).toBe('work') }) - it('assigns listing order once per live row and preserves it across refresh and move', () => { + it('preserves Map insertion order across refresh, explicit reorder and relocation', () => { let nextOrder = 40 const adapter = createAgentStatusLegacyAdapter({ nextListingOrder: () => nextOrder++ }) adapter.admit('main-status-update', AGENT_STATUS_2A_CURRENT_PRODUCER_MODE, status('pane')) expect(adapter.listingOrder('pane')).toBe(40) + adapter.admit( + 'main-status-update', + AGENT_STATUS_2A_CURRENT_PRODUCER_MODE, + status('pane', 'ordinary refresh') + ) + expect(adapter.listingOrder('pane')).toBe(40) adapter.admit( 'main-status-update', AGENT_STATUS_2A_CURRENT_PRODUCER_MODE, status('pane', 'refresh'), { moveToEnd: true } ) - expect(adapter.listingOrder('pane')).toBe(40) + expect(adapter.listingOrder('pane')).toBe(41) adapter.move('pane', 'moved-pane') - expect(adapter.listingOrder('moved-pane')).toBe(40) + expect(adapter.listingOrder('moved-pane')).toBe(42) adapter.delete('moved-pane') adapter.admit( @@ -159,6 +172,6 @@ describe('legacy agent-status adapter', () => { AGENT_STATUS_2A_CURRENT_PRODUCER_MODE, status('moved-pane', 'new lifecycle') ) - expect(adapter.listingOrder('moved-pane')).toBe(41) + expect(adapter.listingOrder('moved-pane')).toBe(43) }) }) diff --git a/src/shared/agent-status-legacy-adapter.ts b/src/shared/agent-status-legacy-adapter.ts index f173a32ddb2..ccad16b5a78 100644 --- a/src/shared/agent-status-legacy-adapter.ts +++ b/src/shared/agent-status-legacy-adapter.ts @@ -69,6 +69,11 @@ export function canAdmitLegacyAgentStatus( export type AgentStatusLegacyAdapter = { readonly view: ReadonlyMap + canAdmit( + caller: AgentStatusLegacyIngressCaller, + mode: AgentStatusLegacyAdmissionMode, + entry: AgentHookEventPayload + ): boolean admit( caller: AgentStatusLegacyIngressCaller, mode: AgentStatusLegacyAdmissionMode, @@ -140,14 +145,19 @@ export function createAgentStatusLegacyAdapter( const nextListingOrder = options.nextListingOrder ?? (() => nextLocalListingOrder++) const isCanonicalPaneKey = options.isCanonicalPaneKey ?? (() => false) const view = createReadonlyView(entries) + const canAdmit: AgentStatusLegacyAdapter['canAdmit'] = (caller, mode, entry) => + entry.structuredHost === undefined && + !isCanonicalPaneKey(entry.paneKey) && + canAdmitLegacyAgentStatus(caller, mode) return { view, + canAdmit, admit: (caller, mode, entry, admitOptions = {}) => { - if (isCanonicalPaneKey(entry.paneKey) || !canAdmitLegacyAgentStatus(caller, mode)) { + if (!canAdmit(caller, mode, entry)) { return false } - if (!listingOrderByPaneKey.has(entry.paneKey)) { + if (!listingOrderByPaneKey.has(entry.paneKey) || admitOptions.moveToEnd) { const order = nextListingOrder() if (!Number.isSafeInteger(order) || order < 0) { throw new RangeError( @@ -181,7 +191,6 @@ export function createAgentStatusLegacyAdapter( } const movedKey = `${toPaneKey}${key.slice(fromPaneKey.length)}` const priorTargetOrder = listingOrderByPaneKey.get(movedKey) - const sourceOrder = listingOrderByPaneKey.get(key) entries.delete(key) listingOrderByPaneKey.delete(key) if (isCanonicalPaneKey(movedKey)) { @@ -190,8 +199,8 @@ export function createAgentStatusLegacyAdapter( entries.set(movedKey, value) if (priorTargetOrder !== undefined) { listingOrderByPaneKey.set(movedKey, priorTargetOrder) - } else if (sourceOrder !== undefined) { - listingOrderByPaneKey.set(movedKey, sourceOrder) + } else { + listingOrderByPaneKey.set(movedKey, nextListingOrder()) } } }, diff --git a/src/shared/agent-status-store-byte-budget.test.ts b/src/shared/agent-status-store-byte-budget.test.ts new file mode 100644 index 00000000000..ef49288d761 --- /dev/null +++ b/src/shared/agent-status-store-byte-budget.test.ts @@ -0,0 +1,75 @@ +import { expect, it } from 'vitest' +import { createAgentStatusStore } from './agent-status-store' +import { AGENT_STATUS_STORE_LIMITS } from './agent-status-store-contract' +import { + deserializeAgentStatusStoreSnapshot, + serializeAgentStatusStoreSnapshot +} from './agent-status-store-persistence' +import { makeStructuredAgentStatusSubject } from './agent-status-subject' + +it('rejects cumulative snapshot overflow atomically even when each mutation fits', () => { + const subject = makeStructuredAgentStatusSubject( + { executionHostId: 'local', wslDistro: null, workspaceId: 'folder-a', workspaceKind: 'folder' }, + 'session_11111111-1111-4111-8111-111111111111' + ) + const store = createAgentStatusStore({ epoch: 'epoch-a', mode: 'authority' }) + expect(store.applyMutation({ parent: { subject } })).not.toBeNull() + const batch = (offset: number) => ({ + facts: Array.from({ length: 1024 }, (_, index) => ({ + subject, + key: `fact-${offset + index}`, + value: 'x'.repeat(4096) + })) + }) + for (const offset of [0, 1024, 2048]) { + expect(store.applyMutation(batch(offset))).not.toBeNull() + } + const before = store.getSnapshot() + expect(store.applyMutation(batch(3072))).toBeNull() + expect(store.getSnapshot()).toEqual(before) + expect(serializeAgentStatusStoreSnapshot(before).length).toBeLessThan( + AGENT_STATUS_STORE_LIMITS.serializedBytes + ) +}) + +it('can deserialize a dense valid snapshot within the declared record and byte budgets', () => { + const subject = makeStructuredAgentStatusSubject( + { executionHostId: 'local', wslDistro: null, workspaceId: 'folder-a', workspaceKind: 'folder' }, + 'session_11111111-1111-4111-8111-111111111111' + ) + const store = createAgentStatusStore({ epoch: 'epoch-a', mode: 'authority' }) + expect( + store.applySnapshot({ + version: 1, + epoch: 'persisted', + revision: 1, + parents: [{ subject, revision: 1 }], + children: Array.from({ length: 8192 }, (_, index) => ({ + childWorkId: `child-${index}`, + parent: subject, + provider: 'claude', + kind: 'agent', + state: 'working', + membership: 'live', + firstObservedAt: 10, + observedAt: 10, + stoppable: false, + invocation: { invocationId: 'invocation-1', generation: 1 }, + provenance: { source: 'structured-session', producerId: 'journal' }, + revision: 1 + })), + aliases: [], + facts: Array.from({ length: 8192 }, (_, index) => ({ + subject, + key: `fact-${index}`, + value: true, + revision: 1 + })), + tombstones: [] + }) + ).toBe(true) + const snapshot = store.getSnapshot() + expect(deserializeAgentStatusStoreSnapshot(serializeAgentStatusStoreSnapshot(snapshot))).toEqual( + snapshot + ) +}) diff --git a/src/shared/agent-status-store-byte-budget.ts b/src/shared/agent-status-store-byte-budget.ts new file mode 100644 index 00000000000..aed2d6602f6 --- /dev/null +++ b/src/shared/agent-status-store-byte-budget.ts @@ -0,0 +1,65 @@ +import type { AgentChildWorkAliasRecord } from './agent-status-child-work-alias' +import type { AgentChildWorkRecord } from './agent-status-child-work' +import { + AGENT_STATUS_STORE_LIMITS, + AGENT_STATUS_STORE_SNAPSHOT_VERSION, + type AgentStatusFactRecord, + type AgentStatusStoreSnapshot, + type AgentStatusTombstoneRecord +} from './agent-status-store-contract' +import type { AgentStatusParentRecord } from './agent-status-store-parent' +import type { AgentStatusStoreState } from './agent-status-store-state' +import { measureUtf8ByteLength } from './utf8-byte-limits' + +/** Either the snapshot header or a single owner/record measured while accumulating the budget. */ +type AgentStatusStoreByteBudgetRecord = + | AgentStatusStoreSnapshot + | AgentStatusParentRecord + | AgentChildWorkRecord + | AgentChildWorkAliasRecord + | AgentStatusFactRecord + | AgentStatusTombstoneRecord + +const recordBytes = new WeakMap() + +function serializedBytes(record: AgentStatusStoreByteBudgetRecord): number { + const cached = recordBytes.get(record) + if (cached !== undefined) { + return cached + } + const bytes = measureUtf8ByteLength(JSON.stringify(record)).byteLength + if (Object.isFrozen(record)) { + recordBytes.set(record, bytes) + } + return bytes +} + +/** Enforce the complete snapshot budget before commit without allocating a full snapshot. */ +export function agentStatusStoreFitsByteBudget(state: AgentStatusStoreState): boolean { + let bytes = serializedBytes({ + version: AGENT_STATUS_STORE_SNAPSHOT_VERSION, + epoch: state.epoch, + revision: state.revision, + parents: [], + children: [], + aliases: [], + facts: [], + tombstones: [] + }) + for (const records of [ + state.parents, + state.children, + state.aliases, + state.facts, + state.tombstones + ]) { + bytes += Math.max(0, records.size - 1) + for (const record of records.values()) { + bytes += serializedBytes(record) + if (bytes > AGENT_STATUS_STORE_LIMITS.serializedBytes) { + return false + } + } + } + return bytes <= AGENT_STATUS_STORE_LIMITS.serializedBytes +} diff --git a/src/shared/agent-status-store-child-queries.ts b/src/shared/agent-status-store-child-queries.ts new file mode 100644 index 00000000000..4850c57e82d --- /dev/null +++ b/src/shared/agent-status-store-child-queries.ts @@ -0,0 +1,34 @@ +import { + serializeAgentChildWorkAliasKey, + type AgentChildWorkAliasInput, + type AgentChildWorkAliasRecord +} from './agent-status-child-work-alias' +import { deserializeAgentChildWorkBindingKey } from './agent-status-child-work-binding' +import { + deepFreezeAgentStatusStoreValue, + type AgentStatusStoreState +} from './agent-status-store-state' + +/** Retired bindings fence delayed observations even after their child/history is removed. */ +export function resolveAgentStatusChildBindings( + state: AgentStatusStoreState, + aliases: AgentChildWorkAliasInput[] +): AgentChildWorkAliasRecord[] { + const keys = new Set(aliases.map(serializeAgentChildWorkAliasKey)) + const matches: AgentChildWorkAliasRecord[] = [] + for (const alias of state.aliases.values()) { + if (keys.has(serializeAgentChildWorkAliasKey(alias))) { + matches.push(alias) + } + } + for (const tombstone of state.tombstones.values()) { + if (tombstone.entity !== 'alias' || state.aliases.has(tombstone.key)) { + continue + } + const alias = deserializeAgentChildWorkBindingKey(tombstone.key) + if (alias && keys.has(serializeAgentChildWorkAliasKey(alias))) { + matches.push(deepFreezeAgentStatusStoreValue({ ...alias, revision: tombstone.revision })) + } + } + return matches +} diff --git a/src/shared/agent-status-store-codec.ts b/src/shared/agent-status-store-codec.ts index 5a0d6fc2878..326fec5aa72 100644 --- a/src/shared/agent-status-store-codec.ts +++ b/src/shared/agent-status-store-codec.ts @@ -28,7 +28,7 @@ import { parseAgentStatusSubject } from './agent-status-subject' import { measureUtf8ByteLength } from './utf8-byte-limits' const MAX_EPOCH_LENGTH = 256 -const MAX_TOMBSTONE_KEY_LENGTH = 4_096 +const MAX_TOMBSTONE_KEY_LENGTH = 32_768 function isRecord(value: unknown): value is Record { return typeof value === 'object' && value !== null && !Array.isArray(value) diff --git a/src/shared/agent-status-store-mutation.ts b/src/shared/agent-status-store-mutation.ts index a11fa293467..69f0f278175 100644 --- a/src/shared/agent-status-store-mutation.ts +++ b/src/shared/agent-status-store-mutation.ts @@ -1,8 +1,8 @@ +import { parseAgentChildWorkAliasRecord } from './agent-status-child-work-alias' import { - deserializeAgentChildWorkAliasKey, - parseAgentChildWorkAliasRecord, - serializeAgentChildWorkAliasKey -} from './agent-status-child-work-alias' + deserializeAgentChildWorkBindingKey, + serializeAgentChildWorkBindingKey +} from './agent-status-child-work-binding' import { parseAgentChildWorkRecord } from './agent-status-child-work-codec' import type { AgentStatusStoreMutation, @@ -125,7 +125,7 @@ function applyExplicitTombstone( if (tombstone.entity === 'child') { removeChild(state, tombstone.key, revision, removedChildWorkIds) } else if (tombstone.entity === 'alias') { - if (!deserializeAgentChildWorkAliasKey(tombstone.key)) { + if (!deserializeAgentChildWorkBindingKey(tombstone.key)) { return false } removeAlias(state, tombstone.key, revision) @@ -194,7 +194,7 @@ function upsertAliases( if (!record) { return false } - const key = serializeAgentChildWorkAliasKey(record) + const key = serializeAgentChildWorkBindingKey(record) if (agentStatusTombstoneFences(state, 'alias', key, revision)) { return false } @@ -237,7 +237,7 @@ export function applyAgentStatusStoreMutation( removeChild(next, childWorkId, revision, removedChildWorkIds) } for (const key of mutation.removeAliases ?? []) { - if (!deserializeAgentChildWorkAliasKey(key)) { + if (!deserializeAgentChildWorkBindingKey(key)) { return null } removeAlias(next, key, revision) diff --git a/src/shared/agent-status-store-persistence.ts b/src/shared/agent-status-store-persistence.ts index 0f72203ca3e..ffab63d4557 100644 --- a/src/shared/agent-status-store-persistence.ts +++ b/src/shared/agent-status-store-persistence.ts @@ -7,7 +7,7 @@ import { assertJsonTextStructureWithinLimits } from './json-text-structure-limit import { measureUtf8ByteLength } from './utf8-byte-limits' const SNAPSHOT_STRUCTURE_LIMITS = { - structuralTokens: 512 * 1024, + structuralTokens: AGENT_STATUS_STORE_LIMITS.serializedBytes, nestingDepth: 32 } as const diff --git a/src/shared/agent-status-store-reopen.test.ts b/src/shared/agent-status-store-reopen.test.ts new file mode 100644 index 00000000000..daab09e8bf1 --- /dev/null +++ b/src/shared/agent-status-store-reopen.test.ts @@ -0,0 +1,64 @@ +import { describe, expect, it } from 'vitest' +import { createAgentStatusStore } from './agent-status-store' +import { + makePtyRunAgentStatusSubject, + makeStructuredAgentStatusSubject +} from './agent-status-subject' + +const scope = { + executionHostId: 'local', + wslDistro: null, + workspaceId: 'folder-one', + workspaceKind: 'folder' +} as const +const subject = makeStructuredAgentStatusSubject(scope, 'durable-session') + +describe('structured parent reopening', () => { + it('reopens a removed structured parent and refuses a replay whose revision pair is spent', () => { + const owner = createAgentStatusStore({ epoch: 'host', mode: 'authority' }) + const replica = createAgentStatusStore({ epoch: 'reader', mode: 'replica' }) + const oldPublication = owner.applyMutation({ parent: { subject, firstObservedAt: 10 } }) + expect(oldPublication).not.toBeNull() + expect(replica.applySnapshot(owner.getSnapshot())).toBe(true) + const removal = owner.applyMutation({ removeParent: subject }) + expect(removal).not.toBeNull() + expect(replica.applyTransportEnvelope(removal)).toBe(true) + expect(replica.getParent(subject)).toBeNull() + + const reopened = owner.applyMutation({ parent: { subject, firstObservedAt: 30 } }) + expect(reopened).not.toBeNull() + expect(replica.applyTransportEnvelope(reopened)).toBe(true) + expect(replica.getParent(subject)).toEqual(owner.getParent(subject)) + expect(replica.getParent(subject)?.firstObservedAt).toBe(30) + + // Outcome only, deliberately: a spent replay is refused and a resequenced one is not. Which + // layer refuses it is NOT asserted, because no test at this API can tell — transport + // consecutiveness, the parent-revision validator and the tombstone guard each refuse it alone, + // and ablating any two leaves this green. Attributing one of them here would be a false claim. + expect(replica.applyTransportEnvelope(oldPublication)).toBe(false) + expect(replica.getParent(subject)?.firstObservedAt).toBe(30) + const resequenced = owner.applyMutation({ parent: { subject, firstObservedAt: 10 } }) + expect(resequenced).not.toBeNull() + expect(replica.applyTransportEnvelope(resequenced)).toBe(true) + expect(replica.getParent(subject)?.firstObservedAt).toBe(10) + expect(replica.getSnapshot()).toEqual(owner.getSnapshot()) + }) + + it('fences a republication only inside the removing mutation, for every subject kind', () => { + const owner = createAgentStatusStore({ epoch: 'host', mode: 'authority' }) + const pty = makePtyRunAgentStatusSubject(scope, 'retired-run') + expect(owner.applyMutation({ parent: { subject: pty } })).not.toBeNull() + expect(owner.applyMutation({ removeParent: pty })).not.toBeNull() + + // Same mutation: the tombstone shares this revision, so it outranks the republication. + const contradiction = owner.getSnapshot() + expect(owner.applyMutation({ removeParent: subject, parent: { subject } })).toBeNull() + expect(owner.getSnapshot()).toEqual(contradiction) + + // A later mutation outranks the tombstone regardless of kind — PTY runs included. + expect(owner.applyMutation({ parent: { subject: pty } })).not.toBeNull() + expect(owner.getParent(pty)).not.toBeNull() + + expect(owner.applyMutation({})).toBeNull() + }) +}) diff --git a/src/shared/agent-status-store-snapshot-budget.ts b/src/shared/agent-status-store-snapshot-budget.ts deleted file mode 100644 index e8a40971d50..00000000000 --- a/src/shared/agent-status-store-snapshot-budget.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { - AGENT_STATUS_STORE_LIMITS, - AGENT_STATUS_STORE_SNAPSHOT_VERSION, - type AgentStatusFactRecord, - type AgentStatusTombstoneRecord -} from './agent-status-store-contract' -import type { AgentChildWorkAliasRecord } from './agent-status-child-work-alias' -import type { AgentChildWorkRecord } from './agent-status-child-work' -import type { AgentStatusParentRecord } from './agent-status-store-parent' -import type { AgentStatusStoreState } from './agent-status-store-state' -import { getUtf8ByteLength } from './utf8-byte-limits' - -type AgentStatusSnapshotRecord = - | AgentStatusParentRecord - | AgentChildWorkRecord - | AgentChildWorkAliasRecord - | AgentStatusFactRecord - | AgentStatusTombstoneRecord - -const snapshotRecordByteLengths = new WeakMap() - -function getSnapshotRecordByteLength(record: AgentStatusSnapshotRecord): number { - const cached = snapshotRecordByteLengths.get(record) - if (cached !== undefined) { - return cached - } - const byteLength = getUtf8ByteLength(JSON.stringify(record)) - snapshotRecordByteLengths.set(record, byteLength) - return byteLength -} - -function getSnapshotCollectionEntryBytes(records: Iterable): number { - let byteLength = 0 - let count = 0 - for (const record of records) { - byteLength += getSnapshotRecordByteLength(record) - count += 1 - } - return byteLength + Math.max(0, count - 1) -} - -export function isAgentStatusStoreSnapshotWithinByteLimit(state: AgentStatusStoreState): boolean { - const emptySnapshot = { - version: AGENT_STATUS_STORE_SNAPSHOT_VERSION, - epoch: state.epoch, - revision: state.revision, - parents: [], - children: [], - aliases: [], - facts: [], - tombstones: [] - } - let byteLength = getUtf8ByteLength(JSON.stringify(emptySnapshot)) - const collections: Iterable[] = [ - state.parents.values(), - state.children.values(), - state.aliases.values(), - state.facts.values(), - state.tombstones.values() - ] - for (const records of collections) { - byteLength += getSnapshotCollectionEntryBytes(records) - if (byteLength > AGENT_STATUS_STORE_LIMITS.serializedBytes) { - return false - } - } - return true -} diff --git a/src/shared/agent-status-store-state.ts b/src/shared/agent-status-store-state.ts index c81b9458aa1..ba4d2829307 100644 --- a/src/shared/agent-status-store-state.ts +++ b/src/shared/agent-status-store-state.ts @@ -1,15 +1,18 @@ import { - deserializeAgentChildWorkAliasKey, parseAgentChildWorkAliasRecord, - serializeAgentChildWorkAliasKey, type AgentChildWorkAliasRecord } from './agent-status-child-work-alias' +import { + deserializeAgentChildWorkBindingKey, + serializeAgentChildWorkBindingKey +} from './agent-status-child-work-binding' import { agentChildWorkBelongsTo, agentChildWorkFencesEqual, type AgentChildWorkRecord } from './agent-status-child-work' import { parseAgentChildWorkRecord } from './agent-status-child-work-codec' +import { agentStatusStoreFitsByteBudget } from './agent-status-store-byte-budget' import { AGENT_STATUS_STORE_LIMITS, AGENT_STATUS_STORE_SNAPSHOT_VERSION, @@ -33,7 +36,6 @@ import { parseAgentStatusParentRecord, type AgentStatusParentRecord } from './agent-status-store-parent' -import { isAgentStatusStoreSnapshotWithinByteLimit } from './agent-status-store-snapshot-budget' import { deserializeAgentStatusSubject, serializeAgentStatusSubject } from './agent-status-subject' export type AgentStatusStoreState = { @@ -160,7 +162,7 @@ export function validateAgentStatusStoreState(state: AgentStatusStoreState): boo for (const [key, alias] of state.aliases) { const child = state.children.get(alias.childWorkId) if ( - key !== serializeAgentChildWorkAliasKey(alias) || + key !== serializeAgentChildWorkBindingKey(alias) || alias.revision > state.revision || !child || !agentChildWorkBelongsTo(child, alias.parent) || @@ -186,13 +188,13 @@ export function validateAgentStatusStoreState(state: AgentStatusStoreState): boo if ( item.revision > state.revision || (item.entity === 'parent' && !deserializeAgentStatusSubject(item.key)) || - (item.entity === 'alias' && !deserializeAgentChildWorkAliasKey(item.key)) || + (item.entity === 'alias' && !deserializeAgentChildWorkBindingKey(item.key)) || (item.entity === 'fact' && !deserializeAgentStatusFactKey(item.key)) ) { return false } } - return isAgentStatusStoreSnapshotWithinByteLimit(state) + return agentStatusStoreFitsByteBudget(state) } export function snapshotFromAgentStatusStoreState( @@ -234,7 +236,7 @@ export function agentStatusStoreStateFromSnapshot( if (!record) { return null } - const key = serializeAgentChildWorkAliasKey(record) + const key = serializeAgentChildWorkBindingKey(record) if (state.aliases.has(key)) { return null } diff --git a/src/shared/agent-status-store.ts b/src/shared/agent-status-store.ts index f4c286f1d23..e59919096ab 100644 --- a/src/shared/agent-status-store.ts +++ b/src/shared/agent-status-store.ts @@ -2,9 +2,11 @@ import { agentChildWorkBelongsTo, type AgentChildWorkRecord } from './agent-stat import { serializeAgentChildWorkAliasKey, type AgentChildWorkAliasIdentity, + type AgentChildWorkAliasInput, type AgentChildWorkAliasRecord } from './agent-status-child-work-alias' import { parseAgentChildWorkRecord } from './agent-status-child-work-codec' +import { resolveAgentStatusChildBindings } from './agent-status-store-child-queries' import type { AgentStatusStoreSnapshot } from './agent-status-store-contract' import { isAgentStatusStoreEpoch, @@ -43,6 +45,7 @@ export type AgentStatusStore = { getAlias(identity: AgentChildWorkAliasIdentity): AgentChildWorkAliasRecord | null getAliasesForChild(childWorkId: string): AgentChildWorkAliasRecord[] getRunAliasIndex(): AgentStatusRunAliasIndex + resolveChildAliases(aliases: AgentChildWorkAliasInput[]): AgentChildWorkAliasRecord[] getSnapshot(): AgentStatusStoreSnapshot applyMutation(mutation: unknown): AgentStatusMutationEnvelope | null applySnapshot(snapshot: unknown): boolean @@ -62,6 +65,9 @@ export function createAgentStatusStore(options: CreateAgentStatusStoreOptions): let snapshotApplied = options.mode === 'authority' const store: AgentStatusStore = { + resolveChildAliases(aliases) { + return resolveAgentStatusChildBindings(state, aliases) + }, getParent(subject) { const parsed = parseAgentStatusSubject(subject) if (!parsed) { diff --git a/src/shared/structured-native-chat-launch-route.test.ts b/src/shared/structured-native-chat-launch-route.test.ts index 02f202ae0b4..21b52a83b6e 100644 --- a/src/shared/structured-native-chat-launch-route.test.ts +++ b/src/shared/structured-native-chat-launch-route.test.ts @@ -56,21 +56,20 @@ describe('per-launch structured feasibility', () => { expect(support({ agent })).toEqual({ supported: true }) }) - it.each([ + const blockerCases: [string, Partial, string][] = [ ['a reused PTY agent', { reusesTerminal: true }, 'reused-terminal'], ['grok', { agent: 'grok' }, 'agent-without-structured-session'], ['openclaude', { agent: 'openclaude' }, 'agent-without-structured-session'], ['a floating workspace', { workspaceKind: 'floating' }, 'floating-workspace'], - ['a custom TUI launch', { requiresTuiLaunchCustomization: true }, 'tui-launch-customization'], + ['a custom TUI launch command', { requiresTuiLaunchCommand: true }, 'tui-launch-command'], ['an SSH host', { executionHostId: 'ssh:host-a' }, 'remote-execution-host'], ['a missing capability', { hostCapabilities: [] }, 'runtime-capability'], ['an unanswered host', { hostCapabilities: null }, 'runtime-capability-unknown'] - ] as [string, Partial, string][])( - 'names %s as the blocker', - (_name, overrides, blocker) => { - expect(support(overrides)).toEqual({ supported: false, blocker }) - } - ) + ] + + it.each(blockerCases)('names %s as the blocker', (_name, overrides, blocker) => { + expect(support(overrides)).toEqual({ supported: false, blocker }) + }) // The client cannot see whether the host can read a provider child's start time, so neither // provider is refused here on platform; agentSession.createSupport answers that at create time. diff --git a/src/shared/structured-native-chat-launch-route.ts b/src/shared/structured-native-chat-launch-route.ts index df36494d24b..bde8de06c0a 100644 --- a/src/shared/structured-native-chat-launch-route.ts +++ b/src/shared/structured-native-chat-launch-route.ts @@ -24,7 +24,10 @@ export type StructuredNativeChatBlocker = | 'reused-terminal' | 'agent-without-structured-session' | 'floating-workspace' - | 'tui-launch-customization' + /** The agent's launch command is overridden, or the launch names its own working directory: + * a process shape only a PTY can produce. The configured *arguments* are not read here — + * they are a terminal concern the structured transports do not share a vocabulary with. */ + | 'tui-launch-command' | 'remote-execution-host' | 'project-runtime' | 'runtime-capability' @@ -43,7 +46,7 @@ export type StructuredNativeChatSupportInput = { hostCapabilities: readonly string[] | null workspaceKind?: 'git-worktree' | 'folder' | 'floating' projectRuntime?: ProjectExecutionRuntimeResolution | null - requiresTuiLaunchCustomization?: boolean + requiresTuiLaunchCommand?: boolean /** An existing PTY agent keeps its execution transport. */ reusesTerminal?: boolean } @@ -81,8 +84,8 @@ export function resolveStructuredNativeChatSupport( if (input.workspaceKind === 'floating') { return { supported: false, blocker: 'floating-workspace' } } - if (input.requiresTuiLaunchCustomization === true) { - return { supported: false, blocker: 'tui-launch-customization' } + if (input.requiresTuiLaunchCommand === true) { + return { supported: false, blocker: 'tui-launch-command' } } const projectRuntime = input.projectRuntime if (projectRuntime?.status === 'repair-required' || projectRuntime?.runtime.kind === 'wsl') { diff --git a/src/shared/tui-agent-launch-command-override.ts b/src/shared/tui-agent-launch-command-override.ts new file mode 100644 index 00000000000..0dea2c02754 --- /dev/null +++ b/src/shared/tui-agent-launch-command-override.ts @@ -0,0 +1,21 @@ +import type { GlobalSettings } from './global-settings-types' +import type { TuiAgent } from './tui-agent' + +/** + * Whether the user replaced this agent's launch command with one only a terminal can run. + * + * Shared rather than renderer-local because both launch surfaces have to answer it: the renderer + * routes such a launch back to the TUI, and orchestration falls a worker back to a PTY so the + * custom command still applies. + * + * Arguments and environment are deliberately not read here. Structured native chat applies the + * configured environment itself, and the Arguments field is a terminal/TUI concern: structured + * chat drives Claude through the Agent SDK and Codex through app-server, whose option sets are + * independently versioned and need not match the interactive CLI's. + */ +export function hasExplicitTuiLaunchCommand( + settings: Partial> | null | undefined, + agent: TuiAgent +): boolean { + return Boolean(settings?.agentCmdOverrides?.[agent]?.trim()) +} diff --git a/src/shared/tui-agent-launch-customization.ts b/src/shared/tui-agent-launch-customization.ts deleted file mode 100644 index b31edff8a01..00000000000 --- a/src/shared/tui-agent-launch-customization.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { GlobalSettings } from './global-settings-types' -import type { TuiAgent } from './tui-agent' -import { getTuiAgentDefaultArgs, getTuiAgentDefaultEnv } from './tui-agent-launch-defaults' - -/** - * Whether the user configured a TUI launch this agent would lose outside a terminal. - * - * Shared rather than renderer-local because both launch surfaces have to answer it: the renderer - * routes such a launch back to the TUI, and orchestration falls a worker back to a PTY so the - * custom command, arguments and environment still apply. - */ -export function hasExplicitTuiLaunchCustomization( - settings: - | Partial> - | null - | undefined, - agent: TuiAgent -): boolean { - const configuredArgs = settings?.agentDefaultArgs?.[agent] - const configuredEnv = settings?.agentDefaultEnv?.[agent] - const defaultEnv = getTuiAgentDefaultEnv(agent) - const envIsCustomized = - configuredEnv !== undefined && - (Object.keys(configuredEnv).length !== Object.keys(defaultEnv).length || - Object.entries(configuredEnv).some(([key, value]) => defaultEnv[key] !== value)) - return ( - Boolean(settings?.agentCmdOverrides?.[agent]?.trim()) || - hasExplicitTuiAgentArgs(agent, configuredArgs) || - envIsCustomized - ) -} - -export function hasSemanticallyNonEmptyAgentArgs(value: string | null | undefined): boolean { - return Boolean(value?.trim()) -} - -export function hasExplicitTuiAgentArgs( - agent: TuiAgent, - value: string | null | undefined -): boolean { - const trimmed = value?.trim() ?? '' - return trimmed.length > 0 && trimmed !== getTuiAgentDefaultArgs(agent).trim() -} diff --git a/src/shared/tui-agent-launch-defaults.test.ts b/src/shared/tui-agent-launch-defaults.test.ts new file mode 100644 index 00000000000..4a132144092 --- /dev/null +++ b/src/shared/tui-agent-launch-defaults.test.ts @@ -0,0 +1,45 @@ +import { describe, expect, it } from 'vitest' +import { + resolveTuiAgentLaunchArgs, + tuiAgentArgsBypassPermissions +} from './tui-agent-launch-defaults' + +describe('tuiAgentArgsBypassPermissions', () => { + // The Agent Permissions toggle has no storage of its own: Yolo is the presence of the agent's + // bypass flag in the arguments string, wherever the user has written the rest of the field. + it.each([ + ['claude', '--dangerously-skip-permissions', true], + ['claude', '--dangerously-skip-permissions --model Opus', true], + ['claude', '--model Opus --dangerously-skip-permissions', true], + ['claude', '', false], + ['claude', '--model Opus', false], + // A token boundary, so a longer flag that merely starts the same way is not a bypass. + ['claude', '--dangerously-skip-permissions-not-really', false], + ['codex', '--dangerously-bypass-approvals-and-sandbox --model gpt-5.6-sol', true], + ['codex', '--model gpt-5.6-sol', false] + ] as const)('reads %s args %s as %s', (agent, args, expected) => { + expect(tuiAgentArgsBypassPermissions(agent, args)).toBe(expected) + }) + + it('reads no bypass out of an absent or non-string value', () => { + expect(tuiAgentArgsBypassPermissions('claude', null)).toBe(false) + expect(tuiAgentArgsBypassPermissions('claude', undefined)).toBe(false) + }) +}) + +describe('resolveTuiAgentLaunchArgs', () => { + // A terminal launch still applies the whole configured string verbatim; only the structured + // route stopped reading it. + it('hands the configured arguments to a terminal launch unchanged', () => { + expect( + resolveTuiAgentLaunchArgs('claude', { + claude: '--dangerously-skip-permissions --model Opus' + }) + ).toBe('--dangerously-skip-permissions --model Opus') + }) + + it('falls back to the agent default when nothing is configured', () => { + expect(resolveTuiAgentLaunchArgs('claude', {})).toBe('--dangerously-skip-permissions') + expect(resolveTuiAgentLaunchArgs('claude', { claude: '' })).toBe('') + }) +}) diff --git a/src/shared/tui-agent-launch-defaults.ts b/src/shared/tui-agent-launch-defaults.ts index 6e0dc16f08d..5f23b7c2cb7 100644 --- a/src/shared/tui-agent-launch-defaults.ts +++ b/src/shared/tui-agent-launch-defaults.ts @@ -23,6 +23,21 @@ export function hasUnsupportedTuiAgentArgs(agent: TuiAgent, value: unknown): boo return (UNSUPPORTED_TUI_AGENT_ARGS[agent] ?? []).some((arg) => argPattern(arg).test(value)) } +/** + * Whether the configured arguments carry this agent's permission-bypass flag. + * + * The Agent Permissions toggle has no storage of its own — it writes and reads this flag inside + * the arguments string — so presence at a token boundary, not whole-string equality, is what + * "Yolo" means. A terminal launch applies the flag wherever else the user has written in the field. + */ +export function tuiAgentArgsBypassPermissions( + agent: TuiAgent, + value: string | null | undefined +): boolean { + const bypassArg = YOLO_TUI_AGENT_ARGS[agent] + return typeof value === 'string' && bypassArg !== undefined && argPattern(bypassArg).test(value) +} + function sanitizeTuiAgentLaunchArgs(agent: TuiAgent, args: string): string { const unsupportedArgs = UNSUPPORTED_TUI_AGENT_ARGS[agent] if (!unsupportedArgs) { @@ -93,6 +108,20 @@ export function resolveTuiAgentLaunchArgs( return getTuiAgentDefaultArgs(agent) } +/** + * Whether this agent's *resolved* launch arguments ask for a permission bypass. + * + * Resolved, not configured: an untouched Arguments field falls back to the default Orca ships, + * which is the bypass flag, so bypass is the posture a user gets until they choose otherwise. + * Choosing Manual stores an empty string, which owns the key and so beats that default. + */ +export function resolvedTuiAgentArgsBypassPermissions( + agent: TuiAgent, + configuredArgs: Partial> | null | undefined +): boolean { + return tuiAgentArgsBypassPermissions(agent, resolveTuiAgentLaunchArgs(agent, configuredArgs)) +} + export function resolveTuiAgentLaunchEnv( agent: TuiAgent, configuredEnv: Partial>> | null | undefined diff --git a/src/shared/tui-agent-startup.test.ts b/src/shared/tui-agent-startup.test.ts index e5e26f46802..97ee45ae425 100644 --- a/src/shared/tui-agent-startup.test.ts +++ b/src/shared/tui-agent-startup.test.ts @@ -45,6 +45,24 @@ describe('tui agent startup plans', () => { } ) + // Structured native chat stopped reading the configured arguments; a terminal launch must + // still spell every token of them, in order, exactly as the user wrote them. + it('passes the whole configured argument string to a terminal launch', () => { + const plan = buildAgentStartupPlan({ + agent: 'claude', + prompt: '', + agentArgs: resolveTuiAgentLaunchArgs('claude', { + claude: '--dangerously-skip-permissions --model Opus' + }), + cmdOverrides: {}, + platform: 'linux', + allowEmptyPromptLaunch: true + }) + + // Every token, in order, shell-quoted as the terminal path has always quoted them. + expect(plan?.launchCommand).toBe("claude '--dangerously-skip-permissions' '--model' 'Opus'") + }) + it('uses POSIX quoting when the target shell is Linux', () => { const plan = buildAgentStartupPlan({ agent: 'claude', diff --git a/src/shared/ui-zoom-level.ts b/src/shared/ui-zoom-level.ts index 7dc0c552d1c..4f443aea8be 100644 --- a/src/shared/ui-zoom-level.ts +++ b/src/shared/ui-zoom-level.ts @@ -1,3 +1,6 @@ +/** Chromium's zoom-level base: one level step multiplies rendered size by this. */ +export const UI_ZOOM_BASE = 1.2 + export const UI_ZOOM_STEP = 0.5 export const UI_ZOOM_MIN = -3 export const UI_ZOOM_MAX = 5 @@ -13,3 +16,10 @@ export function stepUIZoomLevel(current: number, direction: UIZoomDirection): nu const next = direction === 'in' ? current + UI_ZOOM_STEP : current - UI_ZOOM_STEP return Math.max(UI_ZOOM_MIN, Math.min(UI_ZOOM_MAX, next)) } + +/** The scale Chromium applies to renderer CSS pixels at this zoom level. + * Renderer CSS px x factor = window DIP, which is why native geometry + * (traffic lights, OS cursor coords, emulated guest viewports) must convert. */ +export function uiZoomFactorFromLevel(level: number): number { + return UI_ZOOM_BASE ** level +} diff --git a/tests/e2e/markdown-tab-scroll-restore.spec.ts b/tests/e2e/markdown-tab-scroll-restore.spec.ts new file mode 100644 index 00000000000..1b84c425270 --- /dev/null +++ b/tests/e2e/markdown-tab-scroll-restore.spec.ts @@ -0,0 +1,101 @@ +import { writeFile, rm } from 'node:fs/promises' +import path from 'node:path' +import { test, expect } from './helpers/orca-app' +import { waitForActiveWorktree, waitForSessionReady } from './helpers/store' +import { + cleanupMarkdownFixture, + createMarkdownFixture, + getActiveWorktreeContext, + openMarkdownFixture, + waitForRichMarkdownEditor +} from './helpers/markdown-editor-fixture' + +test('restores the Markdown viewport when an image gains height after a tab switch', async ({ + orcaPage, + registerPostElectronShutdownCleanup +}, testInfo) => { + await waitForSessionReady(orcaPage) + await waitForActiveWorktree(orcaPage) + const context = await getActiveWorktreeContext(orcaPage) + const directory = '.orca-e2e-markdown-scroll' + let filePath: string | null = null + let otherPath: string | null = null + let imagePath: string | null = null + + registerPostElectronShutdownCleanup(async () => { + await cleanupMarkdownFixture(filePath) + await cleanupMarkdownFixture(otherPath) + if (imagePath) { + await rm(imagePath, { force: true }) + } + }) + + const sections = Array.from( + { length: 100 }, + (_, index) => `## Section ${index}\n\nParagraph ${index}. Scroll restoration testing text.` + ).join('\n\n') + filePath = await createMarkdownFixture( + context, + directory, + 'image-scroll', + testInfo.workerIndex, + `# Image scroll\n\n![Scroll restoration image](tall.svg)\n\n${sections}` + ) + imagePath = path.join(path.dirname(filePath), 'tall.svg') + await writeFile( + imagePath, + '' + ) + otherPath = await createMarkdownFixture( + context, + directory, + 'other-tab', + testInfo.workerIndex, + '# Other tab' + ) + await openMarkdownFixture(orcaPage, context, otherPath) + await waitForRichMarkdownEditor(orcaPage) + await openMarkdownFixture(orcaPage, context, filePath) + const editor = await waitForRichMarkdownEditor(orcaPage) + const image = editor.getByRole('img', { name: 'Scroll restoration image' }) + await expect + .poll(() => + image.evaluate((element) => (element instanceof HTMLImageElement ? element.naturalHeight : 0)) + ) + .toBe(1500) + const viewport = orcaPage.locator('.rich-markdown-editor-shell .overflow-auto') + await viewport.evaluate((element) => { + element.scrollTop = 4000 + }) + const heading = editor.getByRole('heading', { name: 'Section 45', exact: true }) + const originalTop = await heading.evaluate((element) => element.getBoundingClientRect().top) + + await orcaPage + .locator('[data-tab-id]') + .filter({ hasText: path.basename(otherPath) }) + .click() + // Model image dimensions arriving after restoration, independent of the host's decode speed. + const pendingImage = await orcaPage.addStyleTag({ + content: '.rich-markdown-editor img[alt="Scroll restoration image"] { height: 1px !important; }' + }) + await orcaPage + .locator('[data-tab-id]') + .filter({ hasText: path.basename(filePath) }) + .click() + await expect.poll(() => viewport.evaluate((element) => element.scrollTop)).toBe(4000) + await pendingImage.evaluate((element) => element.remove()) + await expect + .poll(() => image.evaluate((element) => element.getBoundingClientRect().height)) + .toBeGreaterThan(500) + // Let Chromium apply its scroll-anchor adjustment before checking the final viewport. + await viewport.evaluate( + () => + new Promise((resolve) => { + requestAnimationFrame(() => requestAnimationFrame(() => resolve())) + }) + ) + await expect.poll(() => viewport.evaluate((element) => element.scrollTop)).toBe(4000) + await expect + .poll(() => heading.evaluate((element) => element.getBoundingClientRect().top)) + .toBeCloseTo(originalTop, 1) +}) diff --git a/tests/e2e/native-chat-history-prepend-anchor.spec.ts b/tests/e2e/native-chat-history-prepend-anchor.spec.ts index aea95302363..a0b4e5b6b0e 100644 --- a/tests/e2e/native-chat-history-prepend-anchor.spec.ts +++ b/tests/e2e/native-chat-history-prepend-anchor.spec.ts @@ -55,6 +55,45 @@ async function toggleTerminalTabToChatView( }, args) } +async function activateNewTerminalTab(page: Page, worktreeId: string): Promise { + await page.evaluate((id) => { + const store = window.__store + if (!store) { + throw new Error('Store unavailable') + } + const state = store.getState() + const tab = state.createTab(id, undefined, undefined, { activate: true }) + state.setActiveTab(tab.id) + state.setActiveTabType('terminal') + }, worktreeId) +} + +async function activateTerminalTab(page: Page, tabId: string): Promise { + await page.evaluate((id) => { + const store = window.__store + if (!store) { + throw new Error('Store unavailable') + } + const state = store.getState() + state.setActiveTab(id) + state.setActiveTabType('terminal') + }, tabId) +} + +async function publishHiddenLaunchMessage( + page: Page, + args: { tabId: string; text: string } +): Promise { + await page.evaluate(({ tabId, text }) => { + window.__store?.getState().seedNativeChatLaunchPrompt({ + tabId, + agent: 'claude', + text, + createdAt: Date.now() + }) + }, args) +} + function claudeTranscript(rowCount: number, sessionId: string): string { const startedAt = Date.now() - rowCount * 1_000 return `${Array.from({ length: rowCount }, (_, index) => { @@ -77,7 +116,7 @@ function claudeTranscript(rowCount: number, sessionId: string): string { }).join('\n')}\n` } -test.describe('Native chat history prepend anchoring', () => { +test.describe('Native chat transcript anchoring', () => { test('keeps the visible transcript row at the same viewport offset', async ({ orcaPage }) => { await waitForSessionReady(orcaPage) await waitForActiveWorktree(orcaPage) @@ -201,4 +240,76 @@ test.describe('Native chat history prepend anchoring', () => { rmSync(scratchDir, { recursive: true, force: true }) } }) + + test('keeps a detached transcript in place across a hidden update', async ({ orcaPage }) => { + await waitForSessionReady(orcaPage) + await waitForActiveWorktree(orcaPage) + await ensureTerminalVisible(orcaPage) + await waitForActiveTerminalManager(orcaPage, 30_000) + + const descriptor = await waitForActivePaneHookDescriptor(orcaPage) + const [tabId] = descriptor.paneKey.split(':') + const sessionId = `e2e-hidden-scroll-${randomUUID()}` + const scratchDir = mkdtempSync(path.join(os.tmpdir(), 'orca-e2e-native-chat-hidden-')) + const transcriptPath = path.join(scratchDir, `${sessionId}.jsonl`) + writeFileSync(transcriptPath, claudeTranscript(TRANSCRIPT_ROWS, sessionId)) + + try { + await enableNativeChatSetting(orcaPage) + await seedClaudeProviderSession(orcaPage, { + paneKey: descriptor.paneKey, + worktreeId: descriptor.worktreeId, + sessionId, + transcriptPath + }) + await toggleTerminalTabToChatView(orcaPage, { + tabId, + worktreeId: descriptor.worktreeId + }) + + const root = orcaPage.locator('[data-native-chat-root="true"]') + const scroll = orcaPage.locator('[data-native-chat-scroll]') + const jump = orcaPage.getByRole('button', { name: 'Jump to latest' }) + await expect(root).toBeVisible({ timeout: 15_000 }) + await expect(orcaPage.getByText('E2E transcript row 0649', { exact: true })).toBeAttached({ + timeout: 30_000 + }) + await scroll.hover() + await orcaPage.mouse.wheel(0, -2_000) + await expect + .poll(async () => + scroll.evaluate( + (element) => element.scrollHeight - element.clientHeight - element.scrollTop + ) + ) + .toBeGreaterThan(1_000) + const readingAt = await scroll.evaluate((element) => element.scrollTop) + await expect(jump).toBeVisible() + + await activateNewTerminalTab(orcaPage, descriptor.worktreeId) + await expect(root).toBeHidden() + await publishHiddenLaunchMessage(orcaPage, { + tabId, + text: 'E2E update received while the transcript is hidden' + }) + await activateTerminalTab(orcaPage, tabId) + + await expect(root).toBeVisible({ timeout: 15_000 }) + await expect( + orcaPage.getByText('E2E update received while the transcript is hidden', { exact: true }) + ).toBeAttached() + await expect + .poll(async () => + Math.abs((await scroll.evaluate((element) => element.scrollTop)) - readingAt) + ) + .toBeLessThanOrEqual(2) + await orcaPage.waitForTimeout(500) + expect( + Math.abs((await scroll.evaluate((element) => element.scrollTop)) - readingAt) + ).toBeLessThanOrEqual(2) + await expect(jump).toBeVisible() + } finally { + rmSync(scratchDir, { recursive: true, force: true }) + } + }) }) diff --git a/tests/e2e/structured-native-chat-routing-authority.unit.test.ts b/tests/e2e/structured-native-chat-routing-authority.unit.test.ts index 9dda8cbe6c7..84e64860ee6 100644 --- a/tests/e2e/structured-native-chat-routing-authority.unit.test.ts +++ b/tests/e2e/structured-native-chat-routing-authority.unit.test.ts @@ -1,4 +1,5 @@ import { afterEach, describe, expect, it, vi } from 'vitest' +import type { GlobalSettings } from '../../src/shared/global-settings-types' import type * as SharedLaunchRoute from '../../src/shared/structured-native-chat-launch-route' import { decideWorkerStartMode } from '../../src/main/runtime/rpc/methods/orchestration-worker-start-mode' import { @@ -43,7 +44,7 @@ const blockers: StructuredNativeChatBlocker[] = [ 'reused-terminal', 'agent-without-structured-session', 'floating-workspace', - 'tui-launch-customization', + 'tui-launch-command', 'remote-execution-host', 'project-runtime', 'runtime-capability', @@ -54,13 +55,15 @@ describe('shared feasibility owns every caller decision', () => { it.each(placements)('orchestration cannot override the shared verdict for %j', (placement) => { for (const agent of ['claude', 'codex', 'grok', 'openclaude'] as const) { for (const customized of [false, true]) { - const input = { - params: { agent, ...placement }, - settings: { - ...settings, - ...(customized ? { agentDefaultArgs: { [agent]: '--custom' } } : {}) - } + // Arguments and environment are customized on BOTH passes, so the flag below tracks the + // launch command alone. A caller that resumed reading either one fails here. + const launchSettings: Partial & typeof settings = { + ...settings, + agentDefaultArgs: { [agent]: '--custom' }, + agentDefaultEnv: { [agent]: { ORCA_ROUTING_AUTHORITY: '1' } }, + ...(customized ? { agentCmdOverrides: { [agent]: `${agent}-wrapper` } } : {}) } + const input = { params: { agent, ...placement }, settings: launchSettings } predicate.mockReturnValue({ supported: true }) expect(decideWorkerStartMode(input).mode).toBe('structured') expect(predicate).toHaveBeenLastCalledWith( @@ -68,7 +71,7 @@ describe('shared feasibility owns every caller decision', () => { agent, executionHostId: placement.on ? `runtime:${placement.on}` : 'local', reusesTerminal: Boolean(placement.terminal), - requiresTuiLaunchCustomization: customized + requiresTuiLaunchCommand: customized }) ) for (const blocker of blockers) { @@ -96,7 +99,7 @@ describe('shared feasibility owns every caller decision', () => { executionHostId, promptDelivery, hostCapabilities: RUNTIME_CAPABILITIES, - requiresTuiLaunchCustomization: true, + requiresTuiLaunchCommand: true, workspaceKind: 'folder', initialSessionOptions: { model: 'model-1', effort: 'high' } } @@ -107,7 +110,7 @@ describe('shared feasibility owns every caller decision', () => { expect.objectContaining({ agent, executionHostId, - requiresTuiLaunchCustomization: true, + requiresTuiLaunchCommand: true, workspaceKind: 'folder' }) )