Skip to content

Commit c16210c

Browse files
authored
fix: migrate legacy Claude edit denies (#295)
1 parent c01a89a commit c16210c

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

runtimes/claude-code.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,13 @@ runtime_install_hooks() {
216216
"Edit(\($site)/wp-includes/**)"
217217
]')
218218

219+
local legacy_wordpress_deny_rules
220+
legacy_wordpress_deny_rules=$(jq -n '[
221+
"Edit(/wp-content/plugins/**)",
222+
"Edit(/wp-content/themes/**)",
223+
"Edit(/wp-includes/**)"
224+
]')
225+
219226
local settings='{}'
220227
if [ -f "$settings_file" ]; then
221228
settings=$(cat "$settings_file")
@@ -227,6 +234,7 @@ runtime_install_hooks() {
227234
--arg cmd "$hook_cmd" \
228235
--argjson allow_rules "$workspace_allow_rules" \
229236
--argjson deny_rules "$wordpress_deny_rules" \
237+
--argjson legacy_deny_rules "$legacy_wordpress_deny_rules" \
230238
'
231239
.autoMemoryEnabled = false
232240
@@ -240,7 +248,7 @@ runtime_install_hooks() {
240248
)
241249
242250
| .permissions.deny = (
243-
((.permissions.deny // []) + $deny_rules) | unique
251+
(((.permissions.deny // []) - $legacy_deny_rules + $deny_rules) | unique)
244252
)
245253
246254
| .hooks.SessionStart = (

tests/claude-code-permissions.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@ mkdir -p "$SITE_PATH/.claude" "$DM_WORKSPACE_DIR"
1515
cat > "$SITE_PATH/.claude/settings.json" <<'JSON'
1616
{
1717
"permissions": {
18-
"deny": ["Read(./private/**)"]
18+
"deny": [
19+
"Read(./private/**)",
20+
"Edit(/wp-content/plugins/**)",
21+
"Edit(/wp-content/themes/**)",
22+
"Edit(/wp-includes/**)"
23+
]
1924
}
2025
}
2126
JSON

0 commit comments

Comments
 (0)