cursor-hooks/REVIEW.md
This document provides a thorough review of the Cursor hooks integration, covering all aspects from implementation details to edge cases and potential issues.
common.sh for reusabilitycommon.sh - Utility FunctionsPurpose: Shared utilities for all hook scripts
Functions:
check_dependencies() - Validates jq and curl existread_json_input() - Safely reads and validates JSON from stdinget_worker_port() - Reads port from settings with validationensure_worker_running() - Health checks with retriesurl_encode() - URL encoding for special charactersget_project_name() - Extracts project name with edge case handlingjson_get() - Safe JSON field extraction with array supportis_empty() - Null/empty string detectionEdge Cases Handled:
workspace_roots[0])Potential Issues:
url_encode() uses jq - if jq fails, encoding fails silentlysession-init.sh - Session InitializationPurpose: Initialize claude-mem session when prompt is submitted
Flow:
/api/sessions/initEdge Cases Handled:
Potential Issues:
Parity with Claude Code:
save-observation.sh - Observation CapturePurpose: Capture MCP tool usage and shell commands
Flow:
Edge Cases Handled:
Potential Issues:
Parity with Claude Code:
save-file-edit.sh - File Edit CapturePurpose: Capture file edits as observations
Flow:
Edge Cases Handled:
Potential Issues:
Parity with Claude Code:
session-summary.sh - Summary GenerationPurpose: Generate session summary when agent loop ends
Flow:
Edge Cases Handled:
Potential Issues:
Parity with Claude Code:
context-inject.sh - Context Injection via Rules FilePurpose: Fetch context and write to .cursor/rules/ for auto-injection
How It Works:
.cursor/rules/claude-mem-context.mdc with alwaysApply: trueFlow:
/api/context/inject.cursor/rules/claude-mem-context.mdc{"continue": true}Edge Cases Handled:
.cursor/rules/ directory → created automaticallyParity with Claude Code:
Input Validation:
{}Dependency Checks:
Network Errors:
Data Validation:
Input Sanitization:
Error Information:
Dependency Security:
Non-Blocking:
Efficient Health Checks:
Resource Usage:
common.sh functions:
json_get() with various field typesget_project_name() with edge casesurl_encode() with special charactersensure_worker_running() with various statesHook scripts:
End-to-end flow:
Edge cases:
Cursor Hook System:
.cursor/rules/ filePlatform Support:
Context Injection:
.cursor/rules/claude-mem-context.mdcThe Cursor hooks integration is production-ready with:
The implementation handles edge cases well and follows best practices for reliability and maintainability.