the lists re-read when the agent changes something

an agent deleted two proxy hosts and both stayed on screen. the person had the
answer in the transcript and a stale list six inches above it — which is the
one thing a chat beside a list has to get right, and the reason it is beside
the list at all.

so the chat panel bumps the refresh channel when a turn ran tools, and every
section re-reads. gated on hadToolCalls: a turn that only talked changed
nothing, and re-reading after every sentence would put six requests behind
every reply.

the channel is renamed with it. it was proxy-manager:connection-changed, named
after its only publisher; it has two now and the second is the bigger one, so
it says what it MEANS — something at NPM changed, read it again.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
This commit is contained in:
2026-08-25 19:03:35 +00:00
co-authored by Claude Opus 5
parent 417e091dfe
commit 66383aa9a4
8 changed files with 57 additions and 29 deletions
+2 -2
View File
@@ -2,7 +2,7 @@ import { useCallback, useEffect, useRef, useState } from "react";
import { RefreshCw, ShieldAlert, ShieldCheck } from "lucide-react";
import { useClient } from "hooks/useClient";
import { readableError } from "./errors";
import { useConnectionChanged } from "./channel";
import { useNpmChanged } from "./channel";
/**
* Certificates, ordered by how soon they expire.
@@ -30,7 +30,7 @@ export const CertificatesPanel = () => {
const clientRef = useRef(client);
clientRef.current = client;
const [connectionSignal] = useConnectionChanged();
const [connectionSignal] = useNpmChanged();
const [certificates, setCertificates] = useState<Certificate[] | null>(null);
const [error, setError] = useState<string | null>(null);