tree f80dd919b650a2ede32e9c4b66b7659a0938da87
parent d1bd519dafdcb8039c88ca386b886e1a0456e17f
author Josh Bleecher Snyder <josharian@gmail.com> 1748899319 +0000
committer Josh Bleecher Snyder <josharian@gmail.com> 1748909859 -0700

loop: restrict git hooks installation to inner instances only

Modify git hooks setup to only install hooks when running in container (inner
sketch instance) to prevent hooks from being installed in outer instances.

Previously, setupGitHooks was called unconditionally during agent initialization,
causing git hooks to be installed in both outer (host) and inner (container)
sketch instances. This created potential conflicts and unnecessary hook
installation in the outer environment.

**Problem Analysis:**
- Git hooks were being installed in both outer and inner sketch instances
- Only inner instances (running in Docker containers) should have git hooks
- setupGitHooks call was unconditional within the !ini.NoGit block
- Agent.IsInContainer() method already existed to distinguish instance types

**Implementation:**
- Added IsInContainer() check around setupGitHooks call in Agent.Init()
- Maintained existing git repository setup logic for both instance types
- Preserved all other git operations (tag creation, codebase analysis, etc.)
- No changes to setupGitHooks function itself

**Technical Details:**
- setupGitHooks now only executes when a.IsInContainer() returns true
- IsInContainer() returns a.config.InDocker boolean value
- Outer instances (InDocker=false) skip hook installation entirely
- Inner instances (InDocker=true) continue installing hooks as before
- removeGitHooks remains unchanged for error recovery scenarios

**Testing:**
- Added comprehensive TestGitHooksOnlyInContainer test with subtests
- OuterInstance subtest verifies hooks are NOT created when InDocker=false
- InnerInstance subtest verifies hooks ARE created when InDocker=true
- Test validates both hook file existence and content verification
- All existing tests continue to pass without modification

**Hook Installation Behavior:**
- Outer instances: No git hooks installed, clean git repository
- Inner instances: Full hook installation (post-commit, prepare-commit-msg)
- Error recovery removeGitHooks remains available for both instance types
- Git operations like tagging and analysis work correctly in both cases

This ensures git hooks are only installed where they're needed (inner instances)
while maintaining full git functionality and preventing conflicts in outer
environments where hooks should not be present.

Co-Authored-By: sketch <hello@sketch.dev>
Change-ID: se8f7e7e9ec63a55ek