-
-
-
- {boardChatIssues.length === 0 ? (
-
- No previous chats yet.
-
- ) : (
-
- {boardChatIssues.map((issue) => {
- const active = issue.id === boardIssueId;
- const label = boardChatHistoryLabel(issue);
- const agentLabel = boardChatHistoryAgentLabel(
- issue,
- agentsById,
- ceoAgent ?? null,
- );
- return (
-
- );
- })}
-
- )}
+
+
+ {activeBoardIssue
+ ? `${selectedCompany?.name ?? "Your company"} · updated ${relativeTime(activeBoardIssue.updatedAt)}`
+ : selectedCompany?.name ?? "Your company"}
+
+
+
+
+
+
+ chat history
+
+
+
+
+
+ copy chat link
+
+
+
+
+
+ new chat
+
-
-
+
+
+
+
+ Chat history
+
+ Pick up a previous CEO conversation.
+
+
+
+
+
+
+ {boardChatIssues.length === 0 ? (
+
+ No previous chats yet.
+
+ ) : (
+
+ {boardChatIssues.map((issue) => {
+ const active = issue.id === boardIssueId;
+ const label = boardChatHistoryLabel(issue);
+ const agentLabel = boardChatHistoryAgentLabel(
+ issue,
+ agentsById,
+ ceoAgent ?? null,
+ );
+ return (
+
+ );
+ })}
+
+ )}
+
+
+
{/* Center column — the real-agent conversation. AssistantChat
owns the identity header, message stream, interaction cards,
live/active-run row, and composer. */}
- {boardIssueId ? (
+ {directConversation && !directConversation.issue ? (
+
+
+
+
+ {boardChatUnavailableMessage(directConversation.unavailableReason)}
+
+
+
+
+ ) : boardIssueId ? (
) : (
-
+
)}
@@ -535,6 +711,7 @@ export function BoardChat() {