fix(hooks): 9 hook wiring fixes — DMS/Calendar name mismatch, Mail/Contact missing triggers
Check Cross-Plugin Imports / check (push) Has been cancelled

This commit is contained in:
Agent Zero
2026-08-17 07:21:39 +02:00
parent 0a1ba30ed7
commit 8de35a24a7
10 changed files with 1255 additions and 568 deletions
+23 -10
View File
@@ -7,6 +7,23 @@ from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent.parent
APP = ROOT / "app"
# Simplified patterns — match either single or double quotes separately
PATTERNS_REG = [
r'register_(?:action|filter)s?\s*\(\s*"([^"]+)"',
r"register_(?:action|filter)s?\s*\(\s*'([^']+)'",
r'register_actions_by_owner\s*\(\s*"([^"]+)"',
r"register_actions_by_owner\s*\(\s*'([^']+)'",
]
PATTERNS_TRIG = [
r'do_action\s*\(\s*"([^"]+)"',
r"do_action\s*\(\s*'([^']+)'",
r'apply_filters?\s*\(\s*"([^"]+)"',
r"apply_filters?\s*\(\s*'([^']+)'",
r'trigger\s*\(\s*"([^"]+)"',
r"trigger\s*\(\s*'([^']+)'",
]
def find_hook_registrations():
regs = []
for py in APP.rglob("*.py"):
@@ -15,10 +32,9 @@ def find_hook_registrations():
except Exception:
continue
rel = str(py.relative_to(ROOT))
for m in re.finditer(r'register_(?:action|filter)s?\s*\(\s*["\']([^"\']+)['"]', content):
regs.append({"file": rel, "hook_type": "action_or_filter", "hook_name": m.group(1)})
for m in re.finditer(r'register_actions_by_owner\s*\(\s*["\']([^"\']+)['"]', content):
regs.append({"file": rel, "hook_type": "action_group", "hook_name": m.group(1)})
for pat in PATTERNS_REG:
for m in re.finditer(pat, content):
regs.append({"file": rel, "hook_name": m.group(1)})
return regs
def find_hook_triggers():
@@ -29,12 +45,9 @@ def find_hook_triggers():
except Exception:
continue
rel = str(py.relative_to(ROOT))
for m in re.finditer(r'do_action\s*\(\s*["\']([^"\']+)['"]', content):
triggers.append({"file": rel, "hook_name": m.group(1), "type": "action"})
for m in re.finditer(r'apply_filters?\s*\(\s*["\']([^"\']+)['"]', content):
triggers.append({"file": rel, "hook_name": m.group(1), "type": "filter"})
for m in re.finditer(r'trigger\s*\(\s*["\']([^"\']+)['"]', content):
triggers.append({"file": rel, "hook_name": m.group(1), "type": "trigger"})
for pat in PATTERNS_TRIG:
for m in re.finditer(pat, content):
triggers.append({"file": rel, "hook_name": m.group(1)})
return triggers
def main():