Skip to content

Commit e067393

Browse files
committed
Require feedback context in markdown metadata
Ensures feedback context is always included in markdown document metadata, improving consistency and reliability for downstream consumers. Updates function signatures and metadata construction to treat feedback context as required, removing conditional logic that previously made it optional.
1 parent e1121e7 commit e067393

File tree

3 files changed

+34
-10
lines changed

3 files changed

+34
-10
lines changed

src/commands/explainBase.ts

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,39 @@ export abstract class ExplainCommandBase extends GlCommandBase {
5454
return svc;
5555
}
5656

57-
protected openDocument(result: AISummarizeResult, path: string, metadata: MarkdownContentMetadata): void {
58-
const headerContent = getMarkdownHeaderContent(metadata, this.container.telemetry.enabled);
57+
protected openDocument(
58+
result: AISummarizeResult,
59+
path: string,
60+
metadata: Omit<MarkdownContentMetadata, 'feedbackContext'>,
61+
): void {
62+
// Add feedback context to metadata
63+
const feedbackContext = this.container.aiFeedback.createFeedbackContext(
64+
'explain',
65+
{
66+
id: result.model.id,
67+
providerId: result.model.provider.id,
68+
providerName: result.model.provider.name,
69+
},
70+
{
71+
usage: result.usage,
72+
outputLength: result.content?.length,
73+
},
74+
) as unknown as Record<string, unknown>;
75+
76+
const enrichedMetadata = {
77+
...metadata,
78+
feedbackContext: feedbackContext,
79+
};
80+
81+
const headerContent = getMarkdownHeaderContent(enrichedMetadata, this.container.telemetry.enabled);
5982
const content = `${headerContent}\n\n${result.parsed.summary}\n\n${result.parsed.body}`;
6083

61-
const documentUri = this.container.markdown.openDocument(content, path, metadata.header.title, metadata);
84+
const documentUri = this.container.markdown.openDocument(
85+
content,
86+
path,
87+
metadata.header.title,
88+
enrichedMetadata,
89+
);
6290

6391
showMarkdownPreview(documentUri);
6492
}

src/commands/generateRebase.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -539,21 +539,17 @@ function generateRebaseMarkdown(
539539
result: AIRebaseResult,
540540
title = 'Rebase Commits',
541541
telemetryEnabled: boolean,
542-
feedbackContext?: AIFeedbackContext,
542+
feedbackContext: AIFeedbackContext,
543543
): { content: string; metadata: MarkdownContentMetadata } {
544544
const metadata: MarkdownContentMetadata = {
545545
header: {
546546
title: title,
547547
aiModel: result.model.name,
548548
subtitle: 'Explanation',
549549
},
550+
feedbackContext: feedbackContext as unknown as Record<string, unknown>,
550551
};
551552

552-
// Always store feedback context if available, but only show UI when telemetry is enabled
553-
if (feedbackContext) {
554-
metadata.feedbackContext = feedbackContext as unknown as Record<string, unknown>;
555-
}
556-
557553
let markdown = '';
558554
if (result.commits.length === 0) {
559555
markdown = 'No Commits Generated';

src/documents/markdown.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export interface MarkdownContentMetadata {
1818
name: GlCommands;
1919
args?: Record<string, unknown>;
2020
};
21-
feedbackContext?: Record<string, unknown>;
21+
feedbackContext: Record<string, unknown>;
2222
}
2323

2424
export class MarkdownContentProvider implements TextDocumentContentProvider {

0 commit comments

Comments
 (0)