Skip to content

v2.38.7 — read-heavy session checkpoint coverage

Choose a tag to compare

@jnuyens jnuyens released this 25 Apr 08:48

gsd-plugin v2.38.7

Plugin-only patch. Closes a real checkpoint gap during read-heavy research sessions.

What was broken

v2.38.5's PostToolUse periodic checkpoint used matcher `Bash|Edit|Write|MultiEdit|NotebookEdit` — file-mutating tools only. A research-phase session this morning hit a usage cap with the last checkpoint written 18 minutes earlier; those 18 minutes were almost entirely `Read`, `Grep`, `Glob`, `WebFetch` calls (no file mutations). PostToolUse never fired → no checkpoint → 18 minutes of work state vulnerable to loss.

What's in v2.38.7

Fixed:

  • PostToolUse matcher broadened to also include `Read|Grep|Glob|WebFetch|WebSearch`. Combined with the existing 60s mtime throttle, write rate stays bounded ≤1/min regardless of how often the hook fires. Smoke-tested under burst load: 5 rapid reads → 1 write.
  • Net guarantee: `HANDOFF.json` is at most ~60s stale during an active session, regardless of whether the work is read-heavy or write-heavy.

Changed:

  • README "What changed from upstream GSD" expanded from a single 6-row table into four grouped tables (Install + runtime architecture, Session continuity, Drift resilience, Plugin-environment robustness). Surfaces the v1.1, v1.2, and v2.38.x improvements that previously weren't documented as user-facing differences vs upstream.

Token cost: zero

Verified in CC source (`utils/messages.ts:4099-4115`): PostToolUse hook output is never injected into the model's context — only `SessionStart` and `UserPromptSubmit` produce systemReminder messages. The hook fires more often now, but it costs only wall-clock (~5-10ms per throttled fire) and disk I/O (~1KB per actual write, ≤1/min). No conversation tokens consumed.

Based on

Upstream GSD 1.38.3.