Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gemini-cli for openSUSE:Factory checked in at 2026-03-17 19:05:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gemini-cli (Old) and /work/SRC/openSUSE:Factory/.gemini-cli.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gemini-cli" Tue Mar 17 19:05:14 2026 rev:15 rq:1339518 version:0.33.2 Changes: -------- --- /work/SRC/openSUSE:Factory/gemini-cli/gemini-cli.changes 2026-03-12 22:25:27.386078360 +0100 +++ /work/SRC/openSUSE:Factory/.gemini-cli.new.8177/gemini-cli.changes 2026-03-17 19:07:16.207565732 +0100 @@ -1,0 +2,13 @@ +Tue Mar 17 08:47:00 UTC 2026 - Dirk Müller <[email protected]> + +- update to 0.33.2: + * fix(patch): cherry-pick 48130eb to release/v0.33.1-pr-22665 + [CONFLICTS] + +------------------------------------------------------------------- +Mon Mar 16 09:39:03 UTC 2026 - Michael Vetter <[email protected]> + +- Update to 0.33.1: + * fix(patch): cherry-pick 8432bce #22206 + +------------------------------------------------------------------- Old: ---- gemini-cli-0.33.0.js New: ---- gemini-cli-0.33.2.js ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gemini-cli.spec ++++++ --- /var/tmp/diff_new_pack.TTjSbK/_old 2026-03-17 19:07:16.851592421 +0100 +++ /var/tmp/diff_new_pack.TTjSbK/_new 2026-03-17 19:07:16.855592587 +0100 @@ -17,7 +17,7 @@ Name: gemini-cli -Version: 0.33.0 +Version: 0.33.2 Release: 0 Summary: An AI agent that brings the power of Gemini directly into your terminal License: Apache-2.0 ++++++ gemini-cli-0.33.0.js -> gemini-cli-0.33.2.js ++++++ --- /work/SRC/openSUSE:Factory/gemini-cli/gemini-cli-0.33.0.js 2026-03-12 22:25:26.886057687 +0100 +++ /work/SRC/openSUSE:Factory/.gemini-cli.new.8177/gemini-cli-0.33.2.js 2026-03-17 19:07:16.187564903 +0100 @@ -27902,7 +27902,7 @@ }); return value; }, - useEffect: function useEffect93(create3) { + useEffect: function useEffect94(create3) { nextHook(); hookLog.push({ displayName: null, @@ -104242,7 +104242,7 @@ return safeJsonStringify(this.params); } }; - DiscoveredMCPTool = class _DiscoveredMCPTool extends BaseDeclarativeTool { + DiscoveredMCPTool = class extends BaseDeclarativeTool { mcpTool; serverName; serverToolName; @@ -104294,9 +104294,6 @@ getFullyQualifiedName() { return generateValidName(`${this.serverName}${MCP_QUALIFIED_NAME_SEPARATOR}${this.serverToolName}`); } - asFullyQualifiedTool() { - return new _DiscoveredMCPTool(this.mcpTool, this.serverName, this.serverToolName, this.description, this.parameterSchema, this.messageBus, this.trust, this.isReadOnly, this.getFullyQualifiedName(), this.cliConfig, this.extensionName, this.extensionId, this._toolAnnotations); - } createInvocation(params, messageBus, _toolName, _displayName) { return new DiscoveredMCPToolInvocation(this.mcpTool, this.serverName, this.serverToolName, _displayName ?? this.displayName, messageBus, this.trust, params, this.cliConfig, this.description, this.parameterSchema, this._toolAnnotations); } @@ -116485,7 +116482,7 @@ } } function isPreviewModel(model) { - return model === PREVIEW_GEMINI_MODEL || model === PREVIEW_GEMINI_3_1_MODEL || model === PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_MODEL_AUTO || model === GEMINI_MODEL_ALIAS_AUTO; + return model === PREVIEW_GEMINI_MODEL || model === PREVIEW_GEMINI_3_1_MODEL || model === PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_MODEL_AUTO || model === GEMINI_MODEL_ALIAS_AUTO || model === PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL; } function isProModel(model) { return model.toLowerCase().includes("pro"); @@ -116529,7 +116526,7 @@ return model !== PREVIEW_GEMINI_3_1_MODEL && model !== PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL; } } -var PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL, PREVIEW_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, VALID_GEMINI_MODELS, PREVIEW_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_AUTO, GEMINI_MODEL_ALIAS_PRO, GEMINI_MODEL_ALIAS_FLASH, GEMINI_MODEL_ALIAS_FLASH_LITE, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_THINKING_MODE; +var PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL, PREVIEW_GEMINI_FLASH_MODEL, PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, VALID_GEMINI_MODELS, PREVIEW_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_AUTO, GEMINI_MODEL_ALIAS_PRO, GEMINI_MODEL_ALIAS_FLASH, GEMINI_MODEL_ALIAS_FLASH_LITE, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_THINKING_MODE; var init_models = __esm({ "packages/core/dist/src/config/models.js"() { "use strict"; @@ -116537,6 +116534,7 @@ PREVIEW_GEMINI_3_1_MODEL = "gemini-3.1-pro-preview"; PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL = "gemini-3.1-pro-preview-customtools"; PREVIEW_GEMINI_FLASH_MODEL = "gemini-3-flash-preview"; + PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL = "gemini-3.1-flash-lite-preview"; DEFAULT_GEMINI_MODEL = "gemini-2.5-pro"; DEFAULT_GEMINI_FLASH_MODEL = "gemini-2.5-flash"; DEFAULT_GEMINI_FLASH_LITE_MODEL = "gemini-2.5-flash-lite"; @@ -116545,6 +116543,7 @@ PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL, PREVIEW_GEMINI_FLASH_MODEL, + PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL @@ -194825,18 +194824,28 @@ if (options.allowWildcards && name3 === "*") { return true; } - if (name3.includes("__")) { - const parts2 = name3.split("__"); - if (parts2.length !== 2 || parts2[0].length === 0 || parts2[1].length === 0) { + if (isMcpToolName(name3)) { + if (name3 === `${MCP_TOOL_PREFIX}*` && options.allowWildcards) { + return true; + } + if (name3.startsWith(`${MCP_TOOL_PREFIX}_`)) { return false; } - const server = parts2[0]; - const tool = parts2[1]; - if (tool === "*") { - return !!options.allowWildcards; + const parsed = parseMcpToolName(name3); + if (parsed.serverName && parsed.toolName) { + const slugRegex = /^[a-z0-9_.:-]+$/i; + if (!slugRegex.test(parsed.serverName)) { + return false; + } + if (parsed.toolName === "*") { + return options.allowWildcards === true; + } + if (/^_*$/.test(parsed.toolName)) { + return false; + } + return slugRegex.test(parsed.toolName); } - const slugRegex = /^[a-z0-9_.:-]+$/i; - return slugRegex.test(server) && slugRegex.test(tool); + return false; } return false; } @@ -194845,6 +194854,7 @@ "packages/core/dist/src/tools/tool-names.js"() { "use strict"; init_coreTools(); + init_mcp_tool(); LS_TOOL_NAME_LEGACY = "list_directory"; EDIT_TOOL_NAMES = /* @__PURE__ */ new Set([EDIT_TOOL_NAME, WRITE_FILE_TOOL_NAME]); WRITE_FILE_DISPLAY_NAME = "WriteFile"; @@ -194884,8 +194894,8 @@ var init_git_commit = __esm({ "packages/core/dist/src/generated/git-commit.js"() { "use strict"; - GIT_COMMIT_INFO = "6ee19e1f6"; - CLI_VERSION = "0.33.0"; + GIT_COMMIT_INFO = "cc5a0dc3c"; + CLI_VERSION = "0.33.2"; } }); @@ -280870,7 +280880,7 @@ } versionPromise = (async () => { const pkgJson = await getPackageJson(__dirname3); - return "0.33.0"; + return "0.33.2"; })(); return versionPromise; } @@ -282925,11 +282935,7 @@ */ registerTool(tool) { if (this.allKnownTools.has(tool.name)) { - if (tool instanceof DiscoveredMCPTool) { - tool = tool.asFullyQualifiedTool(); - } else { - debugLogger.warn(`Tool with name "${tool.name}" is already registered. Overwriting.`); - } + debugLogger.warn(`Tool with name "${tool.name}" is already registered. Overwriting.`); } this.allKnownTools.set(tool.name, tool); } @@ -283203,7 +283209,14 @@ for (const name3 of toolNames) { const tool = this.getTool(name3); if (tool) { - declarations.push(tool.getSchema(modelId)); + let schema2 = tool.getSchema(modelId); + if (tool instanceof DiscoveredMCPTool) { + schema2 = { + ...schema2, + name: tool.getFullyQualifiedName() + }; + } + declarations.push(schema2); } } return declarations; @@ -283263,16 +283276,6 @@ debugLogger.debug(`Resolved legacy tool name "${name3}" to current name "${currentName}"`); } } - if (!tool && name3.includes("__")) { - for (const t3 of this.allKnownTools.values()) { - if (t3 instanceof DiscoveredMCPTool) { - if (t3.getFullyQualifiedName() === name3) { - tool = t3; - break; - } - } - } - } if (tool && this.isActiveTool(tool)) { return tool; } @@ -406134,7 +406137,7 @@ name: nameSchema, description: external_exports.string().min(1), display_name: external_exports.string().optional(), - tools: external_exports.array(external_exports.string().refine((val) => isValidToolName(val), { + tools: external_exports.array(external_exports.string().refine((val) => isValidToolName(val, { allowWildcards: true }), { message: "Invalid tool name" })).optional(), model: external_exports.string().optional(), @@ -412130,6 +412133,7 @@ init_geminiChat(); init_node(); init_tool_registry(); + init_tools(); init_mcp_tool(); init_turn(); init_types3(); @@ -412177,18 +412181,40 @@ const agentToolRegistry = new ToolRegistry(runtimeContext, runtimeContext.getMessageBus()); const parentToolRegistry = runtimeContext.getToolRegistry(); const allAgentNames = new Set(runtimeContext.getAgentRegistry().getAllAgentNames()); + const registerToolInstance = (tool) => { + if (allAgentNames.has(tool.name)) { + debugLogger.warn(`[LocalAgentExecutor] Skipping subagent tool '${tool.name}' for agent '${definition.name}' to prevent recursion.`); + return; + } + agentToolRegistry.registerTool(tool); + }; const registerToolByName = (toolName) => { - if (allAgentNames.has(toolName)) { - debugLogger.warn(`[LocalAgentExecutor] Skipping subagent tool '${toolName}' for agent '${definition.name}' to prevent recursion.`); + if (toolName === "*") { + for (const tool2 of parentToolRegistry.getAllTools()) { + registerToolInstance(tool2); + } return; } + if (isMcpToolName(toolName)) { + if (toolName === `${MCP_TOOL_PREFIX}*`) { + for (const tool2 of parentToolRegistry.getAllTools()) { + if (tool2 instanceof DiscoveredMCPTool) { + registerToolInstance(tool2); + } + } + return; + } + const parsed = parseMcpToolName(toolName); + if (parsed.serverName && parsed.toolName === "*") { + for (const tool2 of parentToolRegistry.getToolsByServer(parsed.serverName)) { + registerToolInstance(tool2); + } + return; + } + } const tool = parentToolRegistry.getTool(toolName); if (tool) { - if (tool instanceof DiscoveredMCPTool) { - agentToolRegistry.registerTool(tool.asFullyQualifiedTool()); - } else { - agentToolRegistry.registerTool(tool); - } + registerToolInstance(tool); } }; if (definition.toolConfig) { @@ -412843,17 +412869,12 @@ const toolsList = []; const { toolConfig, outputConfig } = this.definition; if (toolConfig) { - const toolNamesToLoad = []; for (const toolRef of toolConfig.tools) { - if (typeof toolRef === "string") { - toolNamesToLoad.push(toolRef); - } else if (typeof toolRef === "object" && "schema" in toolRef) { - toolsList.push(toolRef.schema); - } else { + if (typeof toolRef === "object" && !("schema" in toolRef)) { toolsList.push(toolRef); } } - toolsList.push(...this.toolRegistry.getFunctionDeclarationsFiltered(toolNamesToLoad)); + toolsList.push(...this.toolRegistry.getFunctionDeclarations()); } const completeTool = { name: TASK_COMPLETE_TOOL_NAME, @@ -414654,7 +414675,8 @@ MASKING_PROTECTION_THRESHOLD: 45758817, MASKING_PRUNABLE_THRESHOLD: 45758818, MASKING_PROTECT_LATEST_TURN: 45758819, - GEMINI_3_1_PRO_LAUNCHED: 45760185 + GEMINI_3_1_PRO_LAUNCHED: 45760185, + PRO_MODEL_NO_ACCESS: 45768879 }; } }); @@ -422981,6 +423003,9 @@ coreEvents.emitAdminSettingsChanged(); }); this.setRemoteAdminSettings(adminControls); + if (await this.getProModelNoAccess() && isAutoModel(this.model)) { + this.setModel(PREVIEW_GEMINI_FLASH_MODEL); + } } async getExperimentsAsync() { if (this.experiments) { @@ -423824,6 +423849,25 @@ return this.experiments?.flags[ExperimentFlags.BANNER_TEXT_CAPACITY_ISSUES]?.stringValue ?? ""; } /** + * Returns whether the user has access to Pro models. + * This is determined by the PRO_MODEL_NO_ACCESS experiment flag. + */ + async getProModelNoAccess() { + await this.ensureExperimentsLoaded(); + return this.getProModelNoAccessSync(); + } + /** + * Returns whether the user has access to Pro models synchronously. + * + * Note: This method should only be called after startup, once experiments have been loaded. + */ + getProModelNoAccessSync() { + if (this.contentGeneratorConfig?.authType !== AuthType2.LOGIN_WITH_GOOGLE) { + return false; + } + return this.experiments?.flags[ExperimentFlags.PRO_MODEL_NO_ACCESS]?.boolValue ?? false; + } + /** * Returns whether Gemini 3.1 has been launched. * This method is async and ensures that experiments are loaded before returning the result. */ @@ -430624,6 +430668,7 @@ PARAM_RESPECT_GIT_IGNORE: () => PARAM_RESPECT_GIT_IGNORE, PLAN_MODE_PARAM_REASON: () => PLAN_MODE_PARAM_REASON, PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL: () => PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL, + PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL: () => PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL, PREVIEW_GEMINI_3_1_MODEL: () => PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_FLASH_MODEL: () => PREVIEW_GEMINI_FLASH_MODEL, PREVIEW_GEMINI_MODEL: () => PREVIEW_GEMINI_MODEL, @@ -510217,7 +510262,7 @@ }; // packages/cli/src/generated/git-commit.ts -var GIT_COMMIT_INFO2 = "832e97cb7"; +var GIT_COMMIT_INFO2 = "2162da30c"; // packages/cli/src/ui/components/AboutBox.tsx init_dist7(); @@ -523822,8 +523867,24 @@ function ModelDialog({ onClose }) { const config2 = (0, import_react102.useContext)(ConfigContext); const settings = useSettings(); - const [view, setView] = (0, import_react102.useState)("main"); + const [hasAccessToProModel, setHasAccessToProModel] = (0, import_react102.useState)( + () => !(config2?.getProModelNoAccessSync() ?? false) + ); + const [view, setView] = (0, import_react102.useState)( + () => config2?.getProModelNoAccessSync() ? "manual" : "main" + ); const [persistMode, setPersistMode] = (0, import_react102.useState)(false); + (0, import_react102.useEffect)(() => { + async function checkAccess() { + if (!config2) return; + const noAccess = await config2.getProModelNoAccess(); + setHasAccessToProModel(!noAccess); + if (noAccess) { + setView("manual"); + } + } + void checkAccess(); + }, [config2]); const preferredModel = config2?.getModel() || DEFAULT_GEMINI_MODEL_AUTO; const shouldShowPreviewModels = config2?.getHasAccessToPreviewModel(); const useGemini31 = config2?.getGemini31LaunchedSync?.() ?? false; @@ -523847,7 +523908,7 @@ useKeypress( (key) => { if (key.name === "escape") { - if (view === "manual") { + if (view === "manual" && hasAccessToProModel) { setView("main"); } else { onClose(); @@ -523888,6 +523949,7 @@ return list; }, [shouldShowPreviewModels, manualModelSelected, useGemini31]); const manualOptions = (0, import_react102.useMemo)(() => { + const isFreeTier = config2?.getUserTier() === UserTierId.FREE; const list = [ { value: DEFAULT_GEMINI_MODEL, @@ -523908,7 +523970,7 @@ if (shouldShowPreviewModels) { const previewProModel = useGemini31 ? PREVIEW_GEMINI_3_1_MODEL : PREVIEW_GEMINI_MODEL; const previewProValue = useCustomToolModel ? PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL : previewProModel; - list.unshift( + const previewOptions = [ { value: previewProValue, title: getDisplayString(previewProModel), @@ -523919,10 +523981,27 @@ title: getDisplayString(PREVIEW_GEMINI_FLASH_MODEL), key: PREVIEW_GEMINI_FLASH_MODEL } - ); + ]; + if (isFreeTier) { + previewOptions.push({ + value: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL, + title: getDisplayString(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL), + key: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL + }); + } + list.unshift(...previewOptions); + } + if (!hasAccessToProModel) { + return list.filter((option2) => !isProModel(option2.value)); } return list; - }, [shouldShowPreviewModels, useGemini31, useCustomToolModel]); + }, [ + shouldShowPreviewModels, + useGemini31, + useCustomToolModel, + hasAccessToProModel, + config2 + ]); const options = view === "main" ? mainOptions : manualOptions; const initialIndex = (0, import_react102.useMemo)(() => { const idx = options.findIndex((option2) => option2.value === preferredModel); @@ -556731,7 +556810,7 @@ const sandboxOption = argv.sandbox ?? settings.tools?.sandbox; const command2 = getSandboxCommand(sandboxOption); const packageJson2 = await getPackageJson(__dirname13); - const image3 = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.33.0" ?? packageJson2?.config?.sandboxImageUri; + const image3 = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.33.2" ?? packageJson2?.config?.sandboxImageUri; return command2 && image3 ? { command: command2, image: image3 } : void 0; }
