fix(panel,video): dead dialog triggers behind tooltips; dotted composition ids render

HelpTip nested inside a Dialog/AlertDialog trigger puts the trigger's
click handler on the Tooltip root, which renders no DOM — the agents
Spawn item and the KB Reindex-All / Delete-index confirms were dead.
Tooltips now wrap the triggers. The video renderer accepts interior
single dots in composition ids (release-0.25.0) with '..' still
unrepresentable, and propose_video refuses an unrenderable id at
authoring time.
This commit is contained in:
Renn F
2026-07-16 15:47:08 +02:00
parent 225abcf511
commit 0843bbaaaa
5 changed files with 57 additions and 17 deletions
@@ -70,18 +70,28 @@ export function SpawnAgentDialog({
setInitialPrompt("");
};
// The tooltip must wrap the DialogTrigger, never sit inside it: with
// HelpTip as DialogTrigger's asChild child, the dialog's click handler is
// cloned onto the Tooltip root (not a DOM element) and silently dropped.
const defaultTrigger = (
<HelpTip label="Start this agent's container, optionally pre-claiming a task" side="left">
<DropdownMenuItem onSelect={(e) => e.preventDefault()}>
<Play className="h-4 w-4 mr-2" />
Spawn
</DropdownMenuItem>
</HelpTip>
<DropdownMenuItem onSelect={(e) => e.preventDefault()}>
<Play className="h-4 w-4 mr-2" />
Spawn
</DropdownMenuItem>
);
return (
<Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger asChild>{trigger || defaultTrigger}</DialogTrigger>
{trigger ? (
<DialogTrigger asChild>{trigger}</DialogTrigger>
) : (
<HelpTip
label="Start this agent's container, optionally pre-claiming a task"
side="left"
>
<DialogTrigger asChild>{defaultTrigger}</DialogTrigger>
</HelpTip>
)}
<DialogContent>
<DialogHeader>
<DialogTitle>Spawn {agentName}</DialogTitle>
@@ -555,14 +555,14 @@ function KnowledgeBaseBrowserContent() {
<CardTitle className="text-sm flex items-center justify-between">
<span>Summary</span>
<AlertDialog>
<AlertDialogTrigger asChild>
<HelpTip label="Rebuilds the Documentation index from the repo's docs/ tree — the other categories (journals, conversations, etc.) are populated live by agent activity, not by this button">
<HelpTip label="Rebuilds the Documentation index from the repo's docs/ tree — the other categories (journals, conversations, etc.) are populated live by agent activity, not by this button">
<AlertDialogTrigger asChild>
<Button size="sm" variant="destructive">
<RefreshCw className="h-3 w-3 mr-1" />
Reindex All
</Button>
</HelpTip>
</AlertDialogTrigger>
</AlertDialogTrigger>
</HelpTip>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle>Reindex All Data?</AlertDialogTitle>
@@ -679,8 +679,8 @@ function KnowledgeBaseBrowserContent() {
</Button>
</HelpTip>
<AlertDialog>
<AlertDialogTrigger asChild>
<HelpTip label="Delete this index and all its documents">
<HelpTip label="Delete this index and all its documents">
<AlertDialogTrigger asChild>
<Button
size="sm"
variant="outline"
@@ -689,8 +689,8 @@ function KnowledgeBaseBrowserContent() {
>
<Trash2 className="h-3 w-3" />
</Button>
</HelpTip>
</AlertDialogTrigger>
</AlertDialogTrigger>
</HelpTip>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle>