Devin Review #350 caught a coverage gap: the chmod +x pass only ran in _bootstrap_clone (initial install), not in _git_fetch_and_reset (every subsequent `agnes refresh-marketplace` and `--check` follow-up). On core.filemode=false setups, a `git reset --hard FETCH_HEAD` overwrites the working tree without restoring the +x bit, so a hook plugin version bump would silently re-strip the bit and Permission-denied breakage would return on the next SessionStart. Extracted _chmod_clone_sh_files() helper; both _bootstrap_clone and _git_fetch_and_reset now call it. Best-effort, no-op on Windows NTFS. |
||
|---|---|---|
| .. | ||
| commands | ||
| lib | ||
| skills | ||
| templates/commands | ||
| __init__.py | ||
| client.py | ||
| config.py | ||
| error_render.py | ||
| main.py | ||
| snapshot_meta.py | ||
| update_check.py | ||
| v2_client.py | ||