mirror of
https://github.com/qwibitai/nanoclaw.git
synced 2026-07-06 18:52:03 +08:00
c249989b5a
Once any directive bounces to an agent, the skill is no longer in a known-good state, so the engine must not fire a dangerous side effect on its own — a live restart, an interactive pairing/QR step, or a wire after an upstream failure just wastes the operator's time (a doomed QR, a restart that loads a bad credential). `blocked` latches on the first bounce and converts any later effect:restart / effect:step / effect:wire into its own bounce, so the agent finishes it from the prose after fixing the failure. A deferred prompt (headless rebuild, no answer) never bounces, so `blocked` stays false and a later restart remains runnable. Reorder add-slack so auth.test / conversations.open validate the credential ABOVE effect:restart — fast-fail a bad token while it's still cheap, matching the old bespoke-flow position. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>