From 94d537b7a93e015a329c50fdb652276ce3e92298 Mon Sep 17 00:00:00 2001 From: iris Date: Sat, 4 Jul 2026 12:07:04 +0200 Subject: [PATCH] feat(agent-term): show remind timing and message preview in tool row MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `mcp__hyperhive__remind` calls previously rendered as the generic `fmtArgsGeneric` output — with a multi-field input that showed `message: "..." · delay_seconds: 300`, burying the message after a verbose field name. New format: `remind* +5m "check on PR..."` (or `at HH:MMZ` for absolute timestamps). The timing renders first so it's scannable at a glance, followed by the first 60 chars of the message body. Works for all three input shapes: delay_seconds, at_unix_timestamp, and file_path-only (shows the path as the preview). --- frontend/packages/agent/src/app.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/frontend/packages/agent/src/app.js b/frontend/packages/agent/src/app.js index 4eee5ecc..5d5b05eb 100644 --- a/frontend/packages/agent/src/app.js +++ b/frontend/packages/agent/src/app.js @@ -1584,6 +1584,22 @@ window.marked = marked; if (input.lines != null) parts.push(input.lines + 'L'); return short + (parts.length ? ' ' + parts.join(' · ') : '()'); } + case 'mcp__hyperhive__remind': { + // Surface when the reminder fires + the first line of the message. + // `delay_seconds` → human-readable "+5m"; `at_unix_timestamp` → + // "at HH:MM"; message truncated to fit. + let when = ''; + if (input.delay_seconds != null) { + const s = input.delay_seconds; + when = '+' + (s < 60 ? s + 's' : s < 3600 ? Math.round(s / 60) + 'm' + : (s / 3600).toFixed(1) + 'h'); + } else if (input.at_unix_timestamp != null) { + when = 'at ' + new Date(input.at_unix_timestamp * 1000) + .toISOString().slice(11, 16) + 'Z'; + } + const msg = String(input.message || input.file_path || '').replace(/\s+/g, ' ').trim(); + return short + (when ? ' ' + when : '') + (msg ? ' "' + trim(msg, 60) + '"' : ''); + } case 'mcp__hyperhive__request_apply_commit': return short + ' ' + (input.agent || '') + ' @ ' + (input.commit_ref || '').slice(0, 12); case 'mcp__bash__run': {