Summary
entire agent remove claude-code removes unrelated keys from the repository's .claude/settings.json instead of removing only Entire-managed Claude hooks.
Environment
- Entire CLI:
0.9.0
- OS: Windows amd64
- Repository already enabled for both Codex and Claude Code
Reproduction
Start with a project-level .claude/settings.json containing Entire-managed hooks plus an unrelated permission:
{
"hooks": {
"SessionStart": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "entire hooks claude-code session-start"
}
]
}
]
},
"permissions": {
"deny": [
"Read(./.entire/metadata/**)"
]
}
}
Run:
entire agent remove claude-code
CLI output:
Removed Claude Code hooks.
Actual resulting file:
The unrelated permissions.deny setting is removed together with the Entire hooks.
Expected Behavior
Only Entire-managed Claude Code hook entries should be removed. Unrelated top-level keys and unrelated hook entries should be preserved.
For the example above, the resulting file should be:
{
"permissions": {
"deny": [
"Read(./.entire/metadata/**)"
]
}
}
Workaround
Inspect the diff immediately after agent removal and manually restore unrelated Claude settings.
Acceptance Criteria
Summary
entire agent remove claude-coderemoves unrelated keys from the repository's.claude/settings.jsoninstead of removing only Entire-managed Claude hooks.Environment
0.9.0Reproduction
Start with a project-level
.claude/settings.jsoncontaining Entire-managed hooks plus an unrelated permission:{ "hooks": { "SessionStart": [ { "matcher": "", "hooks": [ { "type": "command", "command": "entire hooks claude-code session-start" } ] } ] }, "permissions": { "deny": [ "Read(./.entire/metadata/**)" ] } }Run:
CLI output:
Actual resulting file:
{}The unrelated
permissions.denysetting is removed together with the Entire hooks.Expected Behavior
Only Entire-managed Claude Code hook entries should be removed. Unrelated top-level keys and unrelated hook entries should be preserved.
For the example above, the resulting file should be:
{ "permissions": { "deny": [ "Read(./.entire/metadata/**)" ] } }Workaround
Inspect the diff immediately after agent removal and manually restore unrelated Claude settings.
Acceptance Criteria
entire agent remove claude-coderemoves only Entire-owned hooks..claude/settings.jsonkeys survive unchanged.