fix(plugin): recent-context cap counts text, and an empty transcript is not a failure (#4364)
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 11s
CI & Build / integration (push) Successful in 45s
CI & Build / TypeScript typecheck (push) Successful in 53s
CI & Build / Python tests (push) Successful in 1m35s
CI & Build / Build & push image (push) Successful in 51s

The trailing newline became a space before the 600-char cut, so the cap
kept 599 characters of text; and under pipefail a grep that matched no
reply made the helper exit 1. Trim before cutting; return 0 explicitly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-23 16:08:01 -04:00
co-authored by Claude Opus 5.5
parent eb00554976
commit 20227ebb5d
2 changed files with 5 additions and 2 deletions
+1 -1
View File
@@ -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.09.23.2007",
"version": "2026.09.23.2008",
"author": {
"name": "Bryan Van Deusen"
},
+4 -1
View File
@@ -151,7 +151,10 @@ scribe_recent_context() {
' 2>/dev/null \
| scribe_json_unescape \
| tr '\n\t' ' ' \
| awk '{ n = length($0); print (n > 600 ? substr($0, n - 599) : $0) }'
| awk '{ sub(/[ ]+$/, ""); n = length($0); if (n) print (n > 600 ? substr($0, n - 599) : $0) }'
# A transcript with no reply yet is an answer ("nothing"), not a failure —
# under pipefail the grep that matched nothing would otherwise be the status.
return 0
}
# $1 flat text, $2 exact path → the decoded scalar, or "" if absent.