diff --git a/packages/cli/src/services/insight/generators/DataProcessor.ts b/packages/cli/src/services/insight/generators/DataProcessor.ts index 5284dc110..c73209bd3 100644 --- a/packages/cli/src/services/insight/generators/DataProcessor.ts +++ b/packages/cli/src/services/insight/generators/DataProcessor.ts @@ -185,6 +185,11 @@ export class DataProcessor { schema: INSIGHT_SCHEMA, abortSignal: AbortSignal.timeout(60000), // 1 minute timeout per session }); + + if (!result || Object.keys(result).length === 0) { + return null; + } + return { ...(result as unknown as SessionFacets), session_id: records[0].sessionId, @@ -584,7 +589,7 @@ export class DataProcessor { ], }; - const limit = pLimit(4); + const limit = pLimit(2); try { const [ @@ -644,6 +649,39 @@ export class DataProcessor { ), ]); + console.log( + '🚀 ~ DataProcessor ~ generateQualitativeInsights ~ impressiveWorkflows:', + impressiveWorkflows, + ); + console.log( + '🚀 ~ DataProcessor ~ generateQualitativeInsights ~ atAGlance:', + atAGlance, + ); + console.log( + '🚀 ~ DataProcessor ~ generateQualitativeInsights ~ interactionStyle:', + interactionStyle, + ); + console.log( + '🚀 ~ DataProcessor ~ generateQualitativeInsights ~ improvements:', + improvements, + ); + console.log( + '🚀 ~ DataProcessor ~ generateQualitativeInsights ~ memorableMoment:', + memorableMoment, + ); + console.log( + '🚀 ~ DataProcessor ~ generateQualitativeInsights ~ frictionPoints:', + frictionPoints, + ); + console.log( + '🚀 ~ DataProcessor ~ generateQualitativeInsights ~ futureOpportunities:', + futureOpportunities, + ); + console.log( + '🚀 ~ DataProcessor ~ generateQualitativeInsights ~ projectAreas:', + projectAreas, + ); + return { impressiveWorkflows, projectAreas, diff --git a/packages/cli/src/services/insight/templates/insight-template.html b/packages/cli/src/services/insight/templates/insight-template.html index a3506dcc7..2be91da35 100644 --- a/packages/cli/src/services/insight/templates/insight-template.html +++ b/packages/cli/src/services/insight/templates/insight-template.html @@ -11,20 +11,6 @@
-
-

- Insights -

-

- Qwen Code Insights -

-

- Your personalized coding journey and patterns -

-
-
diff --git a/packages/cli/src/services/insight/templates/scripts/insight-app.js b/packages/cli/src/services/insight/templates/scripts/insight-app.js index 63441f4c7..25b66a359 100644 --- a/packages/cli/src/services/insight/templates/scripts/insight-app.js +++ b/packages/cli/src/services/insight/templates/scripts/insight-app.js @@ -5,6 +5,26 @@ const { useState, useRef, useEffect } = React; +// Header Component +function Header({ data }) { + const { totalMessages, totalSessions } = data; + return ( +
+

+ Insights +

+

+ Qwen Code Insights +

+

+ {totalMessages + ? `${totalMessages} messages across ${totalSessions} sessions` + : 'Your personalized coding journey and patterns'} +

+
+ ); +} + // Main App Component function InsightApp({ data }) { if (!data) { @@ -17,6 +37,8 @@ function InsightApp({ data }) { return (
+
+ {data.qualitative && ( <> @@ -259,18 +281,18 @@ function Improvements({ qualitative }) { {/* Qwen.md Additions */} {improvements.Qwen_md_additions?.length > 0 && ( -
+

Suggested Qwen.md Additions

Just copy this into Qwen Code to add it to your Qwen.md.

-
+
{/* Note: "Copy All" would require tracking state of all checkboxes, keeping it simple for now */}
{improvements.Qwen_md_additions.map((item, idx) => ( -
+
{item.addition} diff --git a/packages/cli/src/services/insight/templates/styles/base.css b/packages/cli/src/services/insight/templates/styles/base.css index a2c80c6bb..b2818fbfa 100644 --- a/packages/cli/src/services/insight/templates/styles/base.css +++ b/packages/cli/src/services/insight/templates/styles/base.css @@ -794,22 +794,22 @@ body { margin-bottom: 4px; } -.claude-md-section { +.qwen-md-section { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; - padding: 16px; + padding: 12px; margin-bottom: 20px; } -.claude-md-section h3 { - font-size: 14px; +.qwen-md-section h3 { + font-size: 13px; font-weight: 600; color: #1e40af; - margin: 0 0 12px 0; + margin: 0 0 8px 0; } -.claude-md-actions { - margin-bottom: 12px; - padding-bottom: 12px; +.qwen-md-actions { + margin-bottom: 8px; + padding-bottom: 8px; border-bottom: 1px solid #dbeafe; } .copy-all-btn { @@ -817,8 +817,8 @@ body { color: white; border: none; border-radius: 4px; - padding: 6px 12px; - font-size: 12px; + padding: 4px 10px; + font-size: 11px; cursor: pointer; font-weight: 500; transition: all 0.2s; @@ -829,15 +829,15 @@ body { .copy-all-btn.copied { background: #16a34a; } -.claude-md-item { +.qwen-md-item { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; - padding: 10px 0; + padding: 8px 0; border-bottom: 1px solid #dbeafe; } -.claude-md-item:last-child { +.qwen-md-item:last-child { border-bottom: none; } .cmd-checkbox { @@ -845,9 +845,9 @@ body { } .cmd-code { background: white; - padding: 8px 12px; + padding: 6px 10px; border-radius: 4px; - font-size: 12px; + font-size: 11px; color: #1e40af; border: 1px solid #bfdbfe; font-family: monospace; @@ -857,10 +857,10 @@ body { flex: 1; } .cmd-why { - font-size: 12px; + font-size: 11px; color: #64748b; width: 100%; - padding-left: 24px; + padding-left: 20px; margin-top: 4px; }