Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
9489e7e
Disable issue reporter submit button while the issue is being submitted
mjbvz May 1, 2026
9c6da38
agentHost/claude: Phase 6.1 — auth, model config, mapper, lifecycle, …
TylerLeonhardt May 8, 2026
005c4d7
Fix display for free UBB (#315139)
pwang347 May 8, 2026
6537e5e
chat: sync queued agent host messages (#315130)
connor4312 May 8, 2026
f1f9309
Remove the view usage button and update wording (#315141)
pwang347 May 8, 2026
bea36d2
Remove quota exceeded chat titlebar button (#315143)
pwang347 May 8, 2026
107576e
Derive worktree branch name from first message on agent host (#315065)
roblourens May 8, 2026
4c72b54
Add per turn info for CLIs as well (#315152)
pwang347 May 8, 2026
dc21531
Fix /remote when session controller is disabled (#315142)
pierceboggan May 8, 2026
e4067ee
sessions: update context-menu actions to exclude Claude session type …
TylerLeonhardt May 8, 2026
3f37fd9
sessions: move harness picker into new chat header (#315089)
hawkticehurst May 8, 2026
547a00d
Better craft Copilot CLI identity in VS Code (#315086)
anthonykim1 May 8, 2026
5115d4b
Minor cleanup for cli credits (#315164)
pwang347 May 8, 2026
a8af3bc
Add AIC to agent debug panel (#315133)
pwang347 May 8, 2026
67279f7
Add snippet support for CURRENT_MILLISECOND, CURRENT_MILLISECONDS_UNI…
Copilot May 8, 2026
89bab60
Clear details on sign out (#315170)
pwang347 May 8, 2026
f6267e5
Merge pull request #313678 from microsoft/dev/mjbvz/busy-swift
mjbvz May 8, 2026
442300c
Snippets: fix comma in serialized regex transform (#315151)
Copilot May 8, 2026
75837b4
Update wording and fix view usage button (#315179)
pwang347 May 8, 2026
c15ec12
Remove Agents app testing from sanity tests (#315180)
dmitrivMS May 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -965,6 +965,9 @@ export class ChatDebugFileLoggerService extends Disposable implements IChatDebug
...(span.attributes[CopilotChatAttr.REQUEST_SHAPE] !== undefined
? { requestShape: String(span.attributes[CopilotChatAttr.REQUEST_SHAPE]) }
: {}),
...(span.attributes[CopilotChatAttr.COPILOT_USAGE_NANO_AIU] !== undefined
? { copilotUsageNanoAiu: asNumber(span.attributes[CopilotChatAttr.COPILOT_USAGE_NANO_AIU]) }
: {}),
...(isError && span.status.message ? { error: span.status.message } : {}),
},
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ export class ChatInputNotificationContribution extends Disposable {
private _notification: vscode.ChatInputNotification | undefined;
/** Tracks whether the current notification is the quota-exhausted variant. */
private _showingExhausted = false;
/** Whether a copilot token was present on the last {@link _update} call. */
private _hadCopilotToken = false;

private readonly _shownQuotaThresholds = new Set<number>();
private readonly _shownSessionThresholds = new Set<number>();
Expand All @@ -56,6 +58,20 @@ export class ChatInputNotificationContribution extends Disposable {
* to show (or whether to hide).
*/
private _update(): void {
const hasCopilotToken = !!this._authService.copilotToken;
const wasSignedIn = this._hadCopilotToken;
this._hadCopilotToken = hasCopilotToken;

// Detect signed-in → signed-out transition: clear thresholds and hide.
if (wasSignedIn && !hasCopilotToken) {
this._shownQuotaThresholds.clear();
this._shownSessionThresholds.clear();
this._shownWeeklyThresholds.clear();
this._hideNotification();
this._showingExhausted = false;
return;
}

// Priority 1: Quota exhausted — sticky info notification
if (this._chatQuotaService.quotaExhausted) {
this._showExhaustedNotification();
Expand Down Expand Up @@ -202,20 +218,18 @@ export class ChatInputNotificationContribution extends Disposable {
const isFree = !!this._authService.copilotToken?.isFreeUser;

if (isAnonymous || isFree) {
notification.description = vscode.l10n.t("You're getting the most out of Copilot.");
notification.description = vscode.l10n.t('Upgrade to continue past the limit.');
notification.actions = [
{ label: vscode.l10n.t('View Usage'), commandId: 'workbench.action.chat.openCopilotStatus' },
{ label: vscode.l10n.t('Upgrade'), commandId: 'workbench.action.chat.upgradePlan' },
];
} else if (this._chatQuotaService.additionalUsageEnabled) {
notification.description = vscode.l10n.t('Your additional budget will keep Copilot going.');
notification.description = vscode.l10n.t('Additional budget is covering extra usage.');
notification.actions = [
{ label: vscode.l10n.t('View Usage'), commandId: 'workbench.action.chat.openCopilotStatus' },
];
} else {
notification.description = vscode.l10n.t('Manage your budget to keep going.');
notification.description = vscode.l10n.t('Set additional budget to cover extra usage.');
notification.actions = [
{ label: vscode.l10n.t('View Usage'), commandId: 'workbench.action.chat.openCopilotStatus' },
{ label: vscode.l10n.t('Manage Budget'), commandId: 'workbench.action.chat.manageAdditionalSpend' },
];
}
Expand Down
Loading
Loading