From 685e7df6c70718019f807a3402a46ec86bf8e4c1 Mon Sep 17 00:00:00 2001 From: garethx Date: Wed, 12 Aug 2026 12:09:20 +0100 Subject: [PATCH] Write the dashboard copy for operators, not for reviewers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three strings explained why the code is built the way it is, which is a code comment's job rather than a UI's. Spotted in the tab, not in review. * the hidden-connections note argued its own design — "a Pause button next to them is a misclick away from an outage". An operator needs to know the connections exist and why they are absent, not to be sold the reasoning. * the empty state told you to set `HOOKDECK_API_KEY`. That still works as a fallback, but the name to reach for since the namespacing is `HOOKDECK_EG_API_KEY`, so the tab was teaching the older one. * the agent-runs caption said "failed after the 202". Nobody reading a dashboard is thinking in status codes. The pause guidance and the stranded-runs warning are unchanged: both state a symptom and an action, which is the line. Ships in the wheel, so this wants a patch release. Co-Authored-By: Claude Opus 5 --- hookdeck/dashboard/dist/index.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/hookdeck/dashboard/dist/index.js b/hookdeck/dashboard/dist/index.js index ed1cbd9..e3ba968 100644 --- a/hookdeck/dashboard/dist/index.js +++ b/hookdeck/dashboard/dist/index.js @@ -74,8 +74,8 @@ h(CardHeader, null, h(CardTitle, null, "Hookdeck")), h(CardContent, null, h("p", { className: "text-sm text-muted-foreground" }, - "HOOKDECK_API_KEY is not set, so the queue cannot be read. The adapter " + - "still runs — this tab is read-only observability, not a dependency."))); + "Set HOOKDECK_EG_API_KEY to show queue and delivery data here. " + + "The gateway keeps running without it."))); } const failed = hd.failed || []; @@ -129,8 +129,9 @@ h(CardHeader, null, h(CardTitle, { className: "text-lg" }, "Agent runs")), h(CardContent, { className: "flex flex-col gap-2" }, h("p", { className: "text-sm text-muted-foreground" }, - "From the local ledger. A run that failed after the 202 is only " + - "visible here — Hookdeck recorded that delivery as successful."), + "What this gateway did with each delivery. A run that failed after " + + "the event was accepted appears only here — Hookdeck recorded that " + + "delivery as successful."), !local.exists ? h("p", { className: "text-sm" }, "No deliveries recorded yet.") : h("div", { className: "flex flex-wrap gap-2" }, @@ -169,8 +170,8 @@ : null, others ? h("p", { className: "mb-2 text-xs text-muted-foreground" }, - others + " other connection(s) in this project are not shown — they " + - "belong to something else, and a Pause button next to them is a misclick away from an outage.") + others + " other connection(s) in this project are not shown. " + + "Only connections matching a configured route appear here.") : null, conns.map(function (c) { return h(Row, { key: c.id },