mirror of
https://github.com/qwibitai/nanoclaw.git
synced 2026-07-06 18:52:03 +08:00
462619d287
The apply engine now brackets each real mutation (applyOne) with a StepReporter (stepStart/stepEnd, balanced even on the failure path) and derives a human spinner caption per step via stepLabel: the nearest heading for slow/effectful kinds (dep, run, branch-fetch copy), null for instant kinds (local copy, env-set, json-merge, env-sync) and for the self-rendering effect:step so a spinner never clobbers a QR/pairing card. A label:<word> fence attr overrides; it's stripped with the fence, so it degrades invisibly to prose. runner.ts exposes its spinner machinery as startSpinner (runUnderSpinner now delegates to it, behavior unchanged). skill-driver.ts builds a TTY-gated spinnerReporter from it and passes it into applySkill by default, so piped/CI/test runs stay silent and unchanged. run-channel-skill threads an optional reporter override and keeps the connected_as line. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>