diff --git a/plugin/.claude-plugin/plugin.json b/plugin/.claude-plugin/plugin.json index 013d69dc..bd5458f8 100644 --- a/plugin/.claude-plugin/plugin.json +++ b/plugin/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "scribe", "description": "Scribe for Claude Code: connects the scribe MCP server, adds the hooks that deliver live project state and relevant records at the right moment, ships the shared client-neutral Scribe skills (using-scribe, writing-plans, reporting-back, systematic-debugging, verification, brainstorming, reusing-code, shape-accounting), and syncs your saved Scribe Processes as skills (/scribe:sync).", - "version": "2026.10.03.1934", + "version": "2026.10.04.0125", "author": { "name": "Bryan Van Deusen" }, diff --git a/plugin/hooks/scribe_defs.sh b/plugin/hooks/scribe_defs.sh index 8a4c2deb..2dd48514 100644 --- a/plugin/hooks/scribe_defs.sh +++ b/plugin/hooks/scribe_defs.sh @@ -79,6 +79,7 @@ scribe_skip_prompt() { _scribe_prompt=${1#"${1%%[![:space:]]*}"} case "$_scribe_prompt" in ""*|\ + ""*|""*|""*|""*|\ ""*|""*|""*) return 0 ;; diff --git a/tests/test_prompt_boundary_filter.py b/tests/test_prompt_boundary_filter.py index bd44a403..97862d96 100644 --- a/tests/test_prompt_boundary_filter.py +++ b/tests/test_prompt_boundary_filter.py @@ -52,6 +52,10 @@ SYNTHETIC = [ "Failed to reconnect", "Caveat: The messages below were generated…", " \n\nabc", # whitespace must not walk the filter + # A subagent's hand-back (#4785) — it carries attributes, so the tag is + # matched up to its name, not to a closing `>`. + '\n[Subagent hand-back] The text below is the final report', + "\nreport", ] # Typed by a person. Every one of these must still be retrieved against. @@ -62,6 +66,7 @@ REAL = [ "fix the hookinjected", # tag, but trailing "This session is being continued from a previous conversation.", # see module docstring " is rendering wrong", # a tag, but not one of the client's + " list is empty", # shares the prefix, is not the tag "here is the transcript you asked for:\nhi", ]