Skip to content

Commit 5a0b823

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. move
1 parent bf85c35 commit 5a0b823

File tree

3 files changed

+32
-10
lines changed

3 files changed

+32
-10
lines changed

src/commands/explainBase.ts

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,37 @@ export abstract class ExplainCommandBase extends GlCommandBase {
5555
return svc;
5656
}
5757

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

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

6490
showMarkdownPreview(documentUri);
6591
}

src/commands/generateRebase.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -537,21 +537,17 @@ function generateRebaseMarkdown(
537537
result: AIRebaseResult,
538538
title = 'Rebase Commits',
539539
telemetryEnabled: boolean,
540-
feedbackContext?: AIFeedbackContext,
540+
feedbackContext: AIFeedbackContext,
541541
): { content: string; metadata: MarkdownContentMetadata } {
542542
const metadata: MarkdownContentMetadata = {
543543
header: {
544544
title: title,
545545
aiModel: result.model.name,
546546
subtitle: 'Explanation',
547547
},
548+
feedbackContext: feedbackContext as unknown as Record<string, unknown>,
548549
};
549550

550-
// Always store feedback context if available, but only show UI when telemetry is enabled
551-
if (feedbackContext) {
552-
metadata.feedbackContext = feedbackContext as unknown as Record<string, unknown>;
553-
}
554-
555551
let markdown = '';
556552
if (result.commits.length === 0) {
557553
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)