---
name: lockstep-degrade-v0102
description: claude-spt v0.10.2 emergency — hook binary DEGRADES not bricks on dispatch×hook_cmd lockstep skew
metadata: 
  node_type: memory
  type: project
  originSessionId: 3f3d9dab-5a7e-4a69-b8af-f6bff1efb3af
---

**spt-claude-code v0.10.2 PUBLISHED** (2026-07-01, `SaberMage/claude-spt` tag v0.10.2 @26a0229, adapter.spt 561KB win+linux, Latest). Emergency fix for `REQ-HAZARD-HOOKCMD-DISPATCH-LOCKSTEP`.

**Bug:** stale plugin dispatch.sh (old 0.1.8 shape `exec $bin "$event"`) × NEW bare-path hook_cmd (`{adapter_dir}/claude-spt`, no ` hook`) → ran `claude-spt UserPromptSubmit` (hook token DROPPED) → old main.rs `Sub::Unknown` exited 2 on EVERY hook → CC blocked ALL tools + looped Stop hook, zero self-repair until `/reload-plugins`. Screenshot tell: "claude-spt: unknown subcommand: UserPromptSubmit". NOTE: `/plugin` UI can report 0.1.9 while the dispatch.sh actually exec'd is stale-0.1.8 (metadata/file skew; `installed_plugins.json.bak-fwdslash` = path-sep class) — 0.1.9's `exec "$bin" hook "$event"` CANNOT emit bare `claude-spt <Event>`, so a bare-event error PROVES a stale-0.1.8 dispatch ran regardless of UI version.

**Fix (binary-side, rides `spt adapter update` → reaches even stale-plugin nodes):** `claude-spt <CCEvent>` (a recognised CC hook event as a BARE subcommand) now routes through the hook handler (perch keeps working) + non-blocking stderr note advising /reload-plugins; genuine typo still exits 2 loud. hook.rs: `CC_HOOK_EVENTS` + `is_cc_hook_event()` single source of truth; `run()`→`run_event()` (position-independent --host-pid). main.rs `Sub::Unknown` degrade branch.

**Recovery for a bricked box:** `spt adapter update claude-spt` (pulls 0.10.2 binary → degrade active) then `/reload-plugins` (also gets 0.1.9 dispatch → full clean function, stderr nag stops). Manifest floor unchanged (min_spt_core 0.19.0). NO cplugs skeleton bump — dispatch already fixed at 0.1.9; degrade is binary-only. Kin [[counter39-field-bugs-1-3]] (bug #4 perch-id v0.10.1). int-stage (post-update reconcile refreshing ccs-instance plugin roots) still OPEN — degrade neutralizes the brick so it's UX cleanup not blocker.
