From 7e1d0a998cb7f90e4e2aa65daae5c1d9ffeeaac9 Mon Sep 17 00:00:00 2001 From: Jinwoo-H Date: Fri, 11 Sep 2026 01:27:53 -0400 Subject: [PATCH] fix(mobile): require a reader for RPC result variants --- mobile/src/transport/rpc-operation-compile-fence.ts | 4 ++++ mobile/src/transport/rpc-operation-result-reader.ts | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/mobile/src/transport/rpc-operation-compile-fence.ts b/mobile/src/transport/rpc-operation-compile-fence.ts index 2e4449da73c..a8af3807257 100644 --- a/mobile/src/transport/rpc-operation-compile-fence.ts +++ b/mobile/src/transport/rpc-operation-compile-fence.ts @@ -1,6 +1,7 @@ import type { RpcClient } from './rpc-client' import type { RpcMethodName } from './rpc-params-contract' import { defineRpcOperation, runRpcOperation, startRpcOperation } from './rpc-operation' +import { rpcResultVariants } from './rpc-operation-result-reader' import { workspaceListAtBarrier, workspaceListOrNull, @@ -24,6 +25,9 @@ import type { declare const client: RpcClient +// @ts-expect-error a variant reader combinator must have at least one reader +const _fenceEmptyVariantReaders = rpcResultVariants([]) + // FENCE: probe-cannot-take-a-reader export const fenceProbeWithReader: CapabilityProbeRpcDefinition<'worktree.ps', 'on-settle'> = { name: 'fence.probeWithReader', diff --git a/mobile/src/transport/rpc-operation-result-reader.ts b/mobile/src/transport/rpc-operation-result-reader.ts index 0b7e3bef376..b9341e0e8bc 100644 --- a/mobile/src/transport/rpc-operation-result-reader.ts +++ b/mobile/src/transport/rpc-operation-result-reader.ts @@ -39,7 +39,10 @@ export function rpcResultVariant( - readers: readonly NamedRpcResultReader[] + readers: readonly [ + NamedRpcResultReader, + ...NamedRpcResultReader[] + ] ): RpcCompatibleReader { return (raw) => { const issues: RpcDecodeIssue[] = []