fix(mcp-server): fix debug-pack cluster rendering to use correct field names, tighten TelemetryCluster type; fix test mock to include all required fields

This commit is contained in:
saravanakumardb1 2026-03-05 12:33:43 -08:00
parent 6cee9c20af
commit c04c78aff4
2 changed files with 13 additions and 6 deletions

View File

@ -30,19 +30,24 @@ const mockClusters = [
id: 'abc123:202503',
pk: 'lysnrai:ios:keyboard',
fingerprint: 'abc123',
severity: 'error',
severity: 'error' as const,
totalCount: 42,
firstSeenAt: '2026-03-01T00:00:00Z',
lastSeenAt: '2026-03-05T10:00:00Z',
platform: 'ios',
module: 'keyboard',
eventName: 'insertText.failed',
sampleMessage: 'insertText returned noop',
status: 'open',
status: 'open' as const,
},
];
beforeEach(() => {
vi.clearAllMocks();
vi.mocked(telemetryClusters).mockResolvedValue({ clusters: mockClusters } as never);
vi.mocked(telemetryClusters).mockResolvedValue({
clusters: mockClusters,
total: mockClusters.length,
});
vi.mocked(diagnosticsCreateSession).mockResolvedValue({
id: 'sess_001',
status: 'active',

View File

@ -41,7 +41,7 @@ registerTool({
const generatedAt = new Date().toISOString();
// Step 1: collect error clusters
let clusters: unknown[] = [];
let clusters: import('../../lib/platform-client.js').TelemetryCluster[] = [];
let clusterError: string | undefined;
try {
const result = await telemetryClusters({ from: args.from, to: args.to }, opts);
@ -88,9 +88,11 @@ registerTool({
lines.push('No error clusters found in the requested time range.');
} else {
for (const c of clusters.slice(0, 10)) {
const cl = c as { fingerprint?: string; count?: number; lastSeen?: string };
lines.push(
`- **${cl.fingerprint ?? '(unknown)'}** — ${cl.count ?? '?'} events, last seen ${cl.lastSeen ?? '?'}`
`- **[${c.severity.toUpperCase()}]** \`${c.id}\`${c.totalCount} events` +
` | platform: ${c.platform} | module: ${c.module}` +
` | last seen: ${c.lastSeenAt}` +
(c.sampleMessage ? ` | "${c.sampleMessage}"` : '')
);
}
if (clusters.length > 10) lines.push(`… and ${clusters.length - 10} more clusters`);