Compare commits

...
Author SHA1 Message Date
Thomas Camlong 4ac3a9d97c feat: add assistant widget to demo dashboard
Include the Homarr Assistant widget in the demo board so visitors can
try the assistant directly from the mock/demo dashboard. The widget
renders in its enabled state because demo mode reports the assistant as
available.
2026-08-07 15:01:23 +02:00
Thomas b14756874e fix: handle missing message in assistant generation telemetry (#6528) 2026-08-07 14:59:59 +02:00
3 changed files with 4 additions and 2 deletions

No files matched your search

@@ -930,7 +930,7 @@ const RequestTelemetry = () => {
const generationQuery = clientApi.assistant.getGenerationTelemetry.useQuery(
{ threadId: threadId ?? "", messageId },
{
enabled: opened && persistedTelemetry?.provider === "openrouter" && Boolean(threadId),
enabled: opened && persistedTelemetry?.provider === "openrouter" && Boolean(threadId) && Boolean(messageId),
refetchInterval: (query) =>
query.state.data?.complete === false && query.state.dataUpdateCount < 6 ? 1500 : false,
retry: 2,
+1 -1
View File
@@ -738,7 +738,7 @@ export const assistantRouter = createTRPCRouter({
}),
getConfigurationAsync(ctx.db),
]);
if (!message) throw new TRPCError({ code: "NOT_FOUND", message: "Message not found." });
if (!message) return { complete: true, generations: [] };
if (configuration?.provider !== "openrouter" || !configuration.encryptedApiKey) {
return { complete: true, generations: [] };
}
+2
View File
@@ -512,6 +512,8 @@ const buildDemoWidgets = (appIds: string[]): DemoWidget[] => [
{ kind: "notebook", width: 4, height: 4, needsIntegration: false },
{ kind: "dockerContainers", width: 6, height: 2, needsIntegration: false },
{ kind: "weather", width: 2, height: 1, needsIntegration: false },
// Row 12: assistant
{ kind: "assistant", width: 8, height: 4, needsIntegration: false },
];
const seedDemoUserAsync = async (db: Database) => {