Skip to content

Commit 899c772

Browse files
committed
Merge branch 'zoo-port/nag-removals' into zoo-port/integration
# Conflicts: # packages/types/src/vscode-extension-host.ts # webview-ui/src/components/chat/ChatView.tsx
2 parents 47be1c1 + 0ff2a20 commit 899c772

40 files changed

Lines changed: 57 additions & 1713 deletions

packages/types/src/global-settings.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,8 @@ export const globalSettingsSchema = z.object({
8383
listApiConfigMeta: z.array(providerSettingsEntrySchema).optional(),
8484
pinnedApiConfigs: z.record(z.string(), z.boolean()).optional(),
8585

86-
lastShownAnnouncementId: z.string().optional(),
8786
customInstructions: z.string().optional(),
8887
taskHistory: z.array(historyItemSchema).optional(),
89-
dismissedUpsells: z.array(z.string()).optional(),
9088

9189
// Image generation settings (experimental) - flattened for simplicity
9290
imageGenerationProvider: z.enum(["openrouter", "roo"]).optional(),
@@ -326,8 +324,6 @@ export const isGlobalStateKey = (key: string): key is Keys<GlobalState> =>
326324
export const EVALS_SETTINGS: RooCodeSettings = {
327325
apiProvider: "openrouter",
328326

329-
lastShownAnnouncementId: "jul-09-2025-3-23-0",
330-
331327
pinnedApiConfigs: {},
332328

333329
autoApprovalEnabled: true,

packages/types/src/vscode-extension-host.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ export interface ExtensionMessage {
8989
| "showEditMessageDialog"
9090
| "commands"
9191
| "insertTextIntoTextarea"
92-
| "dismissedUpsells"
9392
| "organizationSwitchResult"
9493
| "interactionRequired"
9594
| "customToolsResult"
@@ -185,7 +184,6 @@ export interface ExtensionMessage {
185184
context?: string
186185
commands?: Command[]
187186
queuedMessages?: QueuedMessage[]
188-
list?: string[] // For dismissedUpsells
189187
organizationId?: string | null // For organizationSwitchResult
190188
tools?: SerializedCustomToolDefinition[] // For customToolsResult
191189
skills?: SkillMetadata[] // For skills response
@@ -273,7 +271,6 @@ export type ExtensionState = Pick<
273271
| "listApiConfigMeta"
274272
| "pinnedApiConfigs"
275273
| "customInstructions"
276-
| "dismissedUpsells"
277274
| "autoApprovalEnabled"
278275
| "yoloMode"
279276
| "alwaysAllowReadOnly"
@@ -337,7 +334,6 @@ export type ExtensionState = Pick<
337334
currentTaskTodos?: TodoItem[] // Initial todos for the current task
338335
apiConfiguration: ProviderSettings
339336
uriScheme?: string
340-
shouldShowAnnouncement: boolean
341337
activeConversations?: ActiveConversationSummary[]
342338

343339
taskHistory: HistoryItem[]
@@ -390,7 +386,6 @@ export type ExtensionState = Pick<
390386
hasOpenedModeSelector: boolean
391387
openRouterImageApiKey?: string
392388
messageQueue?: QueuedMessage[]
393-
lastShownAnnouncementId?: string
394389
apiModelId?: string
395390
mcpServers?: McpServer[]
396391
mdmCompliant?: boolean
@@ -455,7 +450,6 @@ export interface WebviewMessage {
455450
| "askResponse"
456451
| "terminalOperation"
457452
| "clearTask"
458-
| "didShowAnnouncement"
459453
| "selectImages"
460454
| "exportCurrentTask"
461455
| "shareCurrentTask"
@@ -578,8 +572,6 @@ export interface WebviewMessage {
578572
| "queueMessage"
579573
| "removeQueuedMessage"
580574
| "editQueuedMessage"
581-
| "dismissUpsell"
582-
| "getDismissedUpsells"
583575
| "openMarkdownPreview"
584576
| "updateSettings"
585577
| "allowedCommands"
@@ -675,8 +667,6 @@ export interface WebviewMessage {
675667
visibility?: ShareVisibility // For share visibility
676668
hasContent?: boolean // For checkRulesDirectoryResult
677669
checkOnly?: boolean // For deleteCustomMode check
678-
upsellId?: string // For dismissUpsell
679-
list?: string[] // For dismissedUpsells response
680670
organizationId?: string | null // For organization switching
681671
useProviderSignup?: boolean // For rooCloudSignIn to use provider signup flow
682672
codeIndexSettings?: {

src/core/webview/ClineProvider.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,6 @@ export class ClineProvider
174174

175175
public isViewLaunched = false
176176
public settingsImportedAt?: number
177-
public readonly latestAnnouncementId = "apr-2026-v3.53.0-community-handoff-gpt55-opus47" // v3.53.0 Community handoff, GPT-5.5, Claude Opus 4.7, checkpoint navigation
178177
public readonly providerSettingsManager: ProviderSettingsManager
179178
public readonly customModesManager: CustomModesManager
180179

@@ -2312,7 +2311,6 @@ export class ClineProvider
23122311

23132312
const {
23142313
apiConfiguration,
2315-
lastShownAnnouncementId,
23162314
customInstructions,
23172315
alwaysAllowReadOnly,
23182316
alwaysAllowReadOnlyOutsideWorkspace,
@@ -2484,8 +2482,6 @@ export class ClineProvider
24842482
ttsSpeed: ttsSpeed ?? 1.0,
24852483
enableCheckpoints: enableCheckpoints ?? true,
24862484
checkpointTimeout: checkpointTimeout ?? DEFAULT_CHECKPOINT_TIMEOUT_SECONDS,
2487-
shouldShowAnnouncement:
2488-
telemetrySetting !== "unset" && lastShownAnnouncementId !== this.latestAnnouncementId,
24892485
allowedCommands: mergedAllowedCommands,
24902486
deniedCommands: mergedDeniedCommands,
24912487
soundVolume: soundVolume ?? 0.5,
@@ -2589,10 +2585,7 @@ export class ClineProvider
25892585
*/
25902586

25912587
async getState(): Promise<
2592-
Omit<
2593-
ExtensionState,
2594-
"clineMessages" | "renderContext" | "hasOpenedModeSelector" | "version" | "shouldShowAnnouncement"
2595-
>
2588+
Omit<ExtensionState, "clineMessages" | "renderContext" | "hasOpenedModeSelector" | "version">
25962589
> {
25972590
const stateValues = this.contextProxy.getValues()
25982591
const customModes = await this.customModesManager.getCustomModes()
@@ -2663,7 +2656,6 @@ export class ClineProvider
26632656
// Return the same structure as before.
26642657
return {
26652658
apiConfiguration: providerSettings,
2666-
lastShownAnnouncementId: stateValues.lastShownAnnouncementId,
26672659
customInstructions: stateValues.customInstructions,
26682660
apiModelId: stateValues.apiModelId,
26692661
yoloMode: stateValues.yoloMode ?? false,

src/core/webview/__tests__/ClineProvider.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,6 @@ describe("ClineProvider", () => {
521521
version: "1.0.0",
522522
clineMessages: [],
523523
taskHistory: [],
524-
shouldShowAnnouncement: false,
525524
apiConfiguration: {
526525
apiProvider: "openrouter",
527526
},

src/core/webview/webviewMessageHandler.ts

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -801,10 +801,6 @@ export const webviewMessageHandler = async (
801801
await provider.clearTask()
802802
await provider.postStateToWebview()
803803
break
804-
case "didShowAnnouncement":
805-
await updateGlobalState("lastShownAnnouncementId", provider.latestAnnouncementId)
806-
await provider.postStateToWebview()
807-
break
808804
case "selectImages":
809805
const images = await selectImages()
810806
await provider.postMessageToWebview({
@@ -3333,41 +3329,6 @@ export const webviewMessageHandler = async (
33333329
break
33343330
}
33353331

3336-
case "dismissUpsell": {
3337-
if (message.upsellId) {
3338-
try {
3339-
// Get current list of dismissed upsells
3340-
const dismissedUpsells = getGlobalState("dismissedUpsells") || []
3341-
3342-
// Add the new upsell ID if not already present
3343-
let updatedList = dismissedUpsells
3344-
if (!dismissedUpsells.includes(message.upsellId)) {
3345-
updatedList = [...dismissedUpsells, message.upsellId]
3346-
await updateGlobalState("dismissedUpsells", updatedList)
3347-
}
3348-
3349-
// Send updated list back to webview (use the already computed updatedList)
3350-
await provider.postMessageToWebview({
3351-
type: "dismissedUpsells",
3352-
list: updatedList,
3353-
})
3354-
} catch (error) {
3355-
// Fail silently as per Bruno's comment - it's OK to fail silently in this case
3356-
provider.log(`Failed to dismiss upsell: ${error instanceof Error ? error.message : String(error)}`)
3357-
}
3358-
}
3359-
break
3360-
}
3361-
case "getDismissedUpsells": {
3362-
// Send the current list of dismissed upsells to the webview
3363-
const dismissedUpsells = getGlobalState("dismissedUpsells") || []
3364-
await provider.postMessageToWebview({
3365-
type: "dismissedUpsells",
3366-
list: dismissedUpsells,
3367-
})
3368-
break
3369-
}
3370-
33713332
case "openMarkdownPreview": {
33723333
if (message.text) {
33733334
try {

webview-ui/src/App.tsx

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ const App = () => {
5555
didHydrateState,
5656
showWelcome,
5757
settingsImportedAt,
58-
shouldShowAnnouncement,
5958
telemetrySetting,
6059
telemetryKey,
6160
machineId,
@@ -66,7 +65,6 @@ const App = () => {
6665
// Create a persistent state manager
6766
const marketplaceStateManager = useMemo(() => new MarketplaceViewStateManager(), [])
6867

69-
const [showAnnouncement, setShowAnnouncement] = useState(false)
7068
const [tab, setTab] = useState<Tab>("chat")
7169
const handledImportRef = useRef<number | undefined>(undefined)
7270

@@ -164,13 +162,6 @@ const App = () => {
164162

165163
useEvent("message", onMessage)
166164

167-
useEffect(() => {
168-
if (shouldShowAnnouncement && tab === "chat") {
169-
setShowAnnouncement(true)
170-
vscode.postMessage({ type: "didShowAnnouncement" })
171-
}
172-
}, [shouldShowAnnouncement, tab])
173-
174165
useEffect(() => {
175166
const isRecoverableTab = tab === "settings" || tab === "marketplace"
176167

@@ -246,12 +237,7 @@ const App = () => {
246237
targetTab={currentMarketplaceTab as "mcp" | "mode" | undefined}
247238
/>
248239
)}
249-
<ChatView
250-
ref={chatViewRef}
251-
isHidden={tab !== "chat"}
252-
showAnnouncement={showAnnouncement}
253-
hideAnnouncement={() => setShowAnnouncement(false)}
254-
/>
240+
<ChatView ref={chatViewRef} isHidden={tab !== "chat"} />
255241
{deleteMessageDialogState.hasCheckpoint ? (
256242
<MemoizedCheckpointRestoreDialog
257243
open={deleteMessageDialogState.isOpen}

webview-ui/src/__tests__/App.spec.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@ describe("App", () => {
166166
mockUseExtensionState.mockReturnValue({
167167
didHydrateState: true,
168168
showWelcome: false,
169-
shouldShowAnnouncement: false,
170169
experiments: {},
171170
language: "en",
172171
telemetrySetting: "enabled",
@@ -191,7 +190,6 @@ describe("App", () => {
191190
const createSetupIncompleteState = () => ({
192191
didHydrateState: true,
193192
showWelcome: true,
194-
shouldShowAnnouncement: false,
195193
experiments: {},
196194
language: "en",
197195
telemetrySetting: "enabled",
@@ -209,7 +207,6 @@ describe("App", () => {
209207
mockUseExtensionState.mockReturnValue({
210208
didHydrateState: true,
211209
showWelcome: true,
212-
shouldShowAnnouncement: false,
213210
experiments: {},
214211
language: "en",
215212
telemetrySetting: "enabled",
@@ -242,7 +239,6 @@ describe("App", () => {
242239
mockUseExtensionState.mockReturnValue({
243240
didHydrateState: true,
244241
showWelcome: true,
245-
shouldShowAnnouncement: false,
246242
experiments: {},
247243
language: "en",
248244
telemetrySetting: "enabled",
@@ -262,7 +258,6 @@ describe("App", () => {
262258
mockUseExtensionState.mockReturnValue({
263259
didHydrateState: true,
264260
showWelcome: true,
265-
shouldShowAnnouncement: false,
266261
experiments: {},
267262
language: "en",
268263
telemetrySetting: "enabled",

0 commit comments

Comments
 (0)