Skip to content

Conversation

@peyton-alt
Copy link
Contributor

@peyton-alt peyton-alt commented Jan 12, 2026

Features:

  • Hooks installed and verified (11 types defined)
  • Session tracking with checkpoints
  • Concurrent session blocking
  • Description extraction from Gemini JSON transcripts

New Files

File Description
cmd/entire/cli/agent/geminicli/gemini.go Gemini agent implementation
cmd/entire/cli/agent/geminicli/hooks.go Hook installation and configuration
cmd/entire/cli/agent/geminicli/transcript.go JSON transcript parsing
cmd/entire/cli/agent/geminicli/types.go Type definitions
cmd/entire/cli/agent/geminicli/*_test.go Unit tests
cmd/entire/cli/hooks_geminicli_handlers.go Hook handlers (821 lines)
cmd/entire/cli/integration_test/gemini_concurrent_session_test.go Integration tests
.gemini/ Gemini CLI configuration, commands, and agents
GEMINI.md Project documentation for Gemini

Modified Files

File Change
cmd/entire/cli/hook_registry.go Register Gemini handlers
cmd/entire/cli/hooks_cmd.go Import geminicli package
cmd/entire/cli/setup.go Add Gemini to enable flow
cmd/entire/cli/agent/types.go Add UserPrompt field
cmd/entire/cli/agent/registry.go Add GetByAgentType() for cross-agent lookup
cmd/entire/cli/session/state.go Add AgentType field
cmd/entire/cli/strategy/manual_commit_condensation.go Gemini JSON transcript parsing
cmd/entire/cli/strategy/manual_commit_logs.go Fix path for session metadata
cmd/entire/cli/hooks_claudecode_handlers.go Cross-agent resume command

Integration tests cover:

  1. TestGeminiConcurrentSessionWarning_BlocksFirstPrompt - Verifies blocking response format
  2. TestGeminiConcurrentSessionWarning_SetsWarningFlag - Verifies state persistence
  3. TestGeminiConcurrentSessionWarning_SubsequentPromptsSucceed - Verifies one-time warning
  4. TestGeminiConcurrentSessionWarning_NoWarningWithoutCheckpoints - Verifies no false positives
  5. TestGeminiConcurrentSessionWarning_ResumeCommandFormat - Verifies Gemini-specific resume command

Claude Code vs Gemini CLI Hook

Aspect Claude Code Gemini CLI
Config file .claude/settings.json .gemini/settings.json
Hook format hooks: [{matcher, hooks: [{command}]}] hooks: {EventName: [{matcher?, hooks: [{name, type, command}]}]}
Blocking response {"continue":false,"stopReason":"..."} {"decision":"block","reason":"..."}
Blocking exit code Non-zero 0 (must be 0 for JSON parsing)
Transcript format JSONL (one JSON object per line) JSON (single object with messages array)
Resume command claude -r <session-id> gemini --resume <session-id>

How to Test

# Enable Gemini
entire enable --agent gemini --strategy manual-commit --force

# Start Gemini session
gemini
# Create a file, then /exit

# Verify session tracked
entire session list
# Expected: Shows session with description extracted from transcript

# Test concurrent blocking
gemini
# Expected: Shows blocking message with "gemini --resume <session-id>"

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds comprehensive Gemini CLI agent support to the Entire CLI tool, implementing the full agent interface with hook support for tracking Gemini CLI sessions. The implementation mirrors the existing Claude Code agent pattern while adapting to Gemini's specific hook format and JSON transcript structure.

Changes:

  • New Gemini CLI agent implementation with full hook support
  • Integration tests for concurrent session handling and agent operations
  • Hook handlers for session lifecycle, tool usage, and model interactions
  • Support for Gemini-specific transcript parsing (JSON vs Claude's JSONL)

Reviewed changes

Copilot reviewed 33 out of 33 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
cmd/entire/cli/agent/geminicli/gemini.go Core agent implementation with session ID transformation and transcript parsing
cmd/entire/cli/agent/geminicli/hooks.go Hook installation/uninstallation logic for .gemini/settings.json
cmd/entire/cli/agent/geminicli/transcript.go Gemini JSON transcript parser for extracting prompts and modified files
cmd/entire/cli/agent/geminicli/types.go Type definitions for Gemini settings, hooks, and input structures
cmd/entire/cli/hooks_geminicli_handlers.go 11 hook handler implementations for Gemini lifecycle events
cmd/entire/cli/setup.go Adds setupGeminiCLIHook() to enable flow
cmd/entire/cli/integration_test/gemini_concurrent_session_test.go 5 integration tests for concurrent session warning behavior
cmd/entire/cli/integration_test/hooks.go Test helpers for Gemini hook simulation
cmd/entire/cli/integration_test/testenv.go Added GeminiProjectDir to test environment
cmd/entire/cli/integration_test/agent_test.go Unit tests for agent detection, hook installation, and session operations
.gemini/settings.json Gemini CLI hook configuration for the repository
test-gemini.txt Test artifact file
.entire/settings.json Modified local configuration
.claude/settings.json Modified local Claude configuration

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@peyton-alt peyton-alt force-pushed the feat/gemini-cli-agent branch from 734b3e9 to f1965c8 Compare January 13, 2026 05:24
@entireio entireio deleted a comment from Copilot AI Jan 13, 2026
@entireio entireio deleted a comment from Copilot AI Jan 13, 2026
@entireio entireio deleted a comment from Copilot AI Jan 13, 2026
@entireio entireio deleted a comment from Copilot AI Jan 13, 2026
@entireio entireio deleted a comment from Copilot AI Jan 13, 2026
@entireio entireio deleted a comment from Copilot AI Jan 13, 2026
@peyton-alt peyton-alt force-pushed the feat/gemini-cli-agent branch 4 times, most recently from 2bcd90c to b5e48b7 Compare January 17, 2026 00:04
@peyton-alt peyton-alt marked this pull request as ready for review January 19, 2026 20:18
@peyton-alt peyton-alt requested a review from a team as a code owner January 19, 2026 20:18
Soph added 3 commits January 20, 2026 16:44
Entire-Checkpoint: 864e0c91f5c0
Entire-Checkpoint: d70360ee0899
@Soph Soph merged commit ebd2371 into main Jan 21, 2026
3 checks passed
@Soph Soph deleted the feat/gemini-cli-agent branch January 21, 2026 12:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants