Commit Graph

157 Commits

Author SHA1 Message Date
Tommaso Sciortino
562e77284c Support logging in with Application Default Credentials (#1157)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-18 09:49:13 -07:00
anj-s
07f87ebe04 Cherrypick endless loops fix onto release (#1181) 2025-06-18 09:27:23 -07:00
Tommaso Sciortino
d7678775ad Fix flakey test (#1178) 2025-06-18 08:34:22 -07:00
Louis Jimenez
3cc2e02fef Move the logs.json to a project specific user home dir (#1145) 2025-06-18 09:56:21 -04:00
N. Taylor Mullen
5ee75601d1 feat: update default gemini model to GA 2.5 pro (#1173) 2025-06-17 23:08:04 -07:00
Louis Jimenez
b83cc24e07 Clear out untracked files when restoring a checkpoint (#1139) 2025-06-17 22:01:42 -04:00
Jacob MacDonald
9f4f4ae89e code review followup for compress command (#1097)
Followup to https://github.com/google-gemini/gemini-cli/pull/986
2025-06-17 15:44:54 +00:00
Tommaso Sciortino
11b43d4eba Cache credentials in home dir, not working dir (#1122) 2025-06-16 19:31:32 -07:00
Tommaso Sciortino
53ba909a81 Simplify Error handling in Code Assist onboarding (#1123) 2025-06-16 18:30:55 -07:00
Tommaso Sciortino
af929f6c4f Propagate abort signal to ccpa generateContent. (#1106) 2025-06-16 13:24:42 -07:00
Marlon Gamez
baad4cf0d3 fix: add httpOptions with headers field to CCPA client and set User-Agent header (#1103) 2025-06-16 12:03:06 -07:00
Mark McDonald
7be9fb5499 Added sandbox error hint when MCP servers fail to launch in sandbox mode (#972) 2025-06-16 06:37:09 +00:00
Abhi
662403c66c feat: clear should also clear chat history (#1008) 2025-06-16 06:33:59 +00:00
Louis Jimenez
6607d47c2c Move the shadow git repository to the user's home dir (#1013) 2025-06-16 06:30:02 +00:00
N. Taylor Mullen
c36bccc811 feat(test): Increase test coverage across CLI and Core packages (#1089) 2025-06-15 22:41:32 -07:00
Leo
72d581369d bug: Fix modify edit (#1078) 2025-06-15 18:00:41 -07:00
Jerop Kipruto
bd0f1c9b6b Add file operation telemetry (#1068)
Introduces telemetry for file create, read, and update operations.

This change adds the `gemini_cli.file.operation.count` metric, recorded by the `read-file`, `read-many-files`, and `write-file` tools.

The metric includes the following attributes:
    - `operation` (string: `create`, `read`, `update`): The type of file operation.
    - `lines` (optional, Int): Number of lines in the file.
    - `mimetype` (optional, string): Mimetype of the file.
    - `extension` (optional, string): File extension of the file.

Here is a stacked bar chart of file operations by extension (`js`, `ts`, `md`):
![image](https://github.com/user-attachments/assets/3e8f8ea9-6155-4186-863c-075cc47647c5)

Here is a stacked bar chart of file operations by type (`create`, `read`, `update`):
![image](https://github.com/user-attachments/assets/3fcf491d-31d0-4ba8-80e6-7fd2bd9c7c27)

#750 

cc @allenhutchison as discussed
2025-06-15 13:24:53 -07:00
Marat Boshernitsan
2732f83f4a Stabilize prompts snapshot test by properly mocking the SANDBOX env var. (#1067)
Co-authored-by: Marat Boshernitsan <maratb@google.com>
2025-06-15 11:33:30 -07:00
Asad Memon
07eff94919 feat: Show model thoughts while loading (#992) 2025-06-15 18:19:05 +00:00
Asad Memon
407a71396f feat: Add token stats in footer (#909) 2025-06-15 11:15:53 -07:00
Sijie Wang
6a167c6953 fix(core): Improve shell tool reliability and test portability (#1036) 2025-06-15 09:19:19 +00:00
Jerop Kipruto
bd252ca64c Telemetry: Improve API response logging with function call details (#1064) 2025-06-15 01:48:01 -04:00
Jerop Kipruto
ab714f9116 Add telemetry command and refactor telemetry settings (#1060)
#750 

### Telemetry Settings
Refactors telemetry configuration to use a nested `telemetry` object in `settings.json`, for example:

```json
{
  "telemetry": {
    "enabled": true,
    "target": "gcp"
    "log-prompts": "true"
  },
  "sandbox": false
}
```

The above includes
- Centralized telemetry settings under a `telemetry` object in `settings.json`.
- CLI flags for the `gemini` command to override all telemetry sub-settings:
    - `--telemetry` / `--no-telemetry`
    - `--telemetry-target <local|gcp>`
    - `--telemetry-otlp-endpoint <URL>`
    - `--telemetry-log-prompts` / `--no-telemetry-log-prompts`
- Updates `packages/cli/src/config/config.ts` and `packages/core/src/config/config.ts` to read from the new settings structure and respect the new CLI flags.
- Modifies `scripts/handle-telemetry.js`, `scripts/local_telemetry.js`, and `scripts/telemetry_utils.js` to align with the new settings structure.
- Updates `docs/core/telemetry.md` to reflect the new settings structure, CLI flags, and order of precedence.
- Renames `logUserPromptsEnabled` to `logPrompts` for brevity.

### `npm run telemetry`

Add a new `npm run telemetry` command that uses `scripts/telemetry.js`, automates the entire process of setting up a local and GCP telemetry pipelines, including configuring the necessary settings in the `.gemini/settings.json` workspace file and installing required binaries (e.g. `otelcol-contrib`).

---
```shell
$ npm run telemetry -- --target=gcp

> gemini-cli@0.1.0 telemetry
> node scripts/telemetry.js --target=gcp

⚙️  Using command-line target: gcp
🚀 Running telemetry script for target: gcp.
 Starting Local Telemetry Exporter for Google Cloud 
⚙️  Enabled telemetry in workspace settings.
🔧 Set telemetry OTLP endpoint to http://localhost:4317.
🎯 Set telemetry target to gcp.
 Workspace settings updated.
 Using Google Cloud Project ID: foo-bar

🔑 Please ensure you are authenticated with Google Cloud:
  - Run `gcloud auth application-default login` OR ensure `GOOGLE_APPLICATION_CREDENTIALS` environment variable points to a valid service account key.
  - The account needs "Cloud Trace Agent", "Monitoring Metric Writer", and "Logs Writer" roles.
 otelcol-contrib already exists at /Users/jerop/github/gemini-cli/.gemini/otel/bin/otelcol-contrib
🧹 Cleaning up old processes and logs...
 Deleted old GCP collector log.
📄 Wrote OTEL collector config to /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.yaml
🚀 Starting OTEL collector for GCP... Logs: /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.log
 Waiting for OTEL collector to start (PID: 17013)...
 OTEL collector started successfully on port 4317.

 Local OTEL collector for GCP is running.

🚀 To send telemetry, run the Gemini CLI in a separate terminal window.

📄 Collector logs are being written to: /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.log

📊 View your telemetry data in Google Cloud Console:
   - Logs: https://console.cloud.google.com/logs/query;query=logName%3D%22projects%2Ffoo-bar%2Flogs%2Fgemini_cli%22?project=foo-bar
   - Metrics: https://console.cloud.google.com/monitoring/metrics-explorer?project=foo-bar
   - Traces: https://console.cloud.google.com/traces/list?project=foo-bar

Press Ctrl+C to exit.
^C
👋 Shutting down...
⚙️  Disabled telemetry in workspace settings.
🔧 Cleared telemetry OTLP endpoint.
🎯 Cleared telemetry target.
 Workspace settings updated.
🛑 Stopping otelcol-contrib (PID: 17013)...
 otelcol-contrib stopped.
```
2025-06-15 00:47:32 -04:00
Keir Mierle
86b193e323 fix: Push tool calls to absolute paths (#1055) (#1057)
Make several changes to guide the model to request absolute paths,
reducing frequent accidental relative path tool call failures.

- Switch the parameter name: path --> absolute_path.
- Update the tool definition to strongly require an absolute path.
- Update the system prompt to indicate absolute paths are required.
- Update the system prompt tool use examples to use absolute paths.

Test case:

Open GC in GC: "Locate the primary file calling genai"
- Expected: Model opens files with absolute path, successfully.
- Actual (pre-patch): Failure, attempts to read with relative path.
- Actual (post-patch): Success, attempts to read with absolute path.
2025-06-14 21:16:11 -07:00
Leo
f2c93dc174 Enable "modify" in write tool (#1044) 2025-06-14 11:20:04 -07:00
Bryan Morgan
e3585f30b6 Address b/424256913 - fixed error in correctStringEscaping() and improved backslash handling (#1007) 2025-06-14 13:39:34 -04:00
Anas H. Sulaiman
194e091d4a centralize file filtering in FileDiscoveryService (#1039) 2025-06-14 14:25:34 +00:00
Allen Hutchison
33989cbec0 feat: Add custom URL support for the /bug command (#1017) 2025-06-14 07:00:24 +00:00
Jacob MacDonald
6f444fae25 Add /compress command to force a compression of the context (#986)
Related to https://b.corp.google.com/issues/423605555 - I figured this might be a simpler solution to start with, while still also being useful on its own even if we do implement that.
2025-06-14 04:21:40 +00:00
Marlon Gamez
1a86e60807 fix: remove quota project override in non-streaming calls to CCPA (#1032) 2025-06-14 01:23:12 +00:00
Allen Hutchison
44285aa760 Improvements to web-fetch tool (#1030) 2025-06-13 17:44:14 -07:00
Anas H. Sulaiman
5a5ec49341 initialize FileDiscoveryService once (#1029) 2025-06-13 17:25:59 -07:00
Brandon Keiji
7af228b436 fix: add micromatch to package deps (#1020) 2025-06-13 22:18:05 +00:00
Anas H. Sulaiman
84c7332308 reuse GitIgnoreParser for loading .geminiignore (#1025) 2025-06-13 17:17:08 -04:00
Tommaso Sciortino
2d84cf7803 Fix default extension context filename and update docs (#1024) 2025-06-13 13:57:00 -07:00
Shreya Keshive
3931ad124e Support MCP StreamableHTTPClientTransport (#1014) 2025-06-13 16:18:06 -04:00
Anas H. Sulaiman
7141608385 reuse filtering service in bfsFileSearch (#1018) 2025-06-13 14:57:03 -04:00
Anas H. Sulaiman
7ccf427797 reuse filtering service in getFolderStructure (#1016) 2025-06-13 14:26:31 -04:00
Jerop Kipruto
e0183c4d15 Revert "Telemetry: Auto-export to GCP if GOOGLE_CLOUD_PROJECT is set" (#1011) 2025-06-13 10:27:22 -07:00
Anas H. Sulaiman
198d392f82 remove redundant isGitRepository helper` (#1012) 2025-06-13 12:45:07 -04:00
Billy Biggs
0bbc287f88 Update contextFileName to support an optional list of strings (#1001) 2025-06-13 09:19:08 -07:00
Anas H. Sulaiman
082a65caa5 cleanup unused allowBuildArtifacts (#1010) 2025-06-13 12:00:38 -04:00
Anas H. Sulaiman
43cfdde579 cleanup unused customIgnorePatterns (#1009) 2025-06-13 11:49:48 -04:00
Shreya Keshive
09f34e4f39 Add web socket protocol support for IDE MCP server (#987)
Co-authored-by: matt korwel <matt.korwel@gmail.com>
2025-06-13 09:30:44 -04:00
N. Taylor Mullen
7ec11849ae refactor: Use default centralized Flash & Pro models everywhere (#994) 2025-06-13 08:25:42 +00:00
Jerop Kipruto
fc93f49fed Telemetry: Auto-export to GCP if GOOGLE_CLOUD_PROJECT is set (#1003)
This change simplifies telemetry setup for users who want to integrate with GCP, as they no longer need to configure a local collector or an explicit endpoint if their project is already set up in the environment.

This change updates the telemetry system to automatically export traces, logs, and metrics to Google Cloud Platform (GCP) if the `GOOGLE_CLOUD_PROJECT` environment variable is set and no explicit `telemetryOtlpEndpoint` is configured by the user.

Key changes:
-   The default `telemetryOtlpEndpoint` in `Config` is now an empty string.
-   The `initializeTelemetry` SDK logic now prioritizes:
    -  User-defined `telemetryOtlpEndpoint`.
    -  `GOOGLE_CLOUD_PROJECT` for direct GCP export.
    -  Console exporters as a fallback.
-   If an invalid `telemetryOtlpEndpoint` is provided, it falls back to console exporters with a warning.

#750
2025-06-13 03:51:41 -04:00
Jerop Kipruto
bea4a403ee Handle telemetry in non-interactive mode (#1002)
Changes:
- Ensure proper shutdown in non-interactive mode
- Ensures the initial user prompt is logged in non-interactive mode
- Improve telemetry for streaming - handle chunks and input token count is now alongside other token counts in response

To test:
- Follow instructions in https://github.com/google-gemini/gemini-cli/blob/main/docs/core/telemetry.md#google-cloud
- Run CLI in non-interactive mode and observe logs/metrics in GCP Logs Explorer and Metrics Explorer

#750
2025-06-13 03:44:17 -04:00
Marat Boshernitsan
32d007de3c Improvements to CLI's ability to perform refactoring. Includes additions to the system prompt and GEMINI.md. (#955)
Co-authored-by: Marat Boshernitsan <maratb@google.com>
Co-authored-by: DeWitt Clinton <dclinton@gmail.com>
2025-06-12 23:55:41 -07:00
Tommaso Sciortino
920dd6990f Improve some tools to support abortSignal (#997) 2025-06-12 19:46:00 -07:00
Marlon Gamez
8bc23cfea2 Use allowedTiers from LoadCodeAssist response when calling OnboardUser (#995)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jerop Kipruto <jerop@google.com>
Co-authored-by: Marat Boshernitsan <maratb@nitsan.org>
Co-authored-by: Marat Boshernitsan <maratb@google.com>
2025-06-13 02:32:13 +00:00