Edilmo Palencia
Edilmo Palencia
## TLDR Creates comprehensive documentation for hook development, plugin creation, and migration from Claude Code, with practical examples and tutorials. ## Dive Deeper This documentation is essential for hook ecosystem...
## Summary Implement comprehensive hooks management commands for Gemini CLI: Panel, Enable, Disable, migrate ## Details - Add /hooks command with interactive panel showing all configured hooks - Display hook...
## Summary - Adds SessionStart and SessionEnd hook integration with matcher support for different session triggers (startup, resume, clear, compress, exit, logout, prompt_input_exit). - Adds PreCompress hook integration with matcher...
Fix critical production bug where telemetry data and SessionEnd hooks were being silently lost on process exit due to async/sync mismatch in Node.js exit handlers, and add comprehensive integration test...
### Summary The Gemini CLI Hooks v1 Feature introduces a first‑class hook system that lets developers intercept key lifecycle events in the Gemini agent loop. It mirrors the JSON‑over‑stdin contract,...
Gemini CLI uses `source: "compress"` for compression-triggered SessionStart, while Claude Code uses `source: "compact"`. This causes incompatibility for migrated hooks that check the source matcher. **Code Location:** - [packages/core/src/hooks/types.ts:462-466](packages/core/src/hooks/types.ts#L462-L466) -...
When a BeforeAgent hook blocks with exit code 2, it currently shows stderr to the user but leaves the prompt visible in UI/history. The design doc suggested an optional `erasePrompt`...
The `SessionEndReason.Logout` enum value exists but is never triggered because Gemini CLI has no logout concept. This was included for potential future enterprise scenarios where authentication changes during a session....
Comprehensive security review needed covering two main areas: 1. **Command Injection Vulnerability**: Shell command execution in hooks can be exploited if an attacker convinces a user to run the CLI...
The BeforeTool hook currently supports Claude Code compatibility aliases (`permissionDecision`/`permissionDecisionReason`) alongside the standard fields (`decision`/`reason`). Team decision is to **remove** these aliases to avoid carrying technical debt from Claude Code....