From ba11622d0c3e78ce214173e4ce6209973b0ed975 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Fri, 26 Dec 2025 23:32:22 +0100 Subject: [PATCH] Wire up hook custom message renderers to TUI - CustomMessageComponent accepts optional CustomMessageRenderer - If hook provides a renderer, call it and use returned Component inside Box - Falls back to default rendering (label + Markdown) if no renderer or null returned - renderSessionContext gets renderer from hookRunner and passes to component --- AGENTS.md | 1 + .../coding-agent/src/modes/interactive/interactive-mode.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 3990816f..f509ba3b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -89,3 +89,4 @@ Location: `packages/coding-agent/CHANGELOG.md`, `packages/ai/CHANGELOG.md`, `pac 5. **Add new [Unreleased] section** at top of CHANGELOG.md for next cycle, commit it +**CTRICIAL**: NEVER use sed/cat to read a file or a range of a file. Always use the read tool (use offset + limit for ranged reads). \ No newline at end of file diff --git a/packages/coding-agent/src/modes/interactive/interactive-mode.ts b/packages/coding-agent/src/modes/interactive/interactive-mode.ts index 86ca9837..ebd013f2 100644 --- a/packages/coding-agent/src/modes/interactive/interactive-mode.ts +++ b/packages/coding-agent/src/modes/interactive/interactive-mode.ts @@ -1054,7 +1054,8 @@ export class InteractiveMode { // Check if this is a custom_message entry if (entry?.type === "custom_message") { if (entry.display) { - this.chatContainer.addChild(new CustomMessageComponent(entry)); + const renderer = this.session.hookRunner?.getCustomMessageRenderer(entry.customType); + this.chatContainer.addChild(new CustomMessageComponent(entry, renderer)); } continue; }