Improve UI: inline goal editing, InlineEditor auto-sizing, and agent detail transcript

Add inline editing for goal title/description with mutation support. Enhance
GoalProperties with clickable status/level pickers and linked owner/parent
navigation. Improve InlineEditor with auto-sizing textarea for multiline mode.
Update AgentDetail to redact secrets in env display, render thinking/user
transcript entries, and pretty-print tool results.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Forgotten
2026-02-18 16:46:55 -06:00
parent fe6a8687c1
commit f9abab662c
6 changed files with 308 additions and 46 deletions

View File

@@ -63,6 +63,9 @@ export function parseClaudeStdoutLine(line: string, ts: string): TranscriptEntry
if (blockType === "text") {
const text = typeof block.text === "string" ? block.text : "";
if (text) entries.push({ kind: "assistant", ts, text });
} else if (blockType === "thinking") {
const text = typeof block.thinking === "string" ? block.thinking : "";
if (text) entries.push({ kind: "thinking", ts, text });
} else if (blockType === "tool_use") {
entries.push({
kind: "tool_call",
@@ -83,7 +86,10 @@ export function parseClaudeStdoutLine(line: string, ts: string): TranscriptEntry
const block = asRecord(blockRaw);
if (!block) continue;
const blockType = typeof block.type === "string" ? block.type : "";
if (blockType === "tool_result") {
if (blockType === "text") {
const text = typeof block.text === "string" ? block.text : "";
if (text) entries.push({ kind: "user", ts, text });
} else if (blockType === "tool_result") {
const toolUseId = typeof block.tool_use_id === "string" ? block.tool_use_id : "";
const isError = block.is_error === true;
let text = "";
@@ -101,7 +107,7 @@ export function parseClaudeStdoutLine(line: string, ts: string): TranscriptEntry
}
}
if (entries.length > 0) return entries;
// fall through to stdout for user messages without tool_result blocks
// fall through to stdout for user messages without recognized blocks
}
if (type === "result") {