From 129f36d49b7ed5587aea0eca3c5ae4efe59abad2 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Wed, 14 Oct 2026 22:18:01 -0700 Subject: [PATCH] Native chat: the subagent row writer always awaits a promise CI's type-aware lint flagged the row writer handing `Promise.all` a value that could be undefined when a sink has no `written()` barrier. A sink without one now reads as landed. --- .../structured-agent-session-subagent-rows.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/native-chat/agent-session-wire/structured-agent-session-subagent-rows.ts b/src/main/native-chat/agent-session-wire/structured-agent-session-subagent-rows.ts index 21b1b8c53d0..e0696d0f91c 100644 --- a/src/main/native-chat/agent-session-wire/structured-agent-session-subagent-rows.ts +++ b/src/main/native-chat/agent-session-wire/structured-agent-session-subagent-rows.ts @@ -30,9 +30,13 @@ import { subagentJournalItemIdentity } from '../agent-session-journal/journal-subagent-item' import type { StructuredAgentSessionCurrentWork } from './structured-agent-session-current-work' -import type { StructuredAgentSessionEventSink } from './structured-agent-session-event-sink' +import type { + StructuredAgentSessionEventSink, + StructuredAgentSessionSinkBarrier +} from './structured-agent-session-event-sink' const UNNAMED = 'subagent' +const LANDED: StructuredAgentSessionSinkBarrier = { ok: true } const THREAD_GROUP = 'thread' /** A child's view, with the host-only facts its saved row also keeps. */ @@ -146,7 +150,7 @@ export class StructuredAgentSessionSubagentRows { .catch((error: unknown) => this.deps.onWriteFailed(sessionId, error)) } row.producer.appendItem(identity, body, { turnScope: row.turnScope, executes: true }) - return row.producer.written?.().then((landed) => { + return (row.producer.written?.() ?? Promise.resolve(LANDED)).then((landed) => { if (!landed.ok) { this.deps.onWriteFailed(sessionId, landed.error) }