claude-recall 0.23.0 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -131,10 +131,15 @@ def main():
131
131
  last_search = state.get('lastSearchAt')
132
132
 
133
133
  # FIRST TOOL CALL GATE: If rules have never been loaded this session,
134
- # block on codebase-interacting tools (Read/Glob/Grep/Write/Edit/Bash/Task).
135
- # This ensures Claude loads rules before forming opinions from exploration.
134
+ # only block mutation tools. Read-only exploration (Read/Glob/Grep) passes
135
+ # freely reading a file can't bypass preferences or corrections, and
136
+ # gating it added 1–3 blocked calls of friction per session with no safety
137
+ # benefit. The guarantee that matters (load_rules before mutations) is
138
+ # preserved by the ENFORCE_TOOLS check below.
136
139
  if not last_search:
137
- pass # Fall through to blocking logic below
140
+ if tool_name not in ENFORCE_TOOLS:
141
+ sys.exit(0)
142
+ # Mutation tool on first call — fall through to blocking logic below.
138
143
  else:
139
144
  # Rules loaded at least once — only enforce on mutation tools
140
145
  if tool_name not in ENFORCE_TOOLS:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-recall",
3
- "version": "0.23.0",
3
+ "version": "0.23.1",
4
4
  "description": "Persistent memory for Claude Code and Pi with native Skills integration, automatic capture, failure learning, and project scoping",
5
5
  "main": "dist/index.js",
6
6
  "bin": {