Commit Graph

97 Commits

Author SHA1 Message Date
Tyler 5b306e4868 Add --allowed_mcp_server_names flag (#3464) 2025-07-07 16:45:58 +00:00
Jack Wotherspoon 75092ac3e5 fix: respect env variables in .env for settings.json variable substitution (#3416) 2025-07-07 05:13:13 +00:00
Tommaso Sciortino e4f95de7ee Add excludedTools to extensions. (#2853) 2025-07-01 23:13:46 +00:00
Mot 1d121f8d73 quiet dotenv log message (#2239)
Co-authored-by: Scott Densmore <scottdensmore@mac.com>
2025-06-28 02:03:20 +00:00
Brandon Keiji 5ad4a0a826 fix: prepublish changes to package names (#1420) 2025-06-25 12:41:11 +00:00
Jerop Kipruto a8ad0a7b7d Refactor usage statistics to be a top-level setting (#1363)
This commit refactors the `usageStatisticsEnabled` setting from a sub-property of the `telemetry` configuration to a top-level setting. This change simplifies the configuration by decoupling usage statistics from the telemetry settings.

The documentation has also been updated to reflect this change.
2025-06-24 00:29:31 +00:00
Jerop Kipruto 5ae029009b refactor: rename disableDataCollection to dataCollectionEnabled (#1319)
Renames the `disableDataCollection` flag to the more intuitive and positive `dataCollectionEnabled`.

This change improves code clarity by avoiding double negatives and making the purpose of the flag more direct. The logic has been inverted wherever the flag is used to accommodate the new naming convention.

Using a suffix like `"Enabled"` follows a common convention that improves readability. 
- A condition like `if (dataCollectionEnabled)` reads like a natural language sentence ("if data collection is enabled"), which reduces cognitive load.
- Distinguishes the boolean flag (representing a state) from potential functions that would perform an action (e.g., `enableDataCollection()` or `disableDataCollection()`), avoiding ambiguity between checking a value and calling a function.

#750
2025-06-23 21:19:40 +00:00
owenofbrien 7201da6a02 Enable clearcut logging by default (#1309)
Clearcut logging can now be disabled via disableDataCollection in user settings
2025-06-23 10:18:58 -07:00
Billy Biggs 92f766537d Plumb extension context filenames through for /memory refresh (#1312) 2025-06-22 16:17:05 -07:00
owenofbrien a230beb945 Clearcut logging - initial implementation (#1274)
Flag-guarded initial implementation of a clearcut logger to collect telemetry data and send it to Concord for dashboards, etc.
2025-06-22 14:26:48 +00:00
Billy Biggs a4807bf092 Add setting enableRecursiveFileSearch to control @-file completion (#1290) 2025-06-22 01:23:35 +00:00
Louis Jimenez 18d2f3bebd Make checkpoints configurable in settings.json (#1251) 2025-06-20 00:39:15 -04:00
matt korwel eda4c79222 Auth First Run (#1207)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-19 16:52:22 -07:00
Brandon Keiji 342b077aff feat: consolidate sandbox configurations into a single object (#1154) 2025-06-18 17:01:00 +00:00
Brandon Keiji 56badf34e5 fix: check package.json for app version (#1160) (#1182) 2025-06-18 16:57:17 +00:00
Zach Sais 8e147263db fix version release for Dockerfile build (#1080) 2025-06-16 06:13:39 +00: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
Anas H. Sulaiman 194e091d4a centralize file filtering in FileDiscoveryService (#1039) 2025-06-14 14:25:34 +00:00
Steren 32c3093082 Fix 404 URL for Vertex Auth (#1040) 2025-06-14 08:25:08 +00:00
Allen Hutchison 33989cbec0 feat: Add custom URL support for the /bug command (#1017) 2025-06-14 07:00:24 +00:00
Keir Mierle f27809703d Add a local telemetry launcher (#1015) 2025-06-13 18:08:03 -07:00
Anas H. Sulaiman 5a5ec49341 initialize FileDiscoveryService once (#1029) 2025-06-13 17:25:59 -07:00
Tommaso Sciortino f61f9996a1 Stop extension MCPs from hopping into settings. (#1026) 2025-06-13 14:51:29 -07:00
Tommaso Sciortino 2d84cf7803 Fix default extension context filename and update docs (#1024) 2025-06-13 13:57:00 -07:00
Anas H. Sulaiman 082a65caa5 cleanup unused allowBuildArtifacts (#1010) 2025-06-13 12:00:38 -04:00
N. Taylor Mullen 7ec11849ae refactor: Use default centralized Flash & Pro models everywhere (#994) 2025-06-13 08:25:42 +00:00
Tommaso Sciortino eeda52b896 Code Assist cleanup and docs (#993) 2025-06-12 18:00:17 -07:00
Marat Boshernitsan 53ac32ee56 Reduce coupling between core and cli packages (#961)
Co-authored-by: Marat Boshernitsan <maratb@google.com>
2025-06-12 17:17:29 -07:00
Leo 31710f0ef3 remove enable editor flag (#984) 2025-06-12 17:28:20 +00:00
JingboWang1997-1 1418c37801 add excludeTools flag to settings.json config (#957) 2025-06-11 14:32:23 -07:00
matt korwel d41d58afa5 Extensibility: Gemini.md files (#944) 2025-06-11 20:34:35 +00:00
Louis Jimenez b19571d9ab Restore Checkpoint Feature (#934) 2025-06-11 15:33:09 -04:00
Zach Sais 09ddf6eb71 fix version set for cli and slash commands (#892) 2025-06-11 08:25:26 -05:00
jerop e8faf83c15 refactor: Centralize session ID generation and propagation 2025-06-11 01:18:40 -04:00
Tommaso Sciortino 50ca47bdd4 Change yolo mode so it doesn't disable sandboxing. (#918) 2025-06-10 17:41:59 -07:00
Tommaso Sciortino 93cd4e20ab Basic code assist support (#910) 2025-06-10 16:00:13 -07:00
Tommaso Sciortino 6a0f6f9f90 Allow simple extensions for registering MCPservers (#890) 2025-06-10 15:48:39 -07:00
Tommaso Sciortino 18dbf3a3a9 GEMINI_SANDBOX=false should disable seatbelt (#888) 2025-06-10 06:22:02 -07:00
Seth Troisi df4fc1b933 Use GOOGLE_API_KEY as default if both GEMINI and GOOGLE set (#777) 2025-06-09 13:54:11 -07:00
Tommaso Sciortino ce5b22e9d7 Simplify user agent handling. (#828) 2025-06-09 09:31:27 -07:00
Leo 588e79e48f feat: Add flow to allow modifying edits during edit tool call (#808) 2025-06-08 10:56:58 -07:00
Tommaso Sciortino 3c2a17e9f6 Introduce ContentGeneratorConfig (#826) 2025-06-07 16:17:27 -07:00
cperry-goog a49f734c13 refactor: rename gemini-code to gemini-cli (#822) 2025-06-07 14:27:22 -07:00
Tommaso Sciortino 9ab8049312 Eliminate createServerConfig() (#821) 2025-06-07 13:49:00 -07:00
Eddie Santos 72b6b10e55 Add embedder (#818) 2025-06-07 13:38:05 -07:00
Tommaso Sciortino b1e4d9f412 Push model-switching logging into loadCliConfig (#815) 2025-06-07 11:12:30 -07:00
Tommaso Sciortino 1b6463c220 More version simplifiction. (#810) 2025-06-07 10:54:23 -07:00
Tommaso Sciortino 03125a24e2 clean up version lookup code (#804) 2025-06-06 16:21:20 -07:00
Jerop Kipruto d0de44824f OpenTelemetry Integration & Telemetry Control Flag (#762) 2025-06-05 13:04:25 -07:00
Eddie Santos 6b745dd861 Bump default model to gemini-2.5-pro-preview-06-05 (#765) 2025-06-05 11:52:36 -07:00