Commit Graph

125 Commits

Author SHA1 Message Date
Jerop Kipruto 98f3a7066e
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 631591ce79
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
matt korwel da128e725d
{bug} Vertex Auth Support (#1302)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
2025-06-23 00:30:58 +00:00
Billy Biggs c9bea8e646
Plumb extension context filenames through for /memory refresh (#1312) 2025-06-22 16:17:05 -07:00
N. Taylor Mullen 6a1c62731b
Fix seatbelt sandboxing when GEMINI_SANDBOX="" and starting with -s (#1298) 2025-06-22 18:33:29 +00:00
owenofbrien 4cfab0a893
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 0779697da6
Add setting enableRecursiveFileSearch to control @-file completion (#1290) 2025-06-22 01:23:35 +00:00
Louis Jimenez 6c67618624
Make checkpoints configurable in settings.json (#1251) 2025-06-20 00:39:15 -04:00
matt korwel 04518b52c0
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
Eddie Santos c1486c47ee
fix: auto-update sandbox regression (#1221) 2025-06-19 21:40:10 +00:00
Brandon Keiji 10a83a6395
refactor: remove docker tagging step from sandbox publishing (#1223) 2025-06-19 12:19:39 -07:00
Leo 0ebac0b896
add sandboxImageName in package.json (#1219) 2025-06-19 11:50:34 -07:00
N. Taylor Mullen 3621ea0cb6
Change sandbox default (#1214) 2025-06-19 02:15:02 -07:00
Brandon Keiji cc89830b2a
refactor: consolidate container image tag source of truth to cli package.json (#1156) 2025-06-18 19:43:12 +00:00
Brandon Keiji 332512853e
feat: consolidate sandbox configurations into a single object (#1154) 2025-06-18 17:01:00 +00:00
Brandon Keiji 30d1662128
fix: check package.json for app version (#1160) (#1182) 2025-06-18 16:57:17 +00:00
Tommaso Sciortino bf62c3b21a
Mock out 'open' in tests. Fix test issues. (#1100) 2025-06-16 11:12:42 -07:00
Zach Sais cc7459e403
fix version release for Dockerfile build (#1080) 2025-06-16 06:13:39 +00:00
Jerop Kipruto 53753f0455
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 4873fce791
centralize file filtering in `FileDiscoveryService` (#1039) 2025-06-14 14:25:34 +00:00
Steren e6d5477168
Fix 404 URL for Vertex Auth (#1040) 2025-06-14 08:25:08 +00:00
Allen Hutchison 643bdf31d5
feat: Add custom URL support for the /bug command (#1017) 2025-06-14 07:00:24 +00:00
Keir Mierle 9954779739
Add a local telemetry launcher (#1015) 2025-06-13 18:08:03 -07:00
Anas H. Sulaiman 8eb505fbba
initialize `FileDiscoveryService` once (#1029) 2025-06-13 17:25:59 -07:00
Tommaso Sciortino a2fe3d2ad0
Stop extension MCPs from hopping into settings. (#1026) 2025-06-13 14:51:29 -07:00
Tommaso Sciortino 54f0d9d0e5
Fix default extension context filename and update docs (#1024) 2025-06-13 13:57:00 -07:00
Tommaso Sciortino 491e367f7c
Don't exclude config.test.ts. (#1021) 2025-06-13 20:07:46 +00:00
Billy Biggs 2a1ad1f5d9
Update contextFileName to support an optional list of strings (#1001) 2025-06-13 09:19:08 -07:00
Anas H. Sulaiman 34e0d9c0b6
cleanup unused `allowBuildArtifacts` (#1010) 2025-06-13 12:00:38 -04:00
N. Taylor Mullen 7bcc60e996
refactor: Use default centralized Flash & Pro models everywhere (#994) 2025-06-13 08:25:42 +00:00
Tommaso Sciortino 431ee839a0
Code Assist cleanup and docs (#993) 2025-06-12 18:00:17 -07:00
Marat Boshernitsan 181abde2ff
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 ad2e47dc20
remove enable editor flag (#984) 2025-06-12 17:28:20 +00:00
Leo 1ef68e0612
feat: External editor settings (#882) 2025-06-11 18:21:54 -07:00
JingboWang1997-1 6ecdecbdcc
add excludeTools flag to settings.json config (#957) 2025-06-11 14:32:23 -07:00
matt korwel 4160d904da
Extensibility: Gemini.md files (#944) 2025-06-11 20:34:35 +00:00
Louis Jimenez e0f4f428fc
Restore Checkpoint Feature (#934) 2025-06-11 15:33:09 -04:00
Zach Sais 5bab5a7378
fix version set for cli and slash commands (#892) 2025-06-11 08:25:26 -05:00
jerop d1e23b7c71 refactor: Centralize session ID generation and propagation 2025-06-11 01:18:40 -04:00
Seth Troisi fb6e2927f7
Remove unneeded `mockRestore()`s from tests (#919) 2025-06-10 20:32:00 -07:00
Tommaso Sciortino e92b7dfd74
Change yolo mode so it doesn't disable sandboxing. (#918) 2025-06-10 17:41:59 -07:00
Tommaso Sciortino d79dafc577
Basic code assist support (#910) 2025-06-10 16:00:13 -07:00
Tommaso Sciortino 4e84431df3
Allow simple extensions for registering MCPservers (#890) 2025-06-10 15:48:39 -07:00
Tommaso Sciortino 895c1f132f
GEMINI_SANDBOX=false should disable seatbelt (#888) 2025-06-10 06:22:02 -07:00
Mark McDonald 5673c5f267
Add a window title when CLI is launched (#787) 2025-06-10 11:54:51 +08:00
Seth Troisi f11414a424
Use GOOGLE_API_KEY as default if both GEMINI and GOOGLE set (#777) 2025-06-09 13:54:11 -07:00
Tommaso Sciortino 0613062fc8
Simplify user agent handling. (#828) 2025-06-09 09:31:27 -07:00
Leo 9efca40dae
feat: Add flow to allow modifying edits during edit tool call (#808) 2025-06-08 10:56:58 -07:00
Tommaso Sciortino 389907ce65
Introduce ContentGeneratorConfig (#826) 2025-06-07 16:17:27 -07:00
cperry-goog 18d6a11c04
refactor: rename gemini-code to gemini-cli (#822) 2025-06-07 14:27:22 -07:00