{info.title || `${info.kind} ${shortId(info.id)}`}

{#if info.pending_question} question pending {/if}
{#snippet child({ props })} {/snippet} Copy id { newTitle = info.title ?? ""; renameOpen = true; }} > Rename {#if info.parent && info.status === "open"} run(() => client.merge(info.id), "Merged into the parent")} > Merge into parent {/if} {#if info.status === "open"} run(() => client.update(info.id, { status: "closed" }), "Closed")} > Close run( () => client.update(info.id, { status: "archived" }), "Archived" )} > Archive {:else} run(() => client.update(info.id, { status: "open" }), "Reopened")} > Reopen {/if}
{info.agent} via {info.origin} {#if info.parent} parent {shortId(info.parent)} {/if} {shortId(info.id)} {info.live ? "session live" : "no live session"} {info.busy ? " ยท busy" : ""} last activity {fmtRelative(info.last_activity_at)} {#if info.queue.length > 0} {info.queue.length} queued {/if}
{#if windows.length > 0}
{#each windows as window (window.frontend + window.external_id)} {window.frontend} {clip(window.external_id, WINDOW_MAX)} {/each}
{/if}
Branch off this conversation A branch gets its own window and session and ends with a merge back into this thread.
{ seed = value; }} type="single" value={seed} > {SEEDS.find((s) => s.value === seed)?.label} {#each SEEDS as option (option.value)} {/each}
Rename