fix(webchat): suppress ack-only heartbeats + update changelog (#2396) (thanks @dlauer)

This commit is contained in:
Pocket Clawd 2026-01-26 14:52:07 -08:00
parent 1a172ba873
commit 0eb0364819
3 changed files with 4 additions and 5 deletions

View File

@ -30,6 +30,7 @@ Status: unreleased.
- Tlon: format thread reply IDs as @ud. (#1837) Thanks @wca4a.
- Gateway: prefer newest session metadata when combining stores. (#1823) Thanks @emanuelst.
- Web UI: keep sub-agent announce replies visible in WebChat. (#1977) Thanks @andrescardonas7.
- Web UI: honor heartbeat visibility (hide HEARTBEAT_OK acks by default) in WebChat. (#2396) Thanks @dlauer.
- CI: increase Node heap size for macOS checks. (#1890) Thanks @realZachi.
- macOS: avoid crash when rendering code blocks by bumping Textual to 0.3.1. (#2033) Thanks @garricn.
- Browser: fall back to URL matching for extension relay target resolution. (#1999) Thanks @jonit-dev.

View File

@ -11,9 +11,7 @@ type WebchatHeartbeatPolicy = {
ackMaxChars: number;
};
let webchatHeartbeatPolicyCache:
| { policy: WebchatHeartbeatPolicy; loadedAtMs: number }
| undefined;
let webchatHeartbeatPolicyCache: { policy: WebchatHeartbeatPolicy; loadedAtMs: number } | undefined;
function resolveWebchatHeartbeatPolicy(): WebchatHeartbeatPolicy {
// loadConfig() reads from disk + validates, so avoid doing it on every token stream event.
@ -209,7 +207,7 @@ export function createAgentEventHandler({
clientRunId: string,
seq: number,
jobState: "done" | "error",
error: unknown | undefined,
error: unknown,
agentRunId: string,
) => {
const text = chatRunState.buffers.get(clientRunId)?.trim() ?? "";

View File

@ -1,6 +1,6 @@
import type { ClawdbotConfig } from "../config/config.js";
import type { ChannelHeartbeatVisibilityConfig } from "../config/types.channels.js";
import type { DeliverableMessageChannel, GatewayMessageChannel } from "../utils/message-channel.js";
import type { GatewayMessageChannel } from "../utils/message-channel.js";
export type ResolvedHeartbeatVisibility = {
showOk: boolean;