Commit Graph

76 Commits

Author SHA1 Message Date
Sandy Tao 89b529b3f0 Run model availability check in the background to speed up startup (#4256) 2025-07-16 04:13:30 +00:00
anj-s 5d27db15fc Enable tool summarization only when explicitly set in settings.json (#4140)
Co-authored-by: matt korwel <matt.korwel@gmail.com>
2025-07-15 17:22:31 +00:00
Tommaso Sciortino 3757633829 Pure refactor: Consolidate isWithinRoot() function calling. (#4163) 2025-07-15 05:55:49 +00:00
Abhi 7d69a4ba77 fix(checkpoint): Prevent silent failure and enable for non-Git projects (#4144) 2025-07-14 17:23:51 +00:00
Shreya Keshive 34cf8c1ee4 Add feature flag for IDE integration (#3927)
Co-authored-by: Scott Densmore <scottdensmore@mac.com>
2025-07-14 16:04:08 +00:00
Yuki Okita 6fc5234c76 fix(core): make the commented-out test workable (#3885) 2025-07-12 19:13:22 +00:00
Bryan Morgan ecab297be7 Added in proper checks for customer tiers in 429/Quota error messaging (#3863)
Co-authored-by: Ioannis Papapanagiotou <iduckhd@hotmail.com>
2025-07-11 15:25:30 +00:00
anj-s 0c63983909 Add support for specifying maxSessionTurns via the settings configuration (#3507) 2025-07-11 14:55:03 +00:00
Seth Troisi 815dd3f1c7 Add NO_BROWSER environment variable to trigger offline oauth flow (#3713) 2025-07-11 01:59:02 +00:00
Bryan Morgan fd717d922d Remove auto-execution on Flash in the event of a 429/Quota failover (#3662)
Co-authored-by: Jenna Inouye <jinouye@google.com>
2025-07-09 17:55:56 +00:00
Bryan Morgan 33a1a0d54d Improve quota- and resource-related 429 error handling, also taking Code Assist customer tiers into consideration (#3609) 2025-07-09 14:18:15 +00:00
Billy Biggs 0c2a369108 Add a command line option to enable and list extensions (#3191) 2025-07-08 16:57:34 +00:00
Tommaso Sciortino 1afb62ad31 Initialize MCP tools once at start up instead of every time we auth. (#3483) 2025-07-07 22:01:59 +00:00
Abhi 3227b5286f feature(commands) - Refactor Slash Command + Vision For the Future (#3175) 2025-07-07 20:45:44 +00:00
Jordan Demeulenaere 75d8bd4fdd Add excludeTools and includeTools to mcpServers config (#2976) 2025-07-07 16:34:26 +00:00
Adam Spiers b276c74ef4 feat: add support to remote MCP servers for custom HTTP headers (#2477) 2025-06-30 00:09:08 +00:00
Jerop Kipruto a8af923b3b feat: allow command-specific restrictions for ShellTool (#2605) 2025-06-29 19:32:26 +00:00
Noritaka Kobayashi 6e4ae2d625 refactor: remove imported multiple times (#1846) 2025-06-29 09:09:15 +00:00
Tommaso Sciortino 1d5307d113 Add privacy notice slash command (#2059) 2025-06-27 19:07:38 +00:00
Bryan Morgan f5c2c51d5a [JUNE 25] Permanent failover to Flash model for OAuth users after persistent 429 errors (#1376)
Co-authored-by: Scott Densmore <scottdensmore@mac.com>
2025-06-24 22:48:55 +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
N. Taylor Mullen a02fd9c3e4 feat: Update default Gemini Flash model to 2.5 (#1241) 2025-06-20 05:54:00 +00:00
Louis Jimenez 18d2f3bebd Make checkpoints configurable in settings.json (#1251) 2025-06-20 00:39:15 -04:00
N. Taylor Mullen 40ca25137f Tactical client lifetime fix. (#1247) 2025-06-19 19:54:36 -07: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
N. Taylor Mullen 5ee75601d1 feat: update default gemini model to GA 2.5 pro (#1173) 2025-06-17 23:08:04 -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 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
Allen Hutchison 33989cbec0 feat: Add custom URL support for the /bug command (#1017) 2025-06-14 07:00:24 +00:00
Anas H. Sulaiman 5a5ec49341 initialize FileDiscoveryService once (#1029) 2025-06-13 17:25:59 -07:00
Shreya Keshive 3931ad124e Support MCP StreamableHTTPClientTransport (#1014) 2025-06-13 16:18:06 -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
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
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
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
Louis Jimenez b19571d9ab Restore Checkpoint Feature (#934) 2025-06-11 15:33:09 -04:00
jerop e8faf83c15 refactor: Centralize session ID generation and propagation 2025-06-11 01:18:40 -04:00
Tommaso Sciortino 18dbf3a3a9 GEMINI_SANDBOX=false should disable seatbelt (#888) 2025-06-10 06:22:02 -07:00