@google/gemini-cli-core 0.21.0-nightly.20251218.739c02bd6 → 0.21.0-nightly.20251220.41a1a3eed
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/docs/CONTRIBUTING.md +546 -0
- package/dist/docs/architecture.md +80 -0
- package/dist/docs/assets/connected_devtools.png +0 -0
- package/dist/docs/assets/gemini-screenshot.png +0 -0
- package/dist/docs/assets/release_patch.png +0 -0
- package/dist/docs/assets/theme-ansi-light.png +0 -0
- package/dist/docs/assets/theme-ansi.png +0 -0
- package/dist/docs/assets/theme-atom-one.png +0 -0
- package/dist/docs/assets/theme-ayu-light.png +0 -0
- package/dist/docs/assets/theme-ayu.png +0 -0
- package/dist/docs/assets/theme-custom.png +0 -0
- package/dist/docs/assets/theme-default-light.png +0 -0
- package/dist/docs/assets/theme-default.png +0 -0
- package/dist/docs/assets/theme-dracula.png +0 -0
- package/dist/docs/assets/theme-github-light.png +0 -0
- package/dist/docs/assets/theme-github.png +0 -0
- package/dist/docs/assets/theme-google-light.png +0 -0
- package/dist/docs/assets/theme-xcode-light.png +0 -0
- package/dist/docs/changelogs/index.md +592 -0
- package/dist/docs/changelogs/latest.md +225 -0
- package/dist/docs/changelogs/preview.md +129 -0
- package/dist/docs/changelogs/releases.md +896 -0
- package/dist/docs/cli/authentication.md +3 -0
- package/dist/docs/cli/checkpointing.md +94 -0
- package/dist/docs/cli/commands.md +354 -0
- package/dist/docs/cli/configuration.md +780 -0
- package/dist/docs/cli/custom-commands.md +315 -0
- package/dist/docs/cli/enterprise.md +565 -0
- package/dist/docs/cli/gemini-ignore.md +71 -0
- package/dist/docs/cli/gemini-md.md +108 -0
- package/dist/docs/cli/generation-settings.md +210 -0
- package/dist/docs/cli/headless.md +388 -0
- package/dist/docs/cli/index.md +63 -0
- package/dist/docs/cli/keyboard-shortcuts.md +143 -0
- package/dist/docs/cli/model-routing.md +37 -0
- package/dist/docs/cli/model.md +62 -0
- package/dist/docs/cli/sandbox.md +171 -0
- package/dist/docs/cli/session-management.md +158 -0
- package/dist/docs/cli/settings.md +112 -0
- package/dist/docs/cli/system-prompt.md +93 -0
- package/dist/docs/cli/telemetry.md +791 -0
- package/dist/docs/cli/themes.md +237 -0
- package/dist/docs/cli/token-caching.md +20 -0
- package/dist/docs/cli/trusted-folders.md +95 -0
- package/dist/docs/cli/tutorials.md +83 -0
- package/dist/docs/cli/uninstall.md +47 -0
- package/dist/docs/core/index.md +101 -0
- package/dist/docs/core/memport.md +244 -0
- package/dist/docs/core/policy-engine.md +267 -0
- package/dist/docs/core/tools-api.md +131 -0
- package/dist/docs/examples/proxy-script.md +83 -0
- package/dist/docs/extensions/extension-releasing.md +183 -0
- package/dist/docs/extensions/getting-started-extensions.md +245 -0
- package/dist/docs/extensions/index.md +293 -0
- package/dist/docs/faq.md +154 -0
- package/dist/docs/get-started/authentication.md +321 -0
- package/dist/docs/get-started/configuration-v1.md +888 -0
- package/dist/docs/get-started/configuration.md +1444 -0
- package/dist/docs/get-started/deployment.md +143 -0
- package/dist/docs/get-started/examples.md +219 -0
- package/dist/docs/get-started/gemini-3.md +116 -0
- package/dist/docs/get-started/index.md +71 -0
- package/dist/docs/get-started/installation.md +141 -0
- package/dist/docs/hooks/best-practices.md +806 -0
- package/dist/docs/hooks/index.md +665 -0
- package/dist/docs/hooks/reference.md +168 -0
- package/dist/docs/hooks/writing-hooks.md +1026 -0
- package/dist/docs/ide-integration/ide-companion-spec.md +267 -0
- package/dist/docs/ide-integration/index.md +202 -0
- package/dist/docs/index.md +147 -0
- package/dist/docs/integration-tests.md +211 -0
- package/dist/docs/issue-and-pr-automation.md +134 -0
- package/dist/docs/local-development.md +128 -0
- package/dist/docs/mermaid/context.mmd +103 -0
- package/dist/docs/mermaid/render-path.mmd +64 -0
- package/dist/docs/npm.md +62 -0
- package/dist/docs/quota-and-pricing.md +158 -0
- package/dist/docs/release-confidence.md +164 -0
- package/dist/docs/releases.md +540 -0
- package/dist/docs/sidebar.json +297 -0
- package/dist/docs/tools/file-system.md +217 -0
- package/dist/docs/tools/index.md +95 -0
- package/dist/docs/tools/mcp-server.md +1044 -0
- package/dist/docs/tools/memory.md +54 -0
- package/dist/docs/tools/shell.md +260 -0
- package/dist/docs/tools/todos.md +57 -0
- package/dist/docs/tools/web-fetch.md +59 -0
- package/dist/docs/tools/web-search.md +42 -0
- package/dist/docs/tos-privacy.md +96 -0
- package/dist/docs/troubleshooting.md +158 -0
- package/dist/google-gemini-cli-core-0.21.0-nightly.20251219.70696e364.tgz +0 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js +1 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
- package/dist/src/agents/introspection-agent.d.ts +23 -0
- package/dist/src/agents/introspection-agent.js +72 -0
- package/dist/src/agents/introspection-agent.js.map +1 -0
- package/dist/src/agents/introspection-agent.test.d.ts +6 -0
- package/dist/src/agents/introspection-agent.test.js +47 -0
- package/dist/src/agents/introspection-agent.test.js.map +1 -0
- package/dist/src/agents/local-executor.d.ts +0 -6
- package/dist/src/agents/local-executor.js +73 -47
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.d.ts +1 -7
- package/dist/src/agents/local-executor.test.js +27 -9
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/registry.d.ts +1 -0
- package/dist/src/agents/registry.js +51 -7
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +112 -1
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/toml-loader.d.ts +65 -0
- package/dist/src/agents/toml-loader.js +176 -0
- package/dist/src/agents/toml-loader.js.map +1 -0
- package/dist/src/agents/toml-loader.test.d.ts +6 -0
- package/dist/src/agents/toml-loader.test.js +190 -0
- package/dist/src/agents/toml-loader.test.js.map +1 -0
- package/dist/src/availability/modelAvailabilityService.d.ts +2 -1
- package/dist/src/config/config.d.ts +9 -0
- package/dist/src/config/config.js +29 -0
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +59 -1
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/storage.d.ts +2 -0
- package/dist/src/config/storage.js +6 -0
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +8 -0
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/core/client.js +8 -4
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +20 -0
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/clientHookTriggers.js +2 -2
- package/dist/src/core/clientHookTriggers.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.js +3 -3
- package/dist/src/core/coreToolHookTriggers.js.map +1 -1
- package/dist/src/core/geminiChatHookTriggers.js +3 -3
- package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
- package/dist/src/core/sessionHookTriggers.js +3 -3
- package/dist/src/core/sessionHookTriggers.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/hooks/hookEventHandler.js +10 -4
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +40 -0
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
- package/dist/src/hooks/hookPlanner.js +3 -1
- package/dist/src/hooks/hookPlanner.js.map +1 -1
- package/dist/src/hooks/hookPlanner.test.js +61 -0
- package/dist/src/hooks/hookPlanner.test.js.map +1 -1
- package/dist/src/hooks/hookRegistry.d.ts +1 -1
- package/dist/src/hooks/hookRegistry.js +2 -2
- package/dist/src/hooks/hookRegistry.js.map +1 -1
- package/dist/src/hooks/hookRegistry.test.js +73 -0
- package/dist/src/hooks/hookRegistry.test.js.map +1 -1
- package/dist/src/hooks/hookRunner.js +14 -10
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +81 -33
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/types.d.ts +2 -0
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +6 -2
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +4 -1
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-utils.d.ts +8 -1
- package/dist/src/mcp/oauth-utils.js +30 -1
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/oauth-utils.test.js +42 -0
- package/dist/src/mcp/oauth-utils.test.js.map +1 -1
- package/dist/src/services/contextManager.d.ts +5 -11
- package/dist/src/services/contextManager.js +20 -17
- package/dist/src/services/contextManager.js.map +1 -1
- package/dist/src/services/contextManager.test.js +40 -41
- package/dist/src/services/contextManager.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +18 -2
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/tools/get-internal-docs.d.ts +27 -0
- package/dist/src/tools/get-internal-docs.js +129 -0
- package/dist/src/tools/get-internal-docs.js.map +1 -0
- package/dist/src/tools/get-internal-docs.test.d.ts +6 -0
- package/dist/src/tools/get-internal-docs.test.js +56 -0
- package/dist/src/tools/get-internal-docs.test.js.map +1 -0
- package/dist/src/tools/tool-names.d.ts +14 -0
- package/dist/src/tools/tool-names.js +55 -0
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-names.test.d.ts +6 -0
- package/dist/src/tools/tool-names.test.js +43 -0
- package/dist/src/tools/tool-names.test.js.map +1 -0
- package/dist/src/tools/tool-registry.d.ts +0 -1
- package/dist/src/tools/tool-registry.js +1 -1
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +2 -1
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/utils/environmentContext.js +3 -0
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/environmentContext.test.js +2 -0
- package/dist/src/utils/environmentContext.test.js.map +1 -1
- package/dist/src/utils/events.d.ts +3 -2
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.js +20 -0
- package/dist/src/utils/googleQuotaErrors.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.test.js +53 -2
- package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.js +1 -1
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +3 -1
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/shell-utils.js +25 -4
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -6
- package/dist/google-gemini-cli-core-0.21.0-nightly.20251216.bb0c0d8ee.tgz +0 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Gemini CLI: Quotas and pricing
|
|
2
|
+
|
|
3
|
+
Gemini CLI offers a generous free tier that covers many individual developers'
|
|
4
|
+
use cases. For enterprise or professional usage, or if you need higher limits,
|
|
5
|
+
several options are available depending on your authentication account type.
|
|
6
|
+
|
|
7
|
+
See [privacy and terms](./tos-privacy.md) for details on the Privacy Policy and
|
|
8
|
+
Terms of Service.
|
|
9
|
+
|
|
10
|
+
> **Note:** Published prices are list price; additional negotiated commercial
|
|
11
|
+
> discounting may apply.
|
|
12
|
+
|
|
13
|
+
This article outlines the specific quotas and pricing applicable to Gemini CLI
|
|
14
|
+
when using different authentication methods.
|
|
15
|
+
|
|
16
|
+
Generally, there are three categories to choose from:
|
|
17
|
+
|
|
18
|
+
- Free Usage: Ideal for experimentation and light use.
|
|
19
|
+
- Paid Tier (fixed price): For individual developers or enterprises who need
|
|
20
|
+
more generous daily quotas and predictable costs.
|
|
21
|
+
- Pay-As-You-Go: The most flexible option for professional use, long-running
|
|
22
|
+
tasks, or when you need full control over your usage.
|
|
23
|
+
|
|
24
|
+
## Free usage
|
|
25
|
+
|
|
26
|
+
Your journey begins with a generous free tier, perfect for experimentation and
|
|
27
|
+
light use.
|
|
28
|
+
|
|
29
|
+
Your free usage limits depend on your authorization type.
|
|
30
|
+
|
|
31
|
+
### Log in with Google (Gemini Code Assist for individuals)
|
|
32
|
+
|
|
33
|
+
For users who authenticate by using their Google account to access Gemini Code
|
|
34
|
+
Assist for individuals. This includes:
|
|
35
|
+
|
|
36
|
+
- 1000 model requests / user / day
|
|
37
|
+
- 60 model requests / user / minute
|
|
38
|
+
- Model requests will be made across the Gemini model family as determined by
|
|
39
|
+
Gemini CLI.
|
|
40
|
+
|
|
41
|
+
Learn more at
|
|
42
|
+
[Gemini Code Assist for Individuals Limits](https://developers.google.com/gemini-code-assist/resources/quotas#quotas-for-agent-mode-gemini-cli).
|
|
43
|
+
|
|
44
|
+
### Log in with Gemini API Key (unpaid)
|
|
45
|
+
|
|
46
|
+
If you are using a Gemini API key, you can also benefit from a free tier. This
|
|
47
|
+
includes:
|
|
48
|
+
|
|
49
|
+
- 250 model requests / user / day
|
|
50
|
+
- 10 model requests / user / minute
|
|
51
|
+
- Model requests to Flash model only.
|
|
52
|
+
|
|
53
|
+
Learn more at
|
|
54
|
+
[Gemini API Rate Limits](https://ai.google.dev/gemini-api/docs/rate-limits).
|
|
55
|
+
|
|
56
|
+
### Log in with Vertex AI (Express Mode)
|
|
57
|
+
|
|
58
|
+
Vertex AI offers an Express Mode without the need to enable billing. This
|
|
59
|
+
includes:
|
|
60
|
+
|
|
61
|
+
- 90 days before you need to enable billing.
|
|
62
|
+
- Quotas and models are variable and specific to your account.
|
|
63
|
+
|
|
64
|
+
Learn more at
|
|
65
|
+
[Vertex AI Express Mode Limits](https://cloud.google.com/vertex-ai/generative-ai/docs/start/express-mode/overview#quotas).
|
|
66
|
+
|
|
67
|
+
## Paid tier: Higher limits for a fixed cost
|
|
68
|
+
|
|
69
|
+
If you use up your initial number of requests, you can continue to benefit from
|
|
70
|
+
Gemini CLI by upgrading to one of the following subscriptions:
|
|
71
|
+
|
|
72
|
+
- [Google AI Pro and AI Ultra](https://gemini.google/subscriptions/). This is
|
|
73
|
+
recommended for individual developers. Quotas and pricing are based on a fixed
|
|
74
|
+
price subscription.
|
|
75
|
+
|
|
76
|
+
For predictable costs, you can log in with Google.
|
|
77
|
+
|
|
78
|
+
Learn more at
|
|
79
|
+
[Gemini Code Assist Quotas and Limits](https://developers.google.com/gemini-code-assist/resources/quotas)
|
|
80
|
+
|
|
81
|
+
- [Purchase a Gemini Code Assist Subscription through Google Cloud ](https://cloud.google.com/gemini/docs/codeassist/overview)
|
|
82
|
+
by signing up in the Google Cloud console. Learn more at
|
|
83
|
+
[Set up Gemini Code Assist](https://cloud.google.com/gemini/docs/discover/set-up-gemini).
|
|
84
|
+
|
|
85
|
+
Quotas and pricing are based on a fixed price subscription with assigned
|
|
86
|
+
license seats. For predictable costs, you can sign in with Google.
|
|
87
|
+
|
|
88
|
+
This includes:
|
|
89
|
+
- Gemini Code Assist Standard edition:
|
|
90
|
+
- 1500 model requests / user / day
|
|
91
|
+
- 120 model requests / user / minute
|
|
92
|
+
- Gemini Code Assist Enterprise edition:
|
|
93
|
+
- 2000 model requests / user / day
|
|
94
|
+
- 120 model requests / user / minute
|
|
95
|
+
- Model requests will be made across the Gemini model family as determined by
|
|
96
|
+
Gemini CLI.
|
|
97
|
+
|
|
98
|
+
[Learn more about Gemini Code Assist Standard and Enterprise license limits](https://developers.google.com/gemini-code-assist/resources/quotas#quotas-for-agent-mode-gemini-cli).
|
|
99
|
+
|
|
100
|
+
## Pay as you go
|
|
101
|
+
|
|
102
|
+
If you hit your daily request limits or exhaust your Gemini Pro quota even after
|
|
103
|
+
upgrading, the most flexible solution is to switch to a pay-as-you-go model,
|
|
104
|
+
where you pay for the specific amount of processing you use. This is the
|
|
105
|
+
recommended path for uninterrupted access.
|
|
106
|
+
|
|
107
|
+
To do this, log in using a Gemini API key or Vertex AI.
|
|
108
|
+
|
|
109
|
+
- Vertex AI (Regular Mode):
|
|
110
|
+
- Quota: Governed by a dynamic shared quota system or pre-purchased
|
|
111
|
+
provisioned throughput.
|
|
112
|
+
- Cost: Based on model and token usage.
|
|
113
|
+
|
|
114
|
+
Learn more at
|
|
115
|
+
[Vertex AI Dynamic Shared Quota](https://cloud.google.com/vertex-ai/generative-ai/docs/resources/dynamic-shared-quota)
|
|
116
|
+
and [Vertex AI Pricing](https://cloud.google.com/vertex-ai/pricing).
|
|
117
|
+
|
|
118
|
+
- Gemini API key:
|
|
119
|
+
- Quota: Varies by pricing tier.
|
|
120
|
+
- Cost: Varies by pricing tier and model/token usage.
|
|
121
|
+
|
|
122
|
+
Learn more at
|
|
123
|
+
[Gemini API Rate Limits](https://ai.google.dev/gemini-api/docs/rate-limits),
|
|
124
|
+
[Gemini API Pricing](https://ai.google.dev/gemini-api/docs/pricing)
|
|
125
|
+
|
|
126
|
+
It’s important to highlight that when using an API key, you pay per token/call.
|
|
127
|
+
This can be more expensive for many small calls with few tokens, but it's the
|
|
128
|
+
only way to ensure your workflow isn't interrupted by quota limits.
|
|
129
|
+
|
|
130
|
+
## Gemini for workspace plans
|
|
131
|
+
|
|
132
|
+
These plans currently apply only to the use of Gemini web-based products
|
|
133
|
+
provided by Google-based experiences (for example, the Gemini web app or the
|
|
134
|
+
Flow video editor). These plans do not apply to the API usage which powers the
|
|
135
|
+
Gemini CLI. Supporting these plans is under active consideration for future
|
|
136
|
+
support.
|
|
137
|
+
|
|
138
|
+
## Tips to avoid high costs
|
|
139
|
+
|
|
140
|
+
When using a Pay as you Go API key, be mindful of your usage to avoid unexpected
|
|
141
|
+
costs.
|
|
142
|
+
|
|
143
|
+
- Don't blindly accept every suggestion, especially for computationally
|
|
144
|
+
intensive tasks like refactoring large codebases.
|
|
145
|
+
- Be intentional with your prompts and commands. You are paying per call, so
|
|
146
|
+
think about the most efficient way to get the job done.
|
|
147
|
+
|
|
148
|
+
## Gemini API vs. Vertex
|
|
149
|
+
|
|
150
|
+
- Gemini API (gemini developer api): This is the fastest way to use the Gemini
|
|
151
|
+
models directly.
|
|
152
|
+
- Vertex AI: This is the enterprise-grade platform for building, deploying, and
|
|
153
|
+
managing Gemini models with specific security and control requirements.
|
|
154
|
+
|
|
155
|
+
## Understanding your usage
|
|
156
|
+
|
|
157
|
+
A summary of model usage is available through the `/stats` command and presented
|
|
158
|
+
on exit at the end of a session.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Release confidence strategy
|
|
2
|
+
|
|
3
|
+
This document outlines the strategy for gaining confidence in every release of
|
|
4
|
+
the Gemini CLI. It serves as a checklist and quality gate for release manager to
|
|
5
|
+
ensure we are shipping a high-quality product.
|
|
6
|
+
|
|
7
|
+
## The goal
|
|
8
|
+
|
|
9
|
+
To answer the question, "Is this release _truly_ ready for our users?" with a
|
|
10
|
+
high degree of confidence, based on a holistic evaluation of automated signals,
|
|
11
|
+
manual verification, and data.
|
|
12
|
+
|
|
13
|
+
## Level 1: Automated gates (must pass)
|
|
14
|
+
|
|
15
|
+
These are the baseline requirements. If any of these fail, the release is a
|
|
16
|
+
no-go.
|
|
17
|
+
|
|
18
|
+
### 1. CI/CD health
|
|
19
|
+
|
|
20
|
+
All workflows in `.github/workflows/ci.yml` must pass on the `main` branch (for
|
|
21
|
+
nightly) or the release branch (for preview/stable).
|
|
22
|
+
|
|
23
|
+
- **Platforms:** Tests must pass on **Linux and macOS**.
|
|
24
|
+
- _Note:_ Windows tests currently run with `continue-on-error: true`. While a
|
|
25
|
+
failure here doesn't block the release technically, it should be
|
|
26
|
+
investigated.
|
|
27
|
+
- **Checks:**
|
|
28
|
+
- **Linting:** No linting errors (ESLint, Prettier, etc.).
|
|
29
|
+
- **Typechecking:** No TypeScript errors.
|
|
30
|
+
- **Unit Tests:** All unit tests in `packages/core` and `packages/cli` must
|
|
31
|
+
pass.
|
|
32
|
+
- **Build:** The project must build and bundle successfully.
|
|
33
|
+
|
|
34
|
+
### 2. End-to-end (E2E) tests
|
|
35
|
+
|
|
36
|
+
All workflows in `.github/workflows/chained_e2e.yml` must pass.
|
|
37
|
+
|
|
38
|
+
- **Platforms:** **Linux, macOS and Windows**.
|
|
39
|
+
- **Sandboxing:** Tests must pass with both `sandbox:none` and `sandbox:docker`
|
|
40
|
+
on Linux.
|
|
41
|
+
|
|
42
|
+
### 3. Post-deployment smoke tests
|
|
43
|
+
|
|
44
|
+
After a release is published to npm, the `smoke-test.yml` workflow runs. This
|
|
45
|
+
must pass to confirm the package is installable and the binary is executable.
|
|
46
|
+
|
|
47
|
+
- **Command:** `npx -y @google/gemini-cli@<tag> --version` must return the
|
|
48
|
+
correct version without error.
|
|
49
|
+
- **Platform:** Currently runs on `ubuntu-latest`.
|
|
50
|
+
|
|
51
|
+
## Level 2: Manual verification and dogfooding
|
|
52
|
+
|
|
53
|
+
Automated tests cannot catch everything, especially UX issues.
|
|
54
|
+
|
|
55
|
+
### 1. Dogfooding via `preview` tag
|
|
56
|
+
|
|
57
|
+
The weekly release cadence promotes code from `main` -> `nightly` -> `preview`
|
|
58
|
+
-> `stable`.
|
|
59
|
+
|
|
60
|
+
- **Requirement:** The `preview` release must be used by maintainers for at
|
|
61
|
+
least **one week** before being promoted to `stable`.
|
|
62
|
+
- **Action:** Maintainers should install the preview version locally:
|
|
63
|
+
```bash
|
|
64
|
+
npm install -g @google/gemini-cli@preview
|
|
65
|
+
```
|
|
66
|
+
- **Goal:** To catch regressions and UX issues in day-to-day usage before they
|
|
67
|
+
reach the broad user base.
|
|
68
|
+
|
|
69
|
+
### 2. Critical user journey (CUJ) checklist
|
|
70
|
+
|
|
71
|
+
Before promoting a `preview` release to `stable`, a release manager must
|
|
72
|
+
manually run through this checklist.
|
|
73
|
+
|
|
74
|
+
- **Setup:**
|
|
75
|
+
- [ ] Uninstall any existing global version:
|
|
76
|
+
`npm uninstall -g @google/gemini-cli`
|
|
77
|
+
- [ ] Clear npx cache (optional but recommended): `npm cache clean --force`
|
|
78
|
+
- [ ] Install the preview version: `npm install -g @google/gemini-cli@preview`
|
|
79
|
+
- [ ] Verify version: `gemini --version`
|
|
80
|
+
|
|
81
|
+
- **Authentication:**
|
|
82
|
+
- [ ] In interactive mode run `/auth` and verify all login flows work:
|
|
83
|
+
- [ ] Login With Google
|
|
84
|
+
- [ ] API Key
|
|
85
|
+
- [ ] Vertex AI
|
|
86
|
+
|
|
87
|
+
- **Basic prompting:**
|
|
88
|
+
- [ ] Run `gemini "Tell me a joke"` and verify a sensible response.
|
|
89
|
+
- [ ] Run in interactive mode: `gemini`. Ask a follow-up question to test
|
|
90
|
+
context.
|
|
91
|
+
|
|
92
|
+
- **Piped input:**
|
|
93
|
+
- [ ] Run `echo "Summarize this" | gemini` and verify it processes stdin.
|
|
94
|
+
|
|
95
|
+
- **Context management:**
|
|
96
|
+
- [ ] In interactive mode, use `@file` to add a local file to context. Ask a
|
|
97
|
+
question about it.
|
|
98
|
+
|
|
99
|
+
- **Settings:**
|
|
100
|
+
- [ ] In interactive mode run `/settings` and make modifications
|
|
101
|
+
- [ ] Validate that setting is changed
|
|
102
|
+
|
|
103
|
+
- **Function calling:**
|
|
104
|
+
- [ ] In interactive mode, ask gemini to "create a file named hello.md with
|
|
105
|
+
the content 'hello world'" and verify the file is created correctly.
|
|
106
|
+
|
|
107
|
+
If any of these CUJs fail, the release is a no-go until a patch is applied to
|
|
108
|
+
the `preview` channel.
|
|
109
|
+
|
|
110
|
+
### 3. Pre-Launch bug bash (tier 1 and 2 launches)
|
|
111
|
+
|
|
112
|
+
For high-impact releases, an organized bug bash is required to ensure a higher
|
|
113
|
+
level of quality and to catch issues across a wider range of environments and
|
|
114
|
+
use cases.
|
|
115
|
+
|
|
116
|
+
**Definition of tiers:**
|
|
117
|
+
|
|
118
|
+
- **Tier 1:** Industry-Moving News 🚀
|
|
119
|
+
- **Tier 2:** Important News for Our Users 📣
|
|
120
|
+
- **Tier 3:** Relevant, but Not Life-Changing 💡
|
|
121
|
+
- **Tier 4:** Bug Fixes ⚒️
|
|
122
|
+
|
|
123
|
+
**Requirement:**
|
|
124
|
+
|
|
125
|
+
A bug bash must be scheduled at least **72 hours in advance** of any Tier 1 or
|
|
126
|
+
Tier 2 launch.
|
|
127
|
+
|
|
128
|
+
**Rule of thumb:**
|
|
129
|
+
|
|
130
|
+
A bug bash should be considered for any release that involves:
|
|
131
|
+
|
|
132
|
+
- A blog post
|
|
133
|
+
- Coordinated social media announcements
|
|
134
|
+
- Media relations or press outreach
|
|
135
|
+
- A "Turbo" launch event
|
|
136
|
+
|
|
137
|
+
## Level 3: Telemetry and data review
|
|
138
|
+
|
|
139
|
+
### Dashboard health
|
|
140
|
+
|
|
141
|
+
- [ ] Go to `go/gemini-cli-dash`.
|
|
142
|
+
- [ ] Navigate to the "Tool Call" tab.
|
|
143
|
+
- [ ] Validate that there are no spikes in errors for the release you would like
|
|
144
|
+
to promote.
|
|
145
|
+
|
|
146
|
+
### Model evaluation
|
|
147
|
+
|
|
148
|
+
- [ ] Navigate to `go/gemini-cli-offline-evals-dash`.
|
|
149
|
+
- [ ] Make sure that the release you want to promote's recurring run is within
|
|
150
|
+
average eval runs.
|
|
151
|
+
|
|
152
|
+
## The "go/no-go" decision
|
|
153
|
+
|
|
154
|
+
Before triggering the `Release: Promote` workflow to move `preview` to `stable`:
|
|
155
|
+
|
|
156
|
+
1. [ ] **Level 1:** CI and E2E workflows are green for the commit corresponding
|
|
157
|
+
to the current `preview` tag.
|
|
158
|
+
2. [ ] **Level 2:** The `preview` version has been out for one week, and the
|
|
159
|
+
CUJ checklist has been completed successfully by a release manager. No
|
|
160
|
+
blocking issues have been reported.
|
|
161
|
+
3. [ ] **Level 3:** Dashboard Health and Model Evaluation checks have been
|
|
162
|
+
completed and show no regressions.
|
|
163
|
+
|
|
164
|
+
If all checks pass, proceed with the promotion.
|