Remove Gemini CLI support - #2570
Conversation
Drop the geminicli agent package and everything that registered, installed, captured, reviewed, summarized, imported, or resumed Gemini sessions, plus its E2E runner, CI matrix entries, skills, and docs. Two things stay for users who already used Gemini with Entire: - Hooks left in .gemini/settings.json: `entire hooks gemini <verb>` is now a silent no-op, and `entire doctor`, `entire disable --uninstall`, and `entire agent remove gemini` strip Entire's entries while keeping the user's own hooks and settings. Uninstall's preflight and summary see them even when they are the only artifact left. - Historical checkpoints: a read-only parser in transcript/geminilegacy keeps explain, summaries, and chunk reassembly working for checkpoints tagged "Gemini CLI". Task checkpoints now chunk with the session's agent type instead of DetectAgentTypeFromContent, which only ever recognized Gemini. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 01M376R2X4FQ0PQDXHM07WS96R
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 844e915. Configure here.
# Conflicts: # .github/workflows/e2e.yml
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical transcript-data loss and fixture failures remain, along with a cleanup error-propagation issue.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (2)
What changed in this PR
Removes active Gemini CLI support while preserving cleanup for existing hooks and read-only access to historical Gemini checkpoints.
Changes:
- Deletes Gemini integration, E2E, CI, import, review, resume, summary, and skill support.
- Adds retired-hook no-op and cleanup handling.
- Adds legacy transcript parsing and updates related documentation and tests.
| File | Summary |
|---|---|
WINDOWS.md |
Removes Gemini references. |
README.md |
Updates supported-agent documentation. |
mise-tasks/test/e2e/_default |
Removes Gemini E2E configuration. |
e2e/testutil/session_paths.go |
Removes Gemini registration. |
e2e/testutil/repo.go |
Removes Gemini test setup. |
e2e/README.md |
Removes Gemini E2E documentation. |
e2e/agents/opencode_test.go |
Relocates shared test setup. |
e2e/agents/gemini.go |
Deletes the Gemini runner. |
e2e/agents/gemini_test.go |
Deletes Gemini runner tests. |
e2e/agents/agent.go |
Removes Gemini examples. |
docs/security-and-privacy.md |
Removes Gemini documentation. |
docs/first-time-contributors.md |
Updates supported-agent guidance. |
docs/development/testing.md |
Removes Gemini test guidance. |
docs/development/filesystem-safety.md |
Documents retired Gemini cleanup. |
docs/development/caller-session-resolution.md |
Removes Gemini examples. |
docs/architecture/sessions-and-checkpoints.md |
Updates the agent overview. |
docs/architecture/review-command.md |
Removes Gemini review references. |
docs/architecture/agent-integration-checklist.md |
Removes Gemini examples. |
CONTRIBUTING.md |
Updates integration guidance. |
cmd/entire/cli/uiform/uiform_test.go |
Removes the Gemini picker option. |
cmd/entire/cli/transcript/geminilegacy/transcript.go |
Adds historical Gemini parsing. Critical (2 votes): chunk reassembly drops fields such as timestamp, tokens, thoughts, tool-call results, and sessionId; preserve raw or unknown JSON fields. |
cmd/entire/cli/transcript/geminilegacy/transcript_test.go |
Tests legacy transcript parsing. |
cmd/entire/cli/transcript.go |
Updates transcript documentation. |
cmd/entire/cli/telemetry/skill_official.go |
Removes Gemini skill references. |
cmd/entire/cli/summarize/summarize.go |
Uses the legacy parser. |
cmd/entire/cli/strategy/telemetry_signals.go |
Generalizes telemetry wording. |
cmd/entire/cli/strategy/strategy.go |
Updates transcript metadata wording. |
cmd/entire/cli/strategy/session_state.go |
Removes Gemini lifecycle comments. |
cmd/entire/cli/strategy/restore_logs_test.go |
Removes Gemini test coverage. |
cmd/entire/cli/strategy/phase_postcommit_test.go |
Updates transcript fixtures. |
cmd/entire/cli/strategy/manual_commit_hooks.go |
Generalizes subagent comments. |
cmd/entire/cli/strategy/manual_commit_condensation.go |
Removes active Gemini handling. |
cmd/entire/cli/strategy/content_overlap_test.go |
Generalizes test comments. |
cmd/entire/cli/strategy/common.go |
Removes Gemini marker detection. |
cmd/entire/cli/strategy/common_test.go |
Updates marker tests. |
cmd/entire/cli/strategy/commit_hook_perf_test.go |
Updates performance fixtures. |
cmd/entire/cli/strategy/caller_session.go |
Removes Gemini examples. |
cmd/entire/cli/strategy/caller_session_test.go |
Updates ancestry examples. |
cmd/entire/cli/setup.go |
Adds retired Gemini cleanup paths. |
cmd/entire/cli/setup_search_skill.go |
Removes Gemini skill paths. |
cmd/entire/cli/setup_search_skill_test.go |
Removes Gemini cases. |
cmd/entire/cli/setup_managed_scaffold.go |
Removes Gemini scaffold references. |
cmd/entire/cli/setup_agent_help_skill.go |
Removes Gemini help skill support. |
cmd/entire/cli/setup_agent_help_skill_test.go |
Removes Gemini skill tests. |
cmd/entire/cli/settings/settings.go |
Updates provider documentation. |
cmd/entire/cli/settings/agent_prompt_trust_test.go |
Replaces Gemini fixtures. |
cmd/entire/cli/sessions.go |
Retains legacy transcript reading. |
cmd/entire/cli/sessions_test.go |
Updates session fixtures. |
cmd/entire/cli/session/state.go |
Updates agent documentation. |
cmd/entire/cli/review/types/template.go |
Removes the Gemini adapter reference. |
cmd/entire/cli/review/types/reviewer.go |
Updates reviewer documentation. |
cmd/entire/cli/review/synthesis_prompt_test.go |
Replaces Gemini fixtures. |
cmd/entire/cli/review/run_test.go |
Replaces Gemini fixtures. |
cmd/entire/cli/review/profile.go |
Removes Gemini review selection. |
cmd/entire/cli/review/picker.go |
Updates setup error text. |
cmd/entire/cli/review/picker_test.go |
Updates picker fixtures. |
cmd/entire/cli/review/manifest_test.go |
Replaces Gemini fixtures. |
cmd/entire/cli/review/helpers_internal_test.go |
Critical (1 vote): the replacement leaves duplicate pi entries and causes the expected agent-list assertion to fail. |
cmd/entire/cli/review/dump_test.go |
Replaces Gemini fixtures. |
cmd/entire/cli/review/cmd.go |
Removes Gemini review references. |
cmd/entire/cli/review/cmd_test.go |
Updates model-list tests. |
cmd/entire/cli/review/args.go |
Updates adapter documentation. |
cmd/entire/cli/review_helpers.go |
Updates review-flow comments. |
cmd/entire/cli/review_bridge.go |
Removes Gemini reviewer wiring. |
cmd/entire/cli/retired_gemini.go |
Adds legacy hook cleanup. |
cmd/entire/cli/lifecycle.go |
Removes Gemini lifecycle references. |
cmd/entire/cli/lifecycle_test.go |
Updates lifecycle tests. |
cmd/entire/cli/integration_test/testenv.go |
Removes the Gemini test environment. |
cmd/entire/cli/integration_test/setup_gemini_hooks_test.go |
Deletes Gemini hook tests. |
cmd/entire/cli/integration_test/login_test.go |
Removes Gemini environment setup. |
cmd/entire/cli/hooks_cmd.go |
Adds retired-hook no-op handling. |
cmd/entire/cli/hook_registry.go |
Removes Gemini hook registration. |
cmd/entire/cli/hook_registry_test.go |
Updates hook fixtures. |
cmd/entire/cli/explain.go |
Uses legacy Gemini parsing. |
cmd/entire/cli/explain_test.go |
Updates provider fixtures. |
cmd/entire/cli/explain_summary_provider.go |
Removes Gemini provider guidance. |
cmd/entire/cli/explain_summary_provider_test.go |
Updates provider fixtures. |
cmd/entire/cli/doctor.go |
Moderate (1 vote): unreadable or malformed settings report failure but the caller can still return success; propagate the error or set finalErr. |
cmd/entire/cli/doctor_test.go |
Updates symlink tests. |
cmd/entire/cli/dispatch_test.go |
Replaces Gemini fixtures. |
cmd/entire/cli/commit_message_test.go |
Replaces Gemini fixtures. |
cmd/entire/cli/checkpoint/subagent_transcript.go |
Updates chunking documentation. |
cmd/entire/cli/checkpoint/ephemeral.go |
Uses explicit agent type for chunking. |
cmd/entire/cli/checkpoint/checkpoint.go |
Documents explicit agent type usage. |
cmd/entire/cli/attach.go |
Removes Gemini normalization. |
cmd/entire/cli/attach_transcript.go |
Removes Gemini metadata parsing. |
cmd/entire/cli/agentimport/linesplit.go |
Removes Gemini import comments. |
cmd/entire/cli/agentimport/gemini.go |
Deletes the Gemini importer. |
cmd/entire/cli/agentimport/gemini_test.go |
Deletes Gemini importer tests. |
cmd/entire/cli/agentimport/factory.go |
Updates importer documentation. |
cmd/entire/cli/agentimport/cursor.go |
Updates importer documentation. |
cmd/entire/cli/agentimport/agentimport.go |
Removes Gemini importer registration. |
cmd/entire/cli/agentimport/agentimport_test.go |
Updates importer registry tests. |
cmd/entire/cli/agent/vouched_dirs.go |
Removes Gemini symlink vouching. |
cmd/entire/cli/agent/vouched_dirs_test.go |
Updates symlink tests. |
cmd/entire/cli/agent/types/agent.go |
Updates type documentation. |
cmd/entire/cli/agent/transcript_read_guard_test.go |
Removes the deleted-package guard. |
cmd/entire/cli/agent/text_generator_cli.go |
Removes the Gemini summary binary. |
cmd/entire/cli/agent/testutil/hooks.go |
Updates hook documentation. |
cmd/entire/cli/agent/skilldiscovery/registry.go |
Removes Gemini skill entries. |
cmd/entire/cli/agent/skilldiscovery/registry_test.go |
Updates skill tests. |
cmd/entire/cli/agent/session_store.go |
Updates storage comments. |
cmd/entire/cli/agent/resume_command.go |
Removes Gemini resume support. |
cmd/entire/cli/agent/resume_command_test.go |
Removes the Gemini resume test. |
cmd/entire/cli/agent/resume_command_registry_test.go |
Removes Gemini registration tests. |
cmd/entire/cli/agent/registry.go |
Retains the historical Gemini type. |
cmd/entire/cli/agent/registry_test.go |
Tests the historical Gemini type. |
cmd/entire/cli/agent/pi/pi.go |
Updates agent documentation. |
cmd/entire/cli/agent/pi/models.go |
Updates model documentation. |
cmd/entire/cli/agent/opencode/opencode.go |
Updates path documentation. |
cmd/entire/cli/agent/inject.go |
Removes Gemini injection documentation. |
cmd/entire/cli/agent/hook_config_file.go |
Removes active Gemini config references. |
cmd/entire/cli/agent/generate_external_test.go |
Removes Gemini generator tests. |
cmd/entire/cli/agent/geminicli/types.go |
Deletes Gemini types. |
cmd/entire/cli/agent/geminicli/testdata/canned_session.txt |
Deletes Gemini fixture data. |
cmd/entire/cli/agent/geminicli/spawner.go |
Deletes the Gemini spawner. |
cmd/entire/cli/agent/geminicli/spawner_test.go |
Deletes Gemini spawner tests. |
cmd/entire/cli/agent/geminicli/reviewer.go |
Deletes the Gemini reviewer. |
cmd/entire/cli/agent/geminicli/lifecycle.go |
Deletes Gemini lifecycle support. |
cmd/entire/cli/agent/geminicli/generate.go |
Deletes Gemini generation support. |
cmd/entire/cli/agent/geminicli/discovery.go |
Deletes Gemini skill discovery. |
cmd/entire/cli/agent/geminicli/discovery_test.go |
Deletes Gemini discovery tests. |
cmd/entire/cli/agent/event.go |
Generalizes model-event documentation. |
cmd/entire/cli/agent/copilotcli/AGENT.md |
Updates agent examples. |
cmd/entire/cli/agent/chunking.go |
Adds historical Gemini reassembly. |
cmd/entire/cli/agent/chunking_test.go |
Tests historical reassembly. |
cmd/entire/cli/agent/capabilities.go |
Updates capability documentation. |
cmd/entire/cli/agent/caller_session.go |
Removes Gemini environment references. |
cmd/entire/cli/agent/caller_session_test.go |
Updates caller tests. |
cmd/entire/cli/agent/architecture_test.go |
Updates package examples. |
cmd/entire/cli/agent/agent.go |
Updates agent interface documentation. |
cmd/entire/cli/agent_hook_config_guard_test.go |
Updates guard examples. |
cmd/entire/cli/agent_help_banner_test.go |
Removes the Gemini case. |
cmd/entire/cli/agent_group.go |
Updates command examples. |
CHANGELOG.md |
Nit (1 vote): the Unreleased migration bullet ends incompletely at “and summaries”; clarify that historical checkpoints remain readable. |
.gitignore |
Removes a Gemini test artifact. |
.github/workflows/nightly-e2e.yml |
Removes Gemini CI references. |
.github/workflows/e2e.yml |
Removes the Gemini matrix and secret. |
.github/ISSUE_TEMPLATE/bug_report.yml |
Updates the agent placeholder. |
.github/copilot-instructions.md |
Updates the repository overview. |
.gemini/test-hooks.sh |
Deletes the Gemini hook test script. |
.gemini/settings.json |
Removes dogfood Gemini hooks. |
.claude/skills/agent-integration/test-writer.md |
Updates agent examples. |
.claude/skills/agent-integration/SKILL.md |
Updates agent examples. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Retired hook cleanup also drops non-array values under "hooks" (the "enabled": true old Entire versions wrote), which Gemini CLI 0.33+ rejects; leaving it would rewrite settings Gemini refuses to load. - Condensation handles Gemini sessions again: one still in the session store when support was removed is condensed on the next commit, and needs message-index counting and scoping via geminilegacy. - geminilegacy.ReassembleChunks keeps messages as raw JSON so fields the read model does not declare survive. - Fix a review test fixture that listed pi twice. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 01M378FRCSCMP94TC2HKAEEFDB
- A symlinked .gemini reads as nothing to do. It is no longer vouchable, so reporting it failed every doctor run and uninstall with a remedy that could not clear it. - Only the legacy hooks.enabled is dropped, and only beside Entire's own entries; other non-array keys stay, and none alone signals "installed". Rewrites keep the file's permissions. - Every retired path defers to a plugin claiming "gemini", registered or merely on PATH (looked up, never executed): cleanup, agent remove, the unknown-agent message, and the hook no-op, which now errors for an installed plugin that discovery missed. - doctor reports summary_generation.provider still naming gemini. - Shadow-branch detection maps a lone .gemini/settings.json to Gemini CLI again, as a last resort only, so in-flight sessions stay readable without making later sessions of another agent ambiguous. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 01M37BJ1ZPM8ZWAKCS3FMGHSS8


https://entire.io/gh/entireio/cli/trails/1410
Summary
Removes Gemini CLI as a supported agent. The
agent/geminiclipackage is gone, along with everything that installed its hooks, captured its sessions, or used it as a review runner, summary provider, session importer, resume target, or skill target. Its E2E runner, CI matrix entries and secrets, and the docs go too.Two things are kept for repositories that already used Gemini with Entire.
Hooks already installed in
.gemini/settings.json. Nothing re-runs setup when the CLI is upgraded, so those hooks would otherwise fail on every Gemini event.entire hooks gemini <verb>now exits 0 silently. The check runs after external-agent discovery, so a plugin can still claim the name.entire doctor,entire disable --uninstallandentire agent remove geminiremove Entire's entries and keep the user's own hooks, matchers and settings (retired_gemini.go).entire configure --agent gemininow says Gemini CLI is no longer supported, instead of "Unknown agent".Historical checkpoints. Checkpoints tagged
Gemini CLIstore a single JSON document, not JSONL. A read-only parser intranscript/geminilegacykeepsexplain, summaries and the reassembly of large split transcripts working for them.AgentTypeGeminisurvives only for this.Behavior changes worth a look
.gemini/settings.jsonno longer counts as an agent marker when detecting which agent made a shadow branch.opts.Agent, as persistent checkpoints already did, instead ofDetectAgentTypeFromContent. That function only ever recognized Gemini and is deleted.Unknownagent type..geminiis no longer vouchable. An existingallow_symlinked_agent_dirsentry for it gets the usual "not an agent config directory" warning; settings still load..gemini/settings.json, and.gemini/test-hooks.shis deleted.Not handled
geminias the summary provider or as a review agent fail when those features run, without a Gemini-specific message..gemini/agents/entire.mdand the search skill) are left in place. They are harmless.CHANGELOG.mdhistory and thetools/complexity/baselines are unchanged; there is a new Unreleased entry.Test plan
mise run fmt && mise run lint: 0 issuesGOOS=windows go vet ./...mise run test:ci(unit + integration + Vogon canary)retired_gemini_test.gocover hook stripping, the no-op hook command, doctor, uninstall (including the leftover-file-only and unreadable-file cases) andagent remove gemini. The uninstall regression tests were checked to fail with the preflight change removed.geminilegacyparser tests, plus a chunking test for reassembling historical Gemini chunks🤖 Generated with Claude Code
Note
High Risk
Breaking removal of a full agent integration with hook uninstall/migration paths; incorrect handling could break upgrades for repos that still have Gemini hooks or old checkpoints.
Overview
Removes Gemini CLI as a supported agent — the
geminiclipackage, hook install/capture, review runner, summary provider, import/resume, skills setup, E2E runner, and CI matrix entries (GEMINI_API_KEY, default all-agents runs) are deleted. Docs,entire enable/configure, and dogfood.gemini/settings.jsonno longer mention or wire Gemini.Migration for existing users:
entire configure --agent gemininow reports unsupported. Leftover Entire hooks in.gemini/settings.jsonare handled byretired_gemini—entire hooks geminino-ops (exit 0), whiledoctor,disable --uninstall, andagent remove geministrip only Entire entries. Historical checkpoints taggedGemini CLIstill work via read-onlytranscript/geminilegacyandAgentTypeGeminihandling in chunk reassembly/explain.Other behavior tweaks: shadow-branch agent detection no longer treats
.geminias a marker; large transcript chunking for tasks usesopts.Agentinstead of removed content-based Gemini detection;.geminiis no longer a vouchable symlinked agent config dir.Reviewed by Cursor Bugbot for commit 844e915. Configure here.