From 4948afc2ece386c59667b4979cec678074569055 Mon Sep 17 00:00:00 2001 From: Jinjing <6427696+AmethystLiang@users.noreply.github.com> Date: Tue, 15 Sep 2026 22:53:48 -0700 Subject: [PATCH 01/11] fix(linear): show 'Cannot verify' when skill scan is inconclusive (#20964) A scan that encounters an error before discovering skills, or hits an unreadable root, cannot vouch for "not installed". Previously these cases were conflated with proven absence, so the checklist would claim the skill step incomplete even when all three steps had been finished. Now the UI distinguishes between confirmed states and unknown ones, showing "Cannot verify" instead of listing the skill as an unfinished step. --- .../settings/LinearAgentSkillGuide.test.tsx | 113 ++++++++------- .../settings/LinearAgentSkillGuide.tsx | 133 +++++++++++++----- .../settings/LinearAgentSkillPane.test.tsx | 14 ++ .../settings/LinearAgentSkillPane.tsx | 7 +- .../settings/TaskSourceProviderCard.test.tsx | 19 +++ .../settings/TaskSourceProviderCard.tsx | 5 + .../settings/task-source-setup-state.test.ts | 41 ++++++ .../settings/task-source-setup-state.ts | 8 ++ .../settings/use-linear-agent-skill-setup.ts | 4 + ...se-task-source-provider-readiness.test.tsx | 12 ++ .../use-task-source-provider-readiness.ts | 5 +- .../installed-agent-skill-verdict.test.ts | 114 +++++++++++++++ .../hooks/installed-agent-skill-verdict.ts | 65 +++++++++ .../useInstalledAgentSkills.react.test.tsx | 30 ++++ .../src/hooks/useInstalledAgentSkills.test.ts | 45 +----- .../src/hooks/useInstalledAgentSkills.ts | 48 +++---- src/renderer/src/i18n/locales/en.json | 6 +- src/renderer/src/i18n/locales/zh.json | 4 +- ...settings-status-label-localization.test.ts | 3 + 19 files changed, 511 insertions(+), 165 deletions(-) create mode 100644 src/renderer/src/hooks/installed-agent-skill-verdict.test.ts create mode 100644 src/renderer/src/hooks/installed-agent-skill-verdict.ts 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/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/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', From f78483ec29891ab11f49bb25e6cd628837b1242e Mon Sep 17 00:00:00 2001 From: Jinwoo Hong <73622457+Jinwoo-H@users.noreply.github.com> Date: Wed, 16 Sep 2026 01:59:55 -0400 Subject: [PATCH 02/11] refactor(mobile): send the subscription-gated holdouts through typed RpcOperations (step 6, migration 1) (#20954) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(mobile): record the three step-6 families at the pin, and record a stream listener that dies Step 6 migrates the requests step 4 left behind because they share an effect with a `client.subscribe`. This records them first, from the pinned baseline, so the refactor that follows has a parity oracle. Three new families, one adapter module each: - `session.native-chat-page` — the older-history page. The read is a callback, but only the mount effect's `nativeChat.subscribe` arms what it pages against, so the frames are the setup: the snapshot's `beforeOffset` decides whether the request carries a cursor or asks for a growing tail. A cutover and a second snapshot pin the reconnect replay merging into paged-in history instead of collapsing the window. - `notifications.desktop-stream` — the desktop notification socket: the subscribe, the catch-up read its `ready` arms, the tray dismissals its events drive, and the server unsubscribe the disposer sends. Split in two so the base scenario's matrix sites all have partition-stable params: a variant that answers the second `ready` differently leaves the unsubscribe carrying the first subscription id, which the base's scripted params could not assert. - `session.terminal-gesture-input` — the debounced gesture flush and the menu's clear-buffer. Neither rides a subscription; a mount holding no terminal ref reaches both. The engine change is what makes the first two recordable at all. `ScriptedRpcTransport.frame` now returns what the product listener threw instead of throwing it on, and the runner records it as a `stream-listener-crash` effect. Only the two `runtime.clientEvents` listeners check that a frame payload is an object before reading its `type`; every other subscribing family took the matrix's `result-absent` and `result-null` partitions as an uncaught TypeError, which failed the suite rather than recording what a malformed frame does to a subscription. That is the same rule the crash boundary already holds for a screen and the unhandled-rejection window for a detached effect. The scenario's own faults stay loud: a missing subscribe payload, a params mismatch and a closed stream are all raised outside the caught region. `recorderSha256` therefore moves, so all 679 pre-existing goldens are re-recorded from the pin with this branch's recorder laid over it. Every one of them moves exactly one line and that line is `recorderSha256`: no `adapterSha256`, no `scenarioSha256` and no observation moved. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): send the subscription-gated holdouts through typed RpcOperations (step 6) Five references over four files leave the raw request port. Each was held out of step 4 because a request-only recorder could not mount it; the recordings landed in the previous commit and no golden moves here. - `use-live-worktree-name.ts` — `worktree.show` inside the focus effect that opens `runtime.clientEvents`. It reuses `sessionWorktreeRecordRead`, which is the diff-comment loader's reader renamed: both consumers read the `worktree` member whole and narrow their own field off it, so a second family would have been a second name for the same wire. The resolution still comes off the raw reply, because `selector_not_found` is what proves the worktree is gone and no acceptance policy carries a refusal code; the skip that follows is the same verdict main's `!response.ok` reached, since a refusal is the only reply this policy declines. - `use-mobile-native-chat-session.ts` — `nativeChat.readSession` in the paging callback. The payload stays whole because the reply is a union: an older runtime answers `{ error }` in place of a window, and the caller discriminates before reading a message list. - `mobile-notifications.ts` — `notifications.unsubscribe` in the `ready` branch of the subscription callback, in its own module rather than beside the push-route sends: one is the route this device holds with a gateway, the other the socket the paired connection holds. - `use-mobile-session-terminal-input.ts` — the gesture flush reuses `terminalInputSend`, which already carried the four other terminal-input call sites and the same accepted-verdict, and the menu's clear gets `terminalBufferClear` beside it. The clear is a skip because main never read the envelope: it toasted success on any fulfilled reply, so only a transport rejection reached the failure toast. That is preserved, not repaired. `mobile-session-route-parity.test.ts` refreshes three pins with their reason: the callback bodies and the twelve nested-function bodies moved where those send expressions were rewritten, and the runtime-string count drops by two because `terminal.send` and `terminal.clearBuffer` are now fixed at their operation's definition instead of spelled at the call site. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): hold the subscription coverage as a checked inventory instead of a README paragraph Every product `client.subscribe` is now an entry in `mobile/src/transport/rpc-subscription-inventory.ts`, classified as recorded (naming its family), an unwritten scenario, or walled with the wall named. `rpc-subscription-boundary.test.ts` fails on a new site with no entry, an entry whose file no longer subscribes, an entry naming a method the file does not open, and a `recorded` entry whose family the scenario manifest does not have. Both the unlisted-site and unresolved-family gates were checked by removing an entry and by misspelling a family; each fails on its own assertion. The paragraph this replaces said nine sites when there were ten. It counted over `mobile/src`, and the host screen's `accounts.subscribe` lives under `app/` — so the scan here covers both roots, the way the raw-port ratchet next door does. Ten sites today: four recorded, two unwritten scenarios, four walled (two on the webview ref, one on the multi-host client context, one on two unsubstituted view members). Unlike the raw-port inventory this list does not count down to zero. A typed operation fixes one method, one acceptance and one reader for one reply; a stream has many, and replacing a subscribe is not what this is asking for. The question it holds is the other one — which stream a golden actually has, and for the rest, what exactly stops it. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): pin the notification stream close, which writes nothing to the wire Deleting `unsubscribeStream()` from the notification cleanup — the local close, not the `notifications.unsubscribe` RPC beside it — survived all 810 tests. Neither unsubscribe builder in the stream registry knows `notifications.subscribe`, so closing that stream sends no frame; the mutant leaks a live subscription record instead, and the leak only surfaces when the logical client replays it onto the next session. `notifications-desktop-stream-closed` stops the stream and then cuts over, where the leak becomes a second `notifications.subscribe` payload. Recorded at the pin. No existing golden moves: the new scenario is appended, so it is not the family's matrix base, and every notification matrix site already had a fulfilled reply to replay. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * fix(mobile): name the accounts screen's real wall, which is ScrollView and Alert The entry blamed `expo-router.useFocusEffect`, which is substituted, and the inventory's own `use-live-worktree-name` is recorded while importing it. Probed by mounting the screen through the trap: the first refusal is `Unsubstituted native member: react-native.ScrollView`, and `Alert` refuses too. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): drop the terminal-send response reader that lost its last caller `isTerminalSendRpcAccepted` read the verdict off a whole envelope, which is what the raw call site did. Both callers now send through an operation and read the admitted payload, so the response form had only its own test left. The three cases move onto `isTerminalSendResultAccepted`, with the refusal envelope's missing result standing in for the failed response. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): attribute a frame crash to the listener that threw, not to the registry The try wrapped `stream.deliver`, so anything the registry raised on its way to the listener was recorded as a `stream-listener-crash` effect and blamed on the product. A reply like `{ok:false}` with no error object throws reaching for `error.message` before any listener runs, and that is a scenario that stopped matching, not an observation. Only the product's own `onData` is wrapped now. The throw is stashed and rethrown unchanged, so the registry still sees it the way a device's message handler does and what it skips after a dead listener stays recorded rather than invented; `frame` reports it only when the error it caught is the one the listener raised. `FrameListenerCrash` is local to the file again. Engine change, so every golden re-records: 694 files, every changed line the `recorderSha256` header, no body movement. Against main the set is 679 modified header-only and the same 15 added. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * fix(mobile): read the frame listener stash through a method, not a narrowed field `this.listenerCrash = null` before the try narrows the property to `null` for the rest of `frame`, so the catch compared against `never` and mobile's own `tsc --noEmit` failed. A private taker returns the declared type. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * fix(mobile): abort a registry throw that stashed nothing, and fold the last native-chat read module in The frame catch compared `crashed?.error !== error`, which is false when nothing was stashed and the registry threw `undefined`, so that abort was swallowed and `frame` reported a clean delivery. It now asks whether a listener crashed at all. Also: `nativeChatSessionPageRead` moves beside the three other `nativeChat.*` reads and its one-export module goes; the session read header names the whole `worktree.show` record rather than review notes; the guarded-listener count is three, not two; the README names the ten subscribing sites blur is unrecorded across; and the gesture flush reads the send verdict as `=== true` like the other four sites. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * chore(mobile): drop an oxlint disable the rule never needed `no-throw-literal` is not enabled here, so the directive read as unused and failed the changed-code quality gate. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb --- .../aivault-history-scan-fulfilled.json | 2 +- .../aivault-history-scan-unsupported.json | 2 +- .../aivault-history-scan-worktrees-late.json | 2 +- .../aivault-history-screen-listed.json | 2 +- .../aivault-history-screen-worktrees.json | 2 +- .../aivault-resume-launch-create-refused.json | 2 +- .../aivault-resume-launch-invalid-tab.json | 2 +- .../goldens/aivault-resume-launch-locked.json | 2 +- .../goldens/aivault-resume-launch-sent.json | 2 +- .../aivault-resume-prepare-refused.json | 2 +- .../goldens/aivault-resume-prepare-repin.json | 2 +- .../aivault-resume-prepare-skipped.json | 2 +- .../aivault-resume-prepare-unavailable.json | 2 +- mobile/rpc-foundation/goldens/b1.json | 2 +- mobile/rpc-foundation/goldens/b2.json | 2 +- mobile/rpc-foundation/goldens/b3.json | 2 +- .../goldens/browser-dialog-accepted.json | 2 +- .../goldens/browser-dialog-dismissed.json | 2 +- .../goldens/browser-keyboard-input.json | 2 +- .../browser-pointer-click-accepted.json | 2 +- .../browser-pointer-click-fallback.json | 2 +- .../goldens/browser-wheel-scrolled.json | 2 +- .../clipboard-image-attachment-anonymous.json | 2 +- ...-image-attachment-blocked-before-send.json | 2 +- .../clipboard-image-attachment-cancelled.json | 2 +- .../clipboard-image-attachment-pasted.json | 2 +- ...board-image-attachment-upload-refused.json | 2 +- ...-image-upload-aborts-on-chunk-failure.json | 2 +- .../clipboard-image-upload-chunked.json | 2 +- ...rd-image-upload-single-frame-fallback.json | 2 +- .../clipboard-image-upload-start-refused.json | 2 +- .../goldens/codex-reset-credit-consumed.json | 2 +- .../goldens/codex-reset-credit-resumed.json | 2 +- .../goldens/components-codex-capability.json | 2 +- .../goldens/components-setup-ask.json | 2 +- .../goldens/components-target-local.json | 2 +- .../goldens/components-target-ssh.json | 2 +- .../goldens/diff-review-branch-compare.json | 2 +- .../goldens/diff-review-branch-file-diff.json | 2 +- ...f-review-notes-refused-before-compare.json | 2 +- .../diff-review-refused-file-diff.json | 2 +- .../goldens/diff-review-snapshot.json | 2 +- .../diff-review-status-unavailable.json | 2 +- .../diff-review-worktree-file-diff.json | 2 +- .../goldens/file-tap-open-refused.json | 2 +- .../goldens/file-tap-opens-worktree-file.json | 2 +- .../file-tap-previews-absolute-artifact.json | 2 +- .../goldens/file-tap-resolve-miss.json | 2 +- .../goldens/file-tap-resolve-refused.json | 2 +- .../files-explorer-legacy-fallback.json | 2 +- .../goldens/files-explorer-readdir.json | 2 +- .../goldens/files-ownership-local.json | 2 +- .../goldens/files-ownership-ssh.json | 2 +- .../files-preview-artifact-direct.json | 2 +- .../goldens/files-preview-artifact-image.json | 2 +- .../goldens/files-preview-grant-refresh.json | 2 +- .../goldens/files-preview-worktree-image.json | 2 +- .../goldens/files-preview-worktree.json | 2 +- .../goldens/files-save-blind.json | 2 +- .../goldens/files-save-verified.json | 2 +- .../goldens/files-tab-doc-shapes.json | 2 +- .../goldens/home-host-accounts.json | 2 +- .../goldens/home-host-stats.json | 2 +- .../goldens/host-view-settings-sync.json | 2 +- ...host-worktree-actions-pin-open-delete.json | 2 +- .../goldens/host-worktree-delete-refused.json | 2 +- .../goldens/host-worktree-refresh-stream.json | 2 +- .../interruptions-inventory-lifecycle.json | 2 +- ...ions-settings-bot-overrides-fulfilled.json | 2 +- .../goldens/inventory-lifecycle.json | 2 +- .../goldens/inventory-repeat-query.json | 2 +- .../rpc-foundation/goldens/lifecycle-b3.json | 2 +- .../lifecycle-inventory-lifecycle.json | 2 +- ...ycle-settings-bot-overrides-fulfilled.json | 2 +- ...cle-settings-task-hydration-fulfilled.json | 2 +- ...-settings-workspace-context-fulfilled.json | 2 +- .../goldens/linear-select-workspace.json | 2 +- .../goldens/live-worktree-name-stream.json | 2 +- ...d-launch-agentsession.createsupport-1.json | 2 +- ...ivault.history-aivault.listsessions-1.json | 2 +- ...ivault.history-screen-platform-status.json | 2 +- ...x-aivault.history-screen-status.get-2.json | 2 +- ...-aivault.history-screen-worktree.ps-1.json | 2 +- .../matrix-aivault.history-status.get-1.json | 2 +- ...-launch-session.tabs.createterminal-1.json | 2 +- ...aivault.resume-launch-terminal.send-1.json | 2 +- ...ration-aivault.preparesessionresume-1.json | 2 +- ...browser.dialog-browser.dialogaccept-1.json | 2 +- ...keyboard-browser.keyboardinserttext-1.json | 2 +- ...x-browser.keyboard-browser.keypress-1.json | 2 +- ...er.pointer-click-browser.mouseclick-1.json | 2 +- ...ser.pointer-click-browser.mousedown-1.json | 2 +- ...ser.pointer-click-browser.mousemove-1.json | 2 +- ...owser.pointer-click-browser.mouseup-1.json | 2 +- ...rix-browser.wheel-browser.mousemove-1.json | 2 +- ...ix-browser.wheel-browser.mousewheel-1.json | 2 +- ...tachment-clipboard.startimageupload-1.json | 2 +- ...pload-clipboard.saveimageastempfile-1.json | 2 +- ...e-upload-clipboard.startimageupload-1.json | 2 +- ...s.codex-reset-capability-status.get-1.json | 2 +- ...it-accounts.consumecodexresetcredit-1.json | 2 +- ...target-local-preflight.detectagents-1.json | 2 +- ...target-preflight.detectremoteagents-1.json | 2 +- ...onents.execution-target-ssh.connect-1.json | 2 +- ...nents.execution-target-ssh.getstate-1.json | 2 +- ...ew-workspace-repositories-repo.list-1.json | 2 +- ...-components.setup-script-repo.hooks-1.json | 2 +- ...ix-files.explorer-screen-files.list-1.json | 2 +- ...files.explorer-screen-files.readdir-1.json | 2 +- ...les.mutation-ownership-ssh.getstate-1.json | 2 +- ...files.mutation-ownership-status.get-1.json | 2 +- ...es.mutation-ownership-worktree.show-1.json | 2 +- ...iew-load-files.readterminalartifact-1.json | 2 +- ...iew-load-files.readterminalartifact-2.json | 2 +- ...view-load-files.resolveterminalpath-1.json | 2 +- ...iew-save-files.readterminalartifact-1.json | 2 +- ...ew-save-files.writeterminalartifact-1.json | 2 +- .../matrix-files.tab-doc-files.read-1.json | 2 +- ...rix-files.tab-doc-files.readpreview-1.json | 2 +- .../matrix-files.tab-doc-git.diff-1.json | 2 +- ...-files.terminal-path-tap-files.open-1.json | 2 +- ...-path-tap-files.resolveterminalpath-1.json | 2 +- ....base-ref-chain-repo.baserefdefault-1.json | 2 +- ...matrix-git.base-ref-chain-repo.list-1.json | 2 +- ...ix-git.base-ref-chain-worktree.show-1.json | 2 +- ...essage-ai-git.generatecommitmessage-1.json | 2 +- ...matrix-git.history-read-git.history-1.json | 2 +- ...ix-git.remote-prerequisite-git.push-1.json | 2 +- ...x-git.review-preparation-git.status-1.json | 2 +- ...ent-mutation-github.addissuecomment-1.json | 2 +- ...tion-github.addprreviewcommentreply-1.json | 2 +- ...ub.project.deleteissuecommentbyslug-1.json | 2 +- ...ub.project.updateissuecommentbyslug-1.json | 2 +- ...mutation-github.resolvereviewthread-1.json | 2 +- ...x-github.pr-mutation-github.mergepr-1.json | 2 +- ...r-mutation-github.removeprreviewers-1.json | 2 +- ...-mutation-github.requestprreviewers-1.json | 2 +- ...ub.pr-mutation-github.rerunprchecks-1.json | 2 +- ...b.pr-mutation-github.setprautomerge-1.json | 2 +- ...ub.pr-mutation-github.updateprstate-1.json | 2 +- ....pr-read-github.listassignableusers-1.json | 2 +- ...ithub.pr-read-github.prcheckdetails-1.json | 2 +- ...trix-github.pr-read-github.prchecks-1.json | 2 +- ...x-github.pr-read-github.prforbranch-1.json | 2 +- ...trix-github.pr-read-github.reposlug-1.json | 2 +- ...thub.pr-read-github.workitemdetails-1.json | 2 +- ...thub.pr-read-hostedreview.forbranch-1.json | 2 +- ...title-mutation-github.updateprtitle-1.json | 2 +- ...ix-home.host-accounts-accounts.list-1.json | 2 +- ...atrix-home.host-stats-stats.summary-1.json | 2 +- ...sh-runtime.clientevents.subscribe-1-1.json | 2 +- ...sh-runtime.clientevents.subscribe-1-2.json | 2 +- ...sh-runtime.clientevents.subscribe-1-3.json | 2 +- ...sh-runtime.clientevents.subscribe-2-1.json | 2 +- .../matrix-host.view-settings-ui.get-1.json | 2 +- .../matrix-host.view-settings-ui.set-1.json | 2 +- ....worktree-actions-worktree.activate-1.json | 2 +- ...x-host.worktree-actions-worktree.rm-1.json | 2 +- ...-host.worktree-actions-worktree.set-1.json | 2 +- ...-hostedreview.create-chain-git.push-1.json | 2 +- ...ew.create-chain-hostedreview.create-1.json | 2 +- ...tedreview.create-chain-worktree.set-1.json | 2 +- ...dreview.create-intent-git.bulkstage-1.json | 2 +- ...stedreview.create-intent-git.commit-1.json | 2 +- ...te-intent-git.generatecommitmessage-1.json | 2 +- ...hostedreview.create-intent-git.push-1.json | 2 +- ...stedreview.create-intent-git.status-1.json | 2 +- ...stedreview.create-intent-git.status-2.json | 2 +- ...stedreview.create-intent-git.status-3.json | 2 +- ...stedreview.create-intent-git.status-4.json | 2 +- ...w.create-intent-hostedreview.create-1.json | 2 +- ...hostedreview.getcreationeligibility-1.json | 2 +- ...hostedreview.getcreationeligibility-2.json | 2 +- ...edreview.create-intent-worktree.set-1.json | 2 +- ...hostedreview.getcreationeligibility-1.json | 2 +- ...-legacy-inventory-files.searchpaths-1.json | 2 +- ...-legacy-inventory-files.searchpaths-2.json | 2 +- ...trix-legacy-inventory-fresh-inventory.json | 2 +- ...matrix-legacy-inventory-old-inventory.json | 2 +- ...near-detail-barrier-linear.getissue-1.json | 2 +- ...detail-barrier-linear.issuecomments-1.json | 2 +- ...space-picker-linear.selectworkspace-1.json | 2 +- ...me-runtime.clientevents.subscribe-1-1.json | 2 +- ...me-runtime.clientevents.subscribe-1-2.json | 2 +- ...me-runtime.clientevents.subscribe-2-1.json | 2 +- ...ix-live-worktree-name-worktree.show-1.json | 2 +- ...ix-live-worktree-name-worktree.show-2.json | 2 +- ...ix-live-worktree-name-worktree.show-3.json | 2 +- ...ativechat.image-paste-terminal.send-1.json | 2 +- ...ativechat.image-paste-terminal.send-2.json | 2 +- ...e-upload-clipboard.startimageupload-1.json | 2 +- ...ings.mutatenativechatsessionoptions-1.json | 2 +- ...chestration.workerterminaluserinput-1.json | 2 +- ...vechat.terminal-write-terminal.send-1.json | 2 +- ...stream-notifications.getmissedsince-1.json | 1251 +++++++++++++++ ...op-stream-notifications.subscribe-1-1.json | 836 ++++++++++ ...op-stream-notifications.subscribe-1-2.json | 629 ++++++++ ...op-stream-notifications.unsubscribe-1.json | 761 +++++++++ ...-test-screen-notifications.testpush-1.json | 2 +- ...missal-notifications.getmissedsince-1.json | 2 +- ...stration-notifications.registerpush-1.json | 2 +- ...ration-notifications.unregisterpush-1.json | 2 +- ...rix-pairing.pre-profile-direct-status.json | 2 +- ...ng.pre-profile-pairing.getendpoints-1.json | 2 +- ....pre-profile-pairing.provisionrelay-1.json | 2 +- ...trix-pairing.pre-profile-relay-status.json | 2 +- ...se-github.project.updateissuebyslug-1.json | 2 +- ...ntial-rotation-pairing.getendpoints-1.json | 2 +- ...ntial-rotation-pairing.getendpoints-2.json | 2 +- ...ial-rotation-pairing.provisionrelay-1.json | 2 +- ...direct-upgrade-pairing.getendpoints-1.json | 2 +- ...direct-upgrade-pairing.getendpoints-2.json | 2 +- ...rect-upgrade-pairing.provisionrelay-1.json | 2 +- ...iring-recovery-pairing.getendpoints-1.json | 2 +- ...ion.content-create-files.createfile-1.json | 2 +- ...x-session.content-create-files.open-1.json | 2 +- ...x-session.content-create-status.get-1.json | 2 +- ...ession.content-create-worktree.show-1.json | 2 +- ...ix-session.diff-notes-worktree.show-1.json | 2 +- ...on.diff-review-actions-worktree.set-1.json | 2 +- ...rix-session.diff-review-base-ref-show.json | 2 +- ...ssion.diff-review-git.branchcompare-1.json | 2 +- ...trix-session.diff-review-git.status-1.json | 2 +- ...atrix-session.diff-review-repo.list-1.json | 2 +- ...atrix-session.diff-review-review-show.json | 2 +- ...sion.markdown-save-markdown.savetab-1.json | 2 +- ...ve-chat-page-nativechat.readsession-1.json | 1413 +++++++++++++++++ ...ve-chat-page-nativechat.subscribe-1-1.json | 1078 +++++++++++++ ...ve-chat-page-nativechat.subscribe-2-1.json | 631 ++++++++ ...n.native-chat-readability-repo.list-1.json | 2 +- ...chestration.workerterminaluserinput-1.json | 2 +- ...sion.native-chat-stop-terminal.send-1.json | 2 +- ...sion.native-chat-stop-terminal.send-2.json | 2 +- ...pr-branch-context-git.branchcompare-1.json | 2 +- ...ession.pr-branch-context-git.status-1.json | 2 +- ...session.pr-branch-context-repo.list-1.json | 2 +- ...ion.pr-branch-context-worktree.show-1.json | 2 +- ...-triage-session.tabs.createterminal-1.json | 2 +- ...rix-session.pr-triage-terminal.send-1.json | 2 +- ...ab-activation-session.tabs.activate-1.json | 2 +- ...ssion.tab-activation-terminal.focus-1.json | 2 +- ...ix-session.tab-close-terminal.close-1.json | 2 +- ...sion.tab-documents-markdown.readtab-1.json | 2 +- ...on.tab-reveal-session.tabs.activate-1.json | 2 +- ...ession.tab-reveal-session.tabs.list-1.json | 2 +- ...abs-stream-health-session.tabs.list-1.json | 2 +- ...chestration.workerterminaluserinput-1.json | 1134 +++++++++++++ ...-gesture-input-terminal.clearbuffer-1.json | 897 +++++++++++ ...erminal-gesture-input-terminal.send-1.json | 1352 ++++++++++++++++ ...chestration.workerterminaluserinput-1.json | 2 +- ...n.terminal-input-send-terminal.send-1.json | 2 +- ...on.terminal-inventory-terminal.list-1.json | 2 +- ...chestration.workerterminaluserinput-1.json | 2 +- ...session.terminal-paste-settings.get-1.json | 2 +- ...ession.terminal-paste-terminal.send-1.json | 2 +- ...ssion.worktree-connection-repo.list-1.json | 2 +- ...on.worktree-connection-settings.get-1.json | 2 +- ...t-read-preflight.detectremoteagents-1.json | 2 +- ...atrix-settings-agent-read-repo.list-1.json | 2 +- ...ix-settings-agent-read-settings.get-1.json | 2 +- ...ettings-best-effort-settings.update-1.json | 2 +- ...settings.bot-overrides-settings.get-1.json | 2 +- ...ttings.home-providers-linear.status-1.json | 2 +- ...ings.home-providers-preflight.check-1.json | 2 +- ...ettings.home-providers-settings.get-1.json | 2 +- ...s-settings.getterminalquickcommands-1.json | 2 +- ...ettings.updateterminalquickcommands-1.json | 2 +- ...ettings.repo-metadata-host.platform-1.json | 2 +- ...ix-settings.repo-metadata-repo.list-1.json | 2 +- ...settings.repo-metadata-settings.get-1.json | 2 +- ...po-metadata-ssh.listtargetsummaries-1.json | 2 +- ...esume-metadata-folderworkspace.list-1.json | 2 +- ...s.resume-metadata-projectgroup.list-1.json | 2 +- ...-settings.resume-metadata-repo.list-1.json | 2 +- ...ttings.resume-metadata-settings.get-1.json | 2 +- ...ettings.resume-metadata-worktree.ps-1.json | 2 +- ...ttings.task-hydration-linear.status-1.json | 2 +- ...ings.task-hydration-preflight.check-1.json | 2 +- ...ettings.task-hydration-settings.get-1.json | 2 +- ...-settings.task-hydration-status.get-1.json | 2 +- ...trix-settings.task-hydration-ui.get-1.json | 2 +- ....task-workspace-create-settings.get-1.json | 2 +- ...sk-workspace-create-worktree.create-1.json | 2 +- ...ettings.task-workspace-settings.get-1.json | 2 +- ...ngs.workspace-context-linear.status-1.json | 2 +- ...s.workspace-context-preflight.check-1.json | 2 +- ...ings.workspace-context-settings.get-1.json | 2 +- ...x-settings.workspace-context-ui.get-1.json | 2 +- ...tings.workspace-submit-settings.get-1.json | 2 +- ...tation-chunk-speech.dictation.chunk-1.json | 2 +- ...ion-session-speech.dictation.finish-1.json | 2 +- ...tion-session-speech.dictation.start-1.json | 2 +- ...ation-start-speech.dictation.cancel-1.json | 2 +- ...tation-start-speech.dictation.start-1.json | 2 +- ....setup-sheet-speech.dictation.setup-1.json | 2 +- ...ch.setup-sheet-speech.models.delete-1.json | 2 +- ....setup-sheet-speech.models.download-1.json | 2 +- ...eech.setup-sheet-speech.models.list-1.json | 2 +- ...cks-files-github.addprreviewcomment-1.json | 2 +- ...-checks-files-github.prfilecontents-1.json | 2 +- ...m-checks-files-github.rerunprchecks-1.json | 2 +- ...ks-files-github.resolvereviewthread-1.json | 2 +- ...checks-files-github.setprfileviewed-1.json | 2 +- ...mment-github-github.addissuecomment-1.json | 2 +- ...mment-gitlab-gitlab.addissuecomment-1.json | 2 +- ...mment-gitlab-mr-gitlab.addmrcomment-1.json | 2 +- ...etail-github-github.workitemdetails-1.json | 2 +- ...etail-gitlab-gitlab.workitemdetails-1.json | 2 +- ....item-detail-linear-linear.getissue-1.json | 2 +- ...-detail-linear-linear.issuecomments-1.json | 2 +- ...metadata-github.listassignableusers-1.json | 2 +- ...m-detail-metadata-github.listlabels-1.json | 2 +- ...ks.item-merge-gitlab-gitlab.mergemr-1.json | 2 +- ...tem-metadata-github-github.updatepr-1.json | 2 +- ...-metadata-gitlab-gitlab.updateissue-1.json | 2 +- ...-metadata-gitlab-mr-gitlab.updatemr-1.json | 2 +- ...-reply-merge-github.addissuecomment-1.json | 2 +- ...erge-github.addprreviewcommentreply-1.json | 2 +- ...sks.item-reply-merge-github.mergepr-1.json | 2 +- ...item-reply-merge-linear.updateissue-1.json | 2 +- ....item-review-github-github.prchecks-1.json | 2 +- ...ew-github-github.requestprreviewers-1.json | 2 +- ...em-status-gitlab-github.updateissue-1.json | 2 +- ...em-status-gitlab-gitlab.updateissue-1.json | 2 +- ...atus-gitlab-mr-gitlab.updatemrstate-1.json | 2 +- ...tasks.linear-connect-linear.connect-1.json | 2 +- ....linear-item-linear.addissuecomment-1.json | 2 +- ...asks.linear-item-linear.createissue-1.json | 2 +- ...x-tasks.linear-item-linear.getissue-1.json | 2 +- ...inear-team-context-linear.listteams-1.json | 2 +- ...near-team-context-linear.teamstates-1.json | 2 +- ...-tasks.paste-lookup-github.reposlug-1.json | 2 +- ...-tasks.paste-lookup-github.workitem-1.json | 2 +- ...e-lookup-github.workitembyownerrepo-1.json | 2 +- ....paste-lookup-gitlab.workitembypath-1.json | 2 +- ...-load-github.project.listaccessible-1.json | 2 +- ...board-load-github.project.listviews-1.json | 2 +- ...board-load-github.project.listviews-2.json | 2 +- ...oard-load-github.project.resolveref-1.json | 2 +- ...board-load-github.project.viewtable-1.json | 2 +- ....project-repo-slugs-github.reposlug-1.json | 2 +- ...ithub.project.addissuecommentbyslug-1.json | 2 +- ...ue-github.project.updateissuebyslug-1.json | 2 +- ...ub.project.updateissuecommentbyslug-1.json | 2 +- ...hub.project.updatepullrequestbyslug-1.json | 2 +- ...ithub.project.workitemdetailsbyslug-1.json | 2 +- ...ields-github.project.clearitemfield-1.json | 2 +- ...ithub.project.updateissuetypebyslug-1.json | 2 +- ...elds-github.project.updateitemfield-1.json | 2 +- ...les-merge-github.addprreviewcomment-1.json | 2 +- ...ject-row-files-merge-github.mergepr-1.json | 2 +- ...w-files-merge-github.prfilecontents-1.json | 2 +- ...-row-files-merge-github.updateissue-1.json | 2 +- ...ow-files-merge-github.updateprstate-1.json | 2 +- ...b.project.listassignableusersbyslug-1.json | 2 +- ...github.project.listissuetypesbyslug-1.json | 2 +- ...oad-github.project.listlabelsbyslug-1.json | 2 +- ...t-row-review-checks-github.prchecks-1.json | 2 +- ...ew-checks-github.requestprreviewers-1.json | 2 +- ...-review-checks-github.rerunprchecks-1.json | 2 +- ...eview-checks-github.setprfileviewed-1.json | 2 +- ...-row-threads-github.addissuecomment-1.json | 2 +- ...eads-github.addprreviewcommentreply-1.json | 2 +- ...ub.project.deleteissuecommentbyslug-1.json | 2 +- ...-threads-github.resolvereviewthread-1.json | 2 +- ...provider-load-github.countworkitems-1.json | 2 +- ....provider-load-github.listworkitems-1.json | 2 +- ...asks.provider-load-linear.listteams-1.json | 2 +- ...x-tasks.provider-load-linear.status-1.json | 2 +- ...tasks.provider-load-settings.update-1.json | 2 +- ...rix-tasks.route-repo-list-repo.list-1.json | 2 +- ...-source-search-github.listworkitems-1.json | 2 +- ...-source-search-gitlab.listworkitems-1.json | 2 +- ...art-source-search-linear.listissues-1.json | 2 +- ...t-source-search-linear.searchissues-1.json | 2 +- ...smart-source-search-repo.searchrefs-1.json | 2 +- ...sk-create-github-github.createissue-1.json | 2 +- ...asks.task-create-github-repo.update-1.json | 2 +- ...sk-create-gitlab-gitlab.createissue-1.json | 2 +- ...sk-create-linear-linear.createissue-1.json | 2 +- ...t-gitlab-items-gitlab.listworkitems-1.json | 2 +- ...task-list-gitlab-todos-gitlab.todos-1.json | 2 +- ....task-list-linear-linear.listissues-1.json | 2 +- ...ask-list-linear-linear.searchissues-1.json | 2 +- ...ks.workspace-source-repo.searchrefs-1.json | 2 +- ...workspace-source-repo.sparsepresets-1.json | 2 +- ...kspace-sparse-repo.savesparsepreset-1.json | 2 +- ...tasks.workspace-sparse-ssh.getstate-1.json | 2 +- ...ce-ssh-local-preflight.detectagents-1.json | 2 +- ...ce-ssh-preflight.detectremoteagents-1.json | 2 +- ...trix-tasks.workspace-ssh-repo.hooks-1.json | 2 +- ...rix-tasks.workspace-ssh-ssh.connect-1.json | 2 +- ...-terminal.query-reply-terminal.send-1.json | 2 +- ...chestration.workerterminaluserinput-1.json | 2 +- ...ix-terminal.raw-input-terminal.send-1.json | 2 +- ...chestration.workerterminaluserinput-1.json | 2 +- ...chestration.workerterminaluserinput-2.json | 2 +- ...wport-refit-terminal.updateviewport-1.json | 2 +- ...ansport.capability-probe-status.get-1.json | 2 +- ...nsport.host-status-gates-status.get-1.json | 2 +- ...-transport.pairing-race-direct-status.json | 2 +- ...x-transport.pairing-race-relay-status.json | 2 +- ...rktree.catalog-snapshot-worktree.ps-1.json | 2 +- ...rktree.create-retry-worktree.create-1.json | 2 +- ...x-worktree.home-catalog-worktree.ps-1.json | 2 +- ....hosted-base-worktree.resolvemrbase-1.json | 2 +- ....hosted-base-worktree.resolveprbase-1.json | 2 +- ...red-names-worktree.listretirednames-1.json | 2 +- ...x-worktree.review-link-worktree.set-1.json | 2 +- ...ree.runtime-capabilities-status.get-1.json | 2 +- ...ix-worktree.setup-hook-trust-ui.set-1.json | 2 +- .../native-chat-image-paste-single.json | 2 +- ...e-chat-image-paste-stops-on-rejection.json | 2 +- ...ative-chat-image-paste-trailing-image.json | 2 +- .../native-chat-image-paste-two-images.json | 2 +- .../native-chat-image-upload-cancelled.json | 2 +- ...native-chat-image-upload-second-fails.json | 2 +- .../native-chat-image-upload-single.json | 2 +- ...ative-chat-image-upload-start-refused.json | 2 +- .../goldens/native-chat-image-upload-two.json | 2 +- .../goldens/native-chat-page-earlier.json | 312 ++++ .../native-chat-readability-local-repo.json | 2 +- .../native-chat-readability-refused.json | 2 +- .../native-chat-readability-remote-repo.json | 2 +- ...native-chat-session-option-pick-empty.json | 2 +- ...tive-chat-session-option-pick-refused.json | 2 +- ...tive-chat-session-option-pick-written.json | 2 +- .../goldens/native-chat-stop-accepted.json | 2 +- .../native-chat-stop-both-rejected.json | 2 +- .../native-chat-stop-delivery-unknown.json | 2 +- .../goldens/native-chat-write-accepted.json | 2 +- .../goldens/native-chat-write-clear-line.json | 2 +- .../native-chat-write-delivery-unknown.json | 2 +- .../goldens/native-chat-write-rejected.json | 2 +- .../native-chat-write-typed-command.json | 2 +- .../new-workspace-repositories-fulfilled.json | 2 +- .../notifications-desktop-stream-closed.json | 168 ++ ...notifications-desktop-stream-replayed.json | 263 +++ .../goldens/notifications-desktop-stream.json | 301 ++++ .../notifications-display-test-accepted.json | 2 +- .../notifications-push-gateway-rejected.json | 2 +- .../notifications-push-registered.json | 2 +- ...re-profile-direct-wins-and-provisions.json | 2 +- ...ovision-unsupported-saves-direct-host.json | 2 +- .../pairing-pre-profile-times-out.json | 2 +- .../goldens/pr-branch-identity.json | 2 +- .../goldens/pr-branch-repo-context.json | 2 +- .../goldens/pr-comment-mutation.json | 2 +- .../pr-comment-resolve-unconfirmed.json | 2 +- .../goldens/pr-mutation-in-band-failure.json | 2 +- .../goldens/pr-mutation-status.json | 2 +- .../goldens/pr-read-fork-routing.json | 2 +- .../goldens/pr-read-surface.json | 2 +- .../goldens/pr-read-upstream-error.json | 2 +- .../goldens/pr-title-mutation.json | 2 +- .../goldens/pr-title-unconfirmed.json | 2 +- .../goldens/pr-triage-invalid-terminal.json | 2 +- .../goldens/pr-triage-launch.json | 2 +- .../goldens/pr-triage-send-locked.json | 2 +- .../goldens/probe-new-tab-both-refused.json | 2 +- .../probe-new-tab-null-sibling-refused.json | 2 +- ...probe-new-tab-refused-sibling-rejects.json | 2 +- ...probe-new-tab-rejects-sibling-refused.json | 2 +- .../push-dismissal-tray-reconciled.json | 2 +- .../goldens/quick-commands-load-refused.json | 2 +- .../quick-commands-loaded-and-saved.json | 2 +- ...uick-commands-save-refused-rolls-back.json | 2 +- .../goldens/relay-direct-upgrade-commits.json | 2 +- ...ect-upgrade-unsupported-host-declines.json | 2 +- ...ay-pairing-recovery-invite-authorizes.json | 2 +- ...lay-pairing-recovery-resume-committed.json | 2 +- .../relay-rotation-installs-and-commits.json | 2 +- ...ay-rotation-resumes-committed-pending.json | 2 +- .../review-create-terminal-refused.json | 2 +- .../review-mark-reviewed-persists.json | 2 +- .../review-mark-reviewed-rolls-back.json | 2 +- .../goldens/review-open-in-session.json | 2 +- .../review-send-notes-heals-stale-input.json | 2 +- .../goldens/review-stage-file.json | 2 +- .../goldens/review-stage-refused.json | 2 +- .../goldens/sc-base-ref-default.json | 2 +- .../goldens/sc-base-ref-repo-fallback.json | 2 +- .../goldens/sc-base-ref-unavailable.json | 2 +- .../goldens/sc-base-ref-worktree-hit.json | 2 +- .../sc-commit-message-cancel-rejected.json | 2 +- .../goldens/sc-commit-message-canceled.json | 2 +- .../goldens/sc-commit-message-generated.json | 2 +- .../goldens/sc-create-existing-review.json | 2 +- ...reate-intent-stage-commit-push-create.json | 2 +- .../sc-create-link-failure-is-non-fatal.json | 2 +- .../sc-create-pushes-then-creates.json | 2 +- .../sc-create-refused-empty-message.json | 2 +- .../sc-create-rejected-empty-message.json | 2 +- .../goldens/sc-eligibility-fetched.json | 2 +- .../goldens/sc-history-loaded.json | 2 +- .../goldens/sc-pr-link-hosted-review.json | 2 +- .../goldens/sc-pr-link-read.json | 2 +- .../goldens/sc-pr-link-set.json | 2 +- .../sc-prefill-unavailable-on-refusal.json | 2 +- .../sc-prefill-unavailable-on-rejection.json | 2 +- .../sc-prerequisite-force-with-lease.json | 2 +- .../goldens/sc-prerequisite-publish.json | 2 +- .../goldens/sc-prerequisite-push.json | 2 +- .../goldens/sc-prerequisite-skipped.json | 2 +- .../goldens/sc-reveal-first-poll.json | 2 +- .../goldens/sc-reveal-timeout.json | 2 +- .../sc-review-commit-inner-failure.json | 2 +- ...c-review-commit-refused-empty-message.json | 2 +- .../goldens/sc-review-commit-rejected.json | 2 +- .../goldens/sc-review-commit.json | 2 +- .../sc-review-status-entries-not-array.json | 2 +- .../goldens/sc-review-status-normalized.json | 2 +- .../rpc-foundation/goldens/schedules-b3.json | 2 +- ...les-settings-home-providers-fulfilled.json | 2 +- .../schedules-settings-new-tab-ssh.json | 2 +- ...ules-settings-repo-metadata-fulfilled.json | 2 +- ...es-settings-resume-metadata-fulfilled.json | 2 +- ...les-settings-task-hydration-fulfilled.json | 2 +- ...-settings-workspace-context-fulfilled.json | 2 +- .../session-create-browser-refused.json | 2 +- .../goldens/session-create-browser-tab.json | 2 +- ...ession-create-markdown-name-collision.json | 2 +- .../goldens/session-create-markdown-note.json | 2 +- .../session-diff-notes-load-refused.json | 2 +- .../goldens/session-diff-notes-loaded.json | 2 +- .../goldens/session-file-tab-read.json | 2 +- .../session-markdown-save-conflict.json | 2 +- .../goldens/session-markdown-saved.json | 2 +- .../session-markdown-tab-disk-fallback.json | 2 +- .../goldens/session-markdown-tab-read.json | 2 +- .../goldens/session-markdown-tab-refused.json | 2 +- ...ion-tab-activation-focus-and-activate.json | 2 +- .../session-tab-activation-refused.json | 2 +- ...ession-tab-activation-transport-error.json | 2 +- .../session-tab-close-refused-keeps-tab.json | 2 +- .../session-tab-close-session-tab.json | 2 +- .../goldens/session-tab-close-terminal.json | 2 +- .../goldens/session-tab-rename.json | 2 +- .../goldens/session-tabs-health-errored.json | 2 +- .../session-tabs-health-reconciled.json | 2 +- .../goldens/session-tabs-health-refused.json | 2 +- ...abs-health-stale-application-revision.json | 2 +- ...session-terminal-list-dedupes-handles.json | 2 +- .../session-terminal-list-empty-guarded.json | 2 +- .../goldens/session-terminal-list-merged.json | 2 +- .../session-terminal-list-refused.json | 2 +- .../settings-bot-overrides-fulfilled.json | 2 +- ...ettings-bot-overrides-refresh-refused.json | 2 +- .../settings-bot-overrides-refused.json | 2 +- ...ettings-bot-overrides-transport-error.json | 2 +- .../goldens/settings-home-coalesced.json | 2 +- .../settings-home-providers-fulfilled.json | 2 +- ...ings-home-providers-refuse-after-data.json | 2 +- .../settings-home-providers-refused.json | 2 +- ...ttings-home-providers-transport-error.json | 2 +- .../goldens/settings-new-tab-refused.json | 2 +- .../goldens/settings-new-tab-ssh.json | 2 +- .../settings-new-tab-transport-error.json | 2 +- .../goldens/settings-repo-cache-expiry.json | 2 +- .../settings-repo-metadata-fulfilled.json | 2 +- ...tings-repo-metadata-refuse-after-data.json | 2 +- .../settings-repo-metadata-refused.json | 2 +- .../settings-repo-metadata-single-host.json | 2 +- ...ettings-repo-metadata-transport-error.json | 2 +- .../settings-resume-metadata-fulfilled.json | 2 +- ...ngs-resume-metadata-refuse-after-data.json | 2 +- .../settings-resume-metadata-refused.json | 2 +- ...tings-resume-metadata-transport-error.json | 2 +- .../settings-task-hydration-fulfilled.json | 2 +- ...ings-task-hydration-refuse-after-data.json | 2 +- .../settings-task-hydration-refused.json | 2 +- ...ttings-task-hydration-transport-error.json | 2 +- ...settings-task-workspace-create-linear.json | 2 +- ...-task-workspace-create-pr-start-point.json | 2 +- .../settings-task-workspace-fulfilled.json | 2 +- .../settings-task-workspace-refused.json | 2 +- ...ttings-task-workspace-transport-error.json | 2 +- .../goldens/settings-task-write.json | 2 +- .../settings-workspace-context-fulfilled.json | 2 +- ...s-workspace-context-refuse-after-data.json | 2 +- .../settings-workspace-context-refused.json | 2 +- ...ngs-workspace-context-transport-error.json | 2 +- .../settings-workspace-submit-fulfilled.json | 2 +- .../settings-workspace-submit-refused.json | 2 +- ...ings-workspace-submit-transport-error.json | 2 +- .../speech-audio-chunk-acknowledged.json | 2 +- .../speech-desktop-start-fulfilled.json | 2 +- ...speech-desktop-start-recording-failed.json | 2 +- .../speech-desktop-start-superseded.json | 2 +- .../speech-dictation-session-cancelled.json | 2 +- .../speech-dictation-session-transcript.json | 2 +- .../speech-setup-sheet-denied-to-mobile.json | 2 +- .../goldens/speech-setup-sheet-fulfilled.json | 2 +- .../speech-setup-sheet-legacy-desktop.json | 2 +- .../goldens/structured-launch-created.json | 2 +- .../structured-launch-definitive-refusal.json | 2 +- ...uctured-launch-replays-dropped-create.json | 2 +- .../structured-launch-support-refused.json | 2 +- .../structured-launch-unsupported.json | 2 +- .../goldens/tasks-route-repo-list.json | 2 +- .../terminal-gesture-flush-and-clear.json | 374 +++++ .../goldens/terminal-input-send-accepted.json | 2 +- .../goldens/terminal-input-send-refused.json | 2 +- .../goldens/terminal-live-input-accepted.json | 2 +- .../goldens/terminal-paste-accepted.json | 2 +- .../goldens/terminal-paste-refused.json | 2 +- .../terminal-query-reply-accepted.json | 2 +- .../terminal-query-reply-unsubscribed.json | 2 +- .../goldens/terminal-raw-input-refused.json | 2 +- .../goldens/terminal-raw-input-reported.json | 2 +- .../terminal-takeover-report-accepted.json | 2 +- .../terminal-takeover-report-retried.json | 2 +- .../terminal-viewport-refit-applied.json | 2 +- ...erminal-viewport-refit-legacy-desktop.json | 2 +- ...terminal-worktree-connection-resolved.json | 2 +- .../goldens/tk-create-github.json | 2 +- .../goldens/tk-create-gitlab.json | 2 +- .../goldens/tk-create-linear.json | 2 +- .../goldens/tk-item-checks-files.json | 2 +- .../goldens/tk-item-comment-github.json | 2 +- .../goldens/tk-item-comment-gitlab-mr.json | 2 +- .../goldens/tk-item-comment-gitlab.json | 2 +- .../goldens/tk-item-detail-github.json | 2 +- .../goldens/tk-item-detail-gitlab.json | 2 +- .../goldens/tk-item-detail-linear.json | 2 +- .../goldens/tk-item-detail-metadata.json | 2 +- .../goldens/tk-item-merge-gitlab.json | 2 +- .../goldens/tk-item-metadata-github.json | 2 +- .../goldens/tk-item-metadata-gitlab-mr.json | 2 +- .../goldens/tk-item-metadata-gitlab.json | 2 +- .../goldens/tk-item-reply-merge.json | 2 +- .../goldens/tk-item-review-github.json | 2 +- .../goldens/tk-item-status-gitlab-mr.json | 2 +- .../goldens/tk-item-status-gitlab.json | 2 +- .../goldens/tk-linear-connect.json | 2 +- .../goldens/tk-linear-item.json | 2 +- .../goldens/tk-linear-team-context.json | 2 +- .../goldens/tk-list-gitlab-items.json | 2 +- .../goldens/tk-list-gitlab-todos.json | 2 +- .../goldens/tk-list-linear.json | 2 +- .../goldens/tk-project-board-load.json | 2 +- .../goldens/tk-project-repo-slugs.json | 2 +- .../tk-project-row-comments-issue.json | 2 +- .../goldens/tk-project-row-comments-pr.json | 2 +- .../goldens/tk-project-row-detail.json | 2 +- .../goldens/tk-project-row-fields.json | 2 +- .../goldens/tk-project-row-files-merge.json | 2 +- .../goldens/tk-project-row-metadata-load.json | 2 +- .../goldens/tk-project-row-review-checks.json | 2 +- .../goldens/tk-project-row-threads.json | 2 +- .../goldens/tk-provider-load.json | 2 +- ...-capability-probe-cutover-reasks-fast.json | 2 +- ...ty-probe-non-string-capabilities-drop.json | 2 +- .../transport-capability-probe-publishes.json | 2 +- ...rt-capability-probe-refused-backs-off.json | 2 +- ...-status-gates-drop-keeps-capabilities.json | 2 +- .../transport-host-status-gates-ready.json | 2 +- ...rt-host-status-gates-refused-degrades.json | 2 +- .../transport-pairing-race-both-refused.json | 2 +- ...t-pairing-race-direct-completes-first.json | 2 +- ...rt-pairing-race-relay-completes-first.json | 2 +- ...g-race-relay-wins-when-direct-refused.json | 2 +- .../goldens/tw-capabilities-advertised.json | 2 +- .../tw-capabilities-cutover-retried.json | 2 +- .../tw-capabilities-legacy-idempotency.json | 2 +- .../tw-create-retry-ambiguous-after-drop.json | 2 +- ...reate-retry-ambiguous-while-connected.json | 2 +- ...e-retry-ambiguous-without-idempotency.json | 2 +- .../goldens/tw-create-retry-created.json | 2 +- .../tw-create-retry-name-collision.json | 2 +- .../tw-create-retry-unretryable-refusal.json | 2 +- .../goldens/tw-create-retry-warning-kept.json | 2 +- .../goldens/tw-hosted-base-resolved.json | 2 +- .../goldens/tw-hosted-base-soft-error.json | 2 +- .../goldens/tw-paste-lookup-resolved.json | 2 +- .../goldens/tw-paste-lookup-slug-refused.json | 2 +- .../tw-paste-lookup-slug-unsupported.json | 2 +- .../goldens/tw-setup-hook-trust-always.json | 2 +- .../goldens/tw-setup-hook-trust-approved.json | 2 +- .../tw-smart-search-all-providers.json | 2 +- ...tw-smart-search-gitlab-provider-error.json | 2 +- .../tw-smart-search-linear-listed.json | 2 +- .../tw-task-preferences-resume-write.json | 2 +- .../tw-workspace-source-presets-refused.json | 2 +- .../goldens/tw-workspace-source-presets.json | 2 +- .../tw-workspace-sparse-missing-preset.json | 2 +- .../goldens/tw-workspace-sparse-saved.json | 2 +- .../tw-workspace-ssh-connect-refused.json | 2 +- .../goldens/tw-workspace-ssh-connected.json | 2 +- .../tw-workspace-ssh-local-agents.json | 2 +- .../goldens/tw-workspace-ssh-not-ready.json | 2 +- .../goldens/worktree-catalog-snapshot.json | 2 +- .../goldens/worktree-home-catalog.json | 2 +- .../goldens/worktree-retired-names.json | 2 +- mobile/rpc-foundation/pilot-scenarios.json | 707 +++++++++ .../desktop-notification-stream-operations.ts | 24 + .../src/notifications/mobile-notifications.ts | 4 +- .../session/mobile-session-read-operations.ts | 51 +- .../mobile-session-route-parity.test.ts | 16 +- mobile/src/session/use-live-worktree-name.ts | 21 +- .../session/use-mobile-native-chat-session.ts | 9 +- .../use-mobile-session-diff-comments.ts | 6 +- .../use-mobile-session-terminal-input.ts | 13 +- .../terminal/mobile-terminal-operations.ts | 20 +- .../terminal-send-rpc-response.test.ts | 50 +- .../terminal/terminal-send-rpc-response.ts | 8 +- .../src/test-support/rpc-recording/README.md | 57 +- ...ktop-notification-stream-mount-adapters.ts | 46 + .../adapters/mounted-operation-modules.ts | 12 + .../native-chat-paging-mount-adapters.ts | 66 + ...session-terminal-gesture-mount-adapters.ts | 114 ++ .../rpc-recording/recording-runner.test.ts | 79 + .../rpc-recording/run-recording.ts | 12 +- .../rpc-recording/scripted-rpc-transport.ts | 64 +- .../rpc-subscription-boundary.test.ts | 195 +++ .../transport/rpc-subscription-inventory.ts | 102 ++ .../unvalidated-rpc-request-port-inventory.ts | 38 +- 717 files changed, 13661 insertions(+), 811 deletions(-) create mode 100644 mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.getmissedsince-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.subscribe-1-2.json create mode 100644 mobile/rpc-foundation/goldens/matrix-notifications.desktop-stream-notifications.unsubscribe-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.readsession-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-1-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-session.native-chat-page-nativechat.subscribe-2-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-orchestration.workerterminaluserinput-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.clearbuffer-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-session.terminal-gesture-input-terminal.send-1.json create mode 100644 mobile/rpc-foundation/goldens/native-chat-page-earlier.json create mode 100644 mobile/rpc-foundation/goldens/notifications-desktop-stream-closed.json create mode 100644 mobile/rpc-foundation/goldens/notifications-desktop-stream-replayed.json create mode 100644 mobile/rpc-foundation/goldens/notifications-desktop-stream.json create mode 100644 mobile/rpc-foundation/goldens/terminal-gesture-flush-and-clear.json create mode 100644 mobile/src/notifications/desktop-notification-stream-operations.ts create mode 100644 mobile/src/test-support/rpc-recording/adapters/desktop-notification-stream-mount-adapters.ts create mode 100644 mobile/src/test-support/rpc-recording/adapters/native-chat-paging-mount-adapters.ts create mode 100644 mobile/src/test-support/rpc-recording/adapters/session-terminal-gesture-mount-adapters.ts create mode 100644 mobile/src/transport/rpc-subscription-boundary.test.ts create mode 100644 mobile/src/transport/rpc-subscription-inventory.ts 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 }, From c702e77bc7fc9645dde414f05fbce20897ef5fc6 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Tue, 15 Sep 2026 23:38:04 -0700 Subject: [PATCH 03/11] Stop reading the terminal arguments field on the structured chat route (#20944) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(native-chat): stop reading the terminal arguments field on the structured chat route Setting Claude's Arguments to "--dangerously-skip-permissions --model Opus" made every new Claude tab open in the old terminal-backed chat instead of the new structured one, with nothing on screen to explain why. Removing "--model Opus" fixed it. The cause was a whole-string comparison: the configured arguments were checked against a single blessed value per agent, so any added token at all — including one the agent supports — stopped the string matching and the launch was demoted. Structured chat does not run the interactive CLI. It drives Claude through the Agent SDK and Codex through app-server, and those take narrower option sets that are versioned separately from the CLI's, so one free-text field cannot have a guaranteed meaning for all three. The structured route now reads only what it can actually honour: a replaced launch command, or a launch that names its own working directory. Terminal launches still apply the field exactly as before. Permission posture no longer travels as a raw flag. It is derived from the resolved launch arguments, which is the same fact a terminal launch acts on and which falls back to the default Orca ships when the field was never touched, so bypass stays on by default and Manual is still honoured. Claude gets the SDK's typed permissionMode and allowDangerouslySkipPermissions at query start; Codex gets its bypass flag placed before the app-server subcommand. Both are re-derived per acquisition beside the auth policy and environment overlay rather than stored in the session record, so nothing can disagree with the setting. Codex also loses the --profile, --add-dir and -c passthrough that reached app-server through that field. Only the permission posture comes back. * test(native-chat): pin routing authority on the narrowed feasibility input The routing-authority pin still named the old bundled blocker and built its "customized" fixture out of the arguments field, which is no longer a feasibility input. Both are now the launch command, and arguments and environment are customized on both passes of the loop, so the flag handed to the shared resolver tracks the command alone — a caller that resumed reading either one fails here. No case is dropped and no assertion is relaxed: the blocker list is still exhaustive and every caller must still honour a refusal from the shared resolver. --- src/main/agent-launch/agent-launch-mode.ts | 14 ++- .../claude-agent-sdk-contract-pins.test.ts | 25 ++++-- ...laude-structured-launch-resolution.test.ts | 83 +++++++++++------- .../claude-structured-launch-resolution.ts | 67 +++++---------- .../claude-structured-permission-mode.test.ts | 45 ++++++++++ .../claude-structured-permission-mode.ts | 23 +++++ .../codex-structured-app-server-args.test.ts | 32 ------- .../codex/codex-structured-app-server-args.ts | 84 ------------------ ...codex-structured-launch-resolution.test.ts | 41 ++++++--- .../codex-structured-launch-resolution.ts | 7 +- .../codex-structured-permission-mode.test.ts | 46 ++++++++++ .../codex/codex-structured-permission-mode.ts | 21 +++++ .../runtime/orca-runtime-get-worktree-ps.ts | 59 ++----------- ...ructured-agent-session-launch-args.test.ts | 86 ------------------- .../orchestration-worker-start-mode.test.ts | 2 +- ...ation-worker-start-receipt-wording.test.ts | 10 +-- .../structured-agent-session-runtime.ts | 11 +++ .../structured-claude-runtime-adapter.ts | 6 ++ .../folder-workspace-composer-submit.ts | 1 - .../src/lib/agent-launch-route-input.test.ts | 26 +++++- .../src/lib/agent-launch-route-input.ts | 13 ++- .../src/lib/agent-launch-routing.test.ts | 24 ++---- src/renderer/src/lib/agent-launch-routing.ts | 10 +-- .../src/lib/launch-agent-in-new-tab.ts | 2 +- ...unch-work-item-direct-route-preparation.ts | 1 - ...tructured-native-chat-launch-route.test.ts | 15 ++-- .../structured-native-chat-launch-route.ts | 11 ++- .../tui-agent-launch-command-override.ts | 21 +++++ src/shared/tui-agent-launch-customization.ts | 43 ---------- src/shared/tui-agent-launch-defaults.test.ts | 45 ++++++++++ src/shared/tui-agent-launch-defaults.ts | 29 +++++++ src/shared/tui-agent-startup.test.ts | 18 ++++ ...native-chat-routing-authority.unit.test.ts | 23 ++--- 33 files changed, 477 insertions(+), 467 deletions(-) create mode 100644 src/main/claude/claude-structured-permission-mode.test.ts create mode 100644 src/main/claude/claude-structured-permission-mode.ts delete mode 100644 src/main/codex/codex-structured-app-server-args.test.ts delete mode 100644 src/main/codex/codex-structured-app-server-args.ts create mode 100644 src/main/codex/codex-structured-permission-mode.test.ts create mode 100644 src/main/codex/codex-structured-permission-mode.ts delete mode 100644 src/main/runtime/orca-runtime-structured-agent-session-launch-args.test.ts create mode 100644 src/shared/tui-agent-launch-command-override.ts delete mode 100644 src/shared/tui-agent-launch-customization.ts create mode 100644 src/shared/tui-agent-launch-defaults.test.ts 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-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/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/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/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/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/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/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/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' }) ) From 16ac9018dbbd21e6cf5aad2129be36b26f24a7b8 Mon Sep 17 00:00:00 2001 From: OrcaWin Date: Tue, 15 Sep 2026 23:44:23 -0700 Subject: [PATCH 04/11] docs: remove unavailable diff shortcuts (#20974) Co-authored-by: m4air --- docs/site/content/docs/editing/monaco.mdx | 2 +- docs/site/content/docs/recipes/review-ai-diff.mdx | 4 ++-- docs/site/content/docs/review/commit-push.mdx | 2 +- docs/site/content/docs/review/diff-viewer.mdx | 6 +----- 4 files changed, 5 insertions(+), 9 deletions(-) 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)). From e39b432c40d34348159be0bb0a630bc6c25c0130 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Wed, 16 Sep 2026 00:05:29 -0700 Subject: [PATCH 05/11] fix(editor): preserve Markdown scroll after image layout (#20956) * fix(editor): preserve markdown scroll after image layout * test(editor): harden scroll regression cleanup and geometry checks --- .../editor/RichMarkdownEditorSurface.tsx | 3 +- tests/e2e/markdown-tab-scroll-restore.spec.ts | 101 ++++++++++++++++++ 2 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 tests/e2e/markdown-tab-scroll-restore.spec.ts 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/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) +}) From 78609330d16291adbf72e4ce2ee559865d7e8e90 Mon Sep 17 00:00:00 2001 From: Jinjing <6427696+AmethystLiang@users.noreply.github.com> Date: Wed, 16 Sep 2026 00:16:56 -0700 Subject: [PATCH 06/11] Fix browser viewport presets incorrectly scaled by UI zoom (#20962) * Fix browser viewport presets scaled incorrectly by UI zoom Browser viewport presets must remain in window DIP (native) coordinates but scale in CSS pixels as UI zoom changes. Store preset dimensions as CSS variables in DIP, then divide by the live UI zoom factor in the stylesheet. Also consolidate zoom factor calculations across the app to use a shared `uiZoomFactorFromLevel()` function and add `windowDipToCssPx()` for converting native coordinates to CSS pixels. * Move viewport preset zoom compensation to CSS class Inline width/height styles outrank class rules, preventing the zoom compensation from applying. Using a class rule ensures the viewport scales correctly as the UI zoom factor changes. --- .../window/main-window-state-lifecycle.ts | 3 +- src/renderer/src/assets/main.css | 8 + .../browser-page-context-menu.tsx | 6 +- .../host-guest/browser-page-viewport.test.ts | 61 ++- .../host-guest/browser-page-viewport.ts | 22 +- .../components/settings/SettingsConstants.ts | 3 +- .../hooks/useIpcEvents-zoom-routing.test.ts | 408 ------------------ src/renderer/src/hooks/zoom-routing.test.ts | 235 ++++++++++ src/renderer/src/lib/ui-zoom.test.ts | 103 +++++ src/renderer/src/lib/ui-zoom.ts | 37 +- src/shared/ui-zoom-level.ts | 10 + 11 files changed, 466 insertions(+), 430 deletions(-) delete mode 100644 src/renderer/src/hooks/useIpcEvents-zoom-routing.test.ts create mode 100644 src/renderer/src/hooks/zoom-routing.test.ts create mode 100644 src/renderer/src/lib/ui-zoom.test.ts 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/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/settings/SettingsConstants.ts b/src/renderer/src/components/settings/SettingsConstants.ts index f129bea3265..c3651af04e0 100644 --- a/src/renderer/src/components/settings/SettingsConstants.ts +++ b/src/renderer/src/components/settings/SettingsConstants.ts @@ -1,5 +1,6 @@ import { DEFAULT_APP_FONT_FAMILY, getDefaultRepoHookSettings } from '../../../../shared/constants' import { DESKTOP_TERMINAL_SCROLLBACK_ROW_PRESETS } from '../../../../shared/terminal-scrollback-policy' +import { uiZoomFactorFromLevel } from '../../../../shared/ui-zoom-level' export const DEFAULT_REPO_HOOK_SETTINGS = getDefaultRepoHookSettings() export const MAX_THEME_RESULTS = 80 @@ -11,7 +12,7 @@ export { } from '../../../../shared/ui-zoom-level' export function zoomLevelToPercent(level: number): number { - return Math.round(100 * 1.2 ** level) + return Math.round(100 * uiZoomFactorFromLevel(level)) } export function mergeFontSuggestions( 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/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/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 +} From d62328aa4d0113e1afbbce62aec8a08300d77215 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Wed, 16 Sep 2026 00:30:52 -0700 Subject: [PATCH 07/11] fix(codex): remove redundant Windows hook launcher for Unicode profiles (#20952) * fix(codex): reuse the Windows hook shell for Unicode profile paths * test(codex): register Unicode hook tests in Windows CI * test(codex): pin trust hash replacement during Windows upgrade * test(codex): retry transient Windows teardown locks --- .github/workflows/pr.yml | 2 + config/scripts/pr-code-change-scope.mjs | 2 + src/main/agent-hooks/installer-utils.test.ts | 12 +- src/main/agent-hooks/installer-utils.ts | 15 +- .../managed-hook-command-contract.test.ts | 7 +- src/main/codex/codex-hook-definition.ts | 13 +- .../hook-service-managed-install.test.ts | 32 ++-- src/main/codex/windows-hook-command.test.ts | 146 ++++++++++++++++++ src/main/codex/windows-hook-upgrade.test.ts | 97 ++++++++++++ 9 files changed, 295 insertions(+), 31 deletions(-) create mode 100644 src/main/codex/windows-hook-command.test.ts create mode 100644 src/main/codex/windows-hook-upgrade.test.ts 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..77c38c546ac 100644 --- a/config/scripts/pr-code-change-scope.mjs +++ b/config/scripts/pr-code-change-scope.mjs @@ -223,6 +223,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', 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/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/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) + } + }) +}) From 07b7687a2e6468ca699e1baf2415d479a9aca318 Mon Sep 17 00:00:00 2001 From: OrcaWin Date: Wed, 16 Sep 2026 00:37:01 -0700 Subject: [PATCH 08/11] fix(sidebar): keep the Projects filter when a project is added (#20987) Adding a project wiped the Projects filter: both reveal paths made the new project visible by clearing filterRepoIds outright, so a user filtered to A and B was dropped back to every project. The filter is an allow-list, so revealing a repo only needs that repo added to it. revealRepoInProjectFilter widens the selection instead, and no-ops while the filter is off, where adding an id would turn "show everything" into "show only this project". STA-7588 Co-authored-by: m4air --- .../add-repo-skip-finalization.test.ts | 12 +++++-- .../sidebar/add-repo-skip-finalization.ts | 9 ++---- .../project-added-default-checkout.test.ts | 2 +- .../sidebar/project-filter-reveal.test.ts | 32 +++++++++++++++++++ .../sidebar/project-filter-reveal.ts | 12 +++++++ .../worktree-activation-created-agent.test.ts | 10 ++++++ src/renderer/src/lib/worktree-activation.ts | 7 ++-- 7 files changed, 71 insertions(+), 13 deletions(-) create mode 100644 src/renderer/src/components/sidebar/project-filter-reveal.test.ts create mode 100644 src/renderer/src/components/sidebar/project-filter-reveal.ts 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/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/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' From 15cac68802361f3b9075630335d3e6d379c2a909 Mon Sep 17 00:00:00 2001 From: Jinjing <6427696+AmethystLiang@users.noreply.github.com> Date: Wed, 16 Sep 2026 00:44:11 -0700 Subject: [PATCH 09/11] Native chat keeps scrolling to bottom (#20898) * fix(native-chat): prevent auto-scroll when transcript is hidden Stop following new messages to bottom when the chat view is not visible (e.g., in an inactive tab). Restore scroll position when the transcript becomes visible again. * fix(native-chat): preserve reader scroll offset when transcript is revea When a reader scrolls away from the latest messages and the chat tab becomes hidden, save their scroll position. If messages arrive while the tab is hidden, don't auto-scroll. When the tab is revealed, restore the saved offset instead of jumping to latest, preserving their reading context across hide/reveal cycles. * refactor(native-chat): extract growth-append tests and status component Move transcript growth/append test suite to dedicated growth-windowing.test.tsx file for better organization. Extract status rendering logic (errors, retry, background tasks) from NativeChatStructuredSession into NativeChatStructuredSessionStatus. Fix scroll offset preservation in test harness when transcript visibility toggles. * refactor(native-chat): remove retry UI Remove unused retry functionality for failed message delivery from the native chat status component. The retryableOutboxEntry state is no longer managed, so the retry button and associated handling can be safely removed. --- ...eChatMessageList.growth-windowing.test.tsx | 543 +++++++++++++++ .../native-chat/NativeChatMessageList.tsx | 5 + .../NativeChatMessageList.windowing.test.tsx | 652 ++++-------------- .../native-chat/NativeChatResolvedView.tsx | 1 + ...tiveChatStructuredSession.test-harness.tsx | 1 + .../NativeChatStructuredSession.test.tsx | 17 + .../NativeChatStructuredSession.tsx | 84 +-- .../NativeChatStructuredSessionStatus.tsx | 79 +++ .../native-chat-windowing-test-harness.tsx | 35 +- ...use-native-chat-transcript-scroll.test.tsx | 96 +++ .../use-native-chat-transcript-scroll.ts | 51 +- ...ve-chat-transcript-window.options.test.tsx | 54 +- .../use-native-chat-transcript-window.ts | 29 +- ...native-chat-history-prepend-anchor.spec.ts | 113 ++- 14 files changed, 1154 insertions(+), 606 deletions(-) create mode 100644 src/renderer/src/components/native-chat/NativeChatMessageList.growth-windowing.test.tsx create mode 100644 src/renderer/src/components/native-chat/NativeChatStructuredSessionStatus.tsx create mode 100644 src/renderer/src/components/native-chat/use-native-chat-transcript-scroll.test.tsx 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/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/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 }) + } + }) }) From 170ebce1f2bd4474a48b40694d46a6b27e4ba767 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Wed, 16 Sep 2026 01:13:06 -0700 Subject: [PATCH 10/11] fix(ci): run static analysis for every tree the repo-wide audits scan (#20918) A mobile-only diff is desktop-irrelevant, so should_run was false and every PR check skipped -- including the audits that do lint mobile/. The violation then landed on main and failed the same gate on every later PR's merge ref. Derive the trigger from the audit commands' own scan roots so the two cannot drift. --- config/scripts/pr-code-change-scope.mjs | 59 +++++++++++++++++++- config/scripts/pr-code-change-scope.test.mjs | 41 ++++++++++++-- 2 files changed, 94 insertions(+), 6 deletions(-) diff --git a/config/scripts/pr-code-change-scope.mjs b/config/scripts/pr-code-change-scope.mjs index 77c38c546ac..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' @@ -261,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 @@ -298,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 } } @@ -358,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', () => { From 291b4ddd6f1c1af480169885e0fda7f9c78ff053 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Wed, 16 Sep 2026 01:20:58 -0700 Subject: [PATCH 11/11] feat(agent-status): route structured sessions through canonical ownership (#20718) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(agent-status): route structured status through canonical ownership and fence child lifetimes Restacked onto the canonical store and child-work contract. Completing that restack drops the `reopenStructuredParent` mutation flag this change had carried, along with its contract field, its codec branch, and its single call site in structured ingest, which passed a hardcoded `true`. The flag was a narrow escape hatch from the absolute `tombstones.has(...)` rule that governed parent upserts in this branch's original base. The canonical store replaces that rule with a revision envelope, because a bounded store compacts tombstones away and a presence-based guard silently stops fencing once one is evicted. With the envelope deciding the outcome, the escape hatch has nothing left to escape from, so removing it changes no production behaviour. `agent-status-store-reopen.test.ts` is rewritten against the envelope: the reopen case now pins that an unflagged republication succeeds while replay from before the reopen stays fenced even after the parent tombstone is compacted away, and the second case pins where the guard genuinely bites — a republication inside the removing mutation itself, for every subject kind. * fix(agent-status): re-admit unchanged structured owners after teardown * fix(agent-status): clear anti-slop object-param and Reflect.apply findings - agent-status-store-byte-budget.ts: type the byte-budget helper's record parameter as the union of what its call sites actually pass (the snapshot header plus each store entity record) instead of the broad `object`. - server-structured-canonical-status.test.ts: replace `Reflect.apply` with a typed, explicitly-bound call that models a caller at an untyped boundary omitting the trusted owner subject. * docs(agent-status): drop the 2A progress doc from docs/reference docs/reference/ holds implementation detail, not rollout progress. The canonical-boundary notes move to the effort's working directory; the agent-status-store status section keeps the boundary statement and loses the now-dangling link. * fix(agent-status): mint the canonical epoch on first use, not at construction The hook server's canonical store was built in an instance-member initializer, so constructing AgentHookServer — which happens at import time for the module singleton — demanded a live randomUUID. Any importer that stubs node:crypto threw 'Invalid agent status store epoch' before a single test ran. The store is now created on first canonical access and reset by dropping it, so construction owes nothing to a crypto implementation and the epoch still rotates per authority incarnation. * fix(agent-status): drop the orphaned snapshot budget and a duplicated pane guard Two leftovers from the canonical-store routing change: agent-status-store-snapshot-budget.ts lost its only caller when the store state switched to agentStatusStoreFitsByteBudget. Nothing in the repo imports it now, so the module goes with the caller it existed for. The replacement is not a straight copy: it only memoises a record's measured size once the record is frozen, so a still-mutable record can no longer return a stale byte count. persistedStructuredWorkerPaneKeyIsValid repeated its public-pane-key rejection verbatim three lines below the first one. The tests covering that rejection pass on the first occurrence alone, so the second decided nothing and only obscured which predicate was load-bearing. * fix(agent-status): stop a failed structured publish from latching as owned Three defects found reviewing the structured routing path. combinedStatusEntries defaulted a missing listing order to 0, but the counter it compares against starts at 1, so any unordered row sorted above every ordered one. Unknown order now sorts last. The owner map recorded a session as owned before the sink ran. A publish that threw therefore left matchesLocation reporting an owned location for a row that was never written, and the unchanged-projection path — the only thing that would re-offer it — stopped. The address still has to survive a throw so teardown can forget a row that did land, so the two facts are now separate: the address is recorded up front, and only a publish that returned marks the row as landed. The reopen test claimed the revision envelope rather than the tombstone fences a stale replay. It cannot tell: transport consecutiveness, the parent-revision validator and the tombstone guard each refuse that replay alone, and ablating any two leaves the test green. It now asserts the outcome and says so. --- docs/reference/agent-status-store.md | 12 +- .../first-work-branch-rename.test.ts | 23 +- .../server-ingest-structured-status.test.ts | 49 ++-- ...server-structured-canonical-status.test.ts | 221 ++++++++++++++++++ src/main/agent-hooks/server.ts | 1 + .../server/server-ingest-structured.ts | 143 ++++++++---- .../agent-hooks/server/server-lifecycle.ts | 7 +- .../agent-hooks/server/server-listeners.ts | 82 ++++++- src/main/agent-hooks/server/server-state.ts | 45 +++- .../server/server-status-inference.ts | 6 + .../server/server-status-retries.ts | 4 +- .../server/server-status-update.ts | 41 ++-- .../server/server-structured-status-row.ts | 24 ++ ...ctured-agent-session-forget-status.test.ts | 104 ++++++++- ...-agent-session-status-feed-test-session.ts | 24 ++ ...ructured-agent-session-status-feed.test.ts | 29 +-- .../structured-agent-session-status-feed.ts | 35 +-- ...red-agent-session-status-ownership.test.ts | 97 ++++++++ ...ructured-agent-session-status-ownership.ts | 75 ++++++ ...tured-agent-session-status-reentry.test.ts | 113 +++++++++ ...ructured-agent-session-subscribers.test.ts | 13 +- ...red-agent-session-surface-lifetime.test.ts | 9 +- src/main/orcad/orcad-entry.ts | 4 +- .../worktree-ps-structured-host.spec.ts | 52 +++-- ...ructured-agent-session-rpc.test-fixture.ts | 10 +- ...ime-worktree-agent-rows-structured.test.ts | 12 +- ...ree-structured-agent-rows-liveness.test.ts | 30 ++- .../structured-worker-identity.test.ts | 27 +++ .../startup/main-process-runtime-service.ts | 4 +- .../agent-status-store-relay-context.test.ts | 4 + ...tructuredAgentSessionStatusBridge.test.tsx | 10 +- .../sidebar/useWorktreeAgentRows.test.ts | 4 +- .../worktree-subagent-child-rows.test.ts | 55 +++++ .../sidebar/worktree-subagent-child-rows.ts | 22 +- .../agent-hook-listener/listener-state.ts | 9 + .../agent-status-child-work-admission-core.ts | 13 +- ...-status-child-work-admission-operations.ts | 92 ++------ .../agent-status-child-work-admission.ts | 4 +- src/shared/agent-status-child-work-binding.ts | 56 +++++ .../agent-status-child-work-freshness.ts | 2 +- .../agent-status-child-work-lifetime.test.ts | 206 ++++++++++++++++ ...agent-status-child-work-projection.test.ts | 4 +- src/shared/agent-status-child-work-resume.ts | 85 +++++++ .../agent-status-legacy-adapter.test.ts | 23 +- src/shared/agent-status-legacy-adapter.ts | 19 +- .../agent-status-store-byte-budget.test.ts | 75 ++++++ src/shared/agent-status-store-byte-budget.ts | 65 ++++++ .../agent-status-store-child-queries.ts | 34 +++ src/shared/agent-status-store-codec.ts | 2 +- src/shared/agent-status-store-mutation.ts | 14 +- src/shared/agent-status-store-persistence.ts | 2 +- src/shared/agent-status-store-reopen.test.ts | 64 +++++ .../agent-status-store-snapshot-budget.ts | 68 ------ src/shared/agent-status-store-state.ts | 16 +- src/shared/agent-status-store.ts | 6 + 55 files changed, 1878 insertions(+), 372 deletions(-) create mode 100644 src/main/agent-hooks/server-structured-canonical-status.test.ts create mode 100644 src/main/agent-hooks/server/server-structured-status-row.ts create mode 100644 src/main/native-chat/agent-session-wire/structured-agent-session-status-feed-test-session.ts create mode 100644 src/main/native-chat/agent-session-wire/structured-agent-session-status-ownership.test.ts create mode 100644 src/main/native-chat/agent-session-wire/structured-agent-session-status-ownership.ts create mode 100644 src/main/native-chat/agent-session-wire/structured-agent-session-status-reentry.test.ts create mode 100644 src/renderer/src/components/sidebar/worktree-subagent-child-rows.test.ts create mode 100644 src/shared/agent-status-child-work-binding.ts create mode 100644 src/shared/agent-status-child-work-lifetime.test.ts create mode 100644 src/shared/agent-status-child-work-resume.ts create mode 100644 src/shared/agent-status-store-byte-budget.test.ts create mode 100644 src/shared/agent-status-store-byte-budget.ts create mode 100644 src/shared/agent-status-store-child-queries.ts create mode 100644 src/shared/agent-status-store-reopen.test.ts delete mode 100644 src/shared/agent-status-store-snapshot-budget.ts diff --git a/docs/reference/agent-status-store.md b/docs/reference/agent-status-store.md index 8f1439c2122..647121155a4 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/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/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/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-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/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-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/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/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/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/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 b8338523e64..eb1adf604a6 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, @@ -124,7 +124,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) @@ -195,7 +195,7 @@ function upsertAliases( return false } state.aliases.set( - serializeAgentChildWorkAliasKey(record), + serializeAgentChildWorkBindingKey(record), deepFreezeAgentStatusStoreValue(record) ) } @@ -232,7 +232,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 42749f270ca..249830a5aa5 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 = { @@ -149,7 +151,7 @@ export function validateAgentStatusStoreState(state: AgentStatusStoreState): boo const child = state.children.get(alias.childWorkId) const tombstone = state.tombstones.get(agentStatusTombstoneMapKey('alias', key)) if ( - key !== serializeAgentChildWorkAliasKey(alias) || + key !== serializeAgentChildWorkBindingKey(alias) || alias.revision > state.revision || !child || !agentChildWorkBelongsTo(child, alias.parent) || @@ -176,13 +178,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( @@ -224,7 +226,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) {