Skip to content

agent remove claude-code deletes unrelated .claude/settings.json keys #1924

Description

@Anexria

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

  • entire agent remove claude-code removes only Entire-owned hooks.
  • Unrelated .claude/settings.json keys survive unchanged.
  • A regression test covers mixed Entire and non-Entire Claude settings.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions