{"content":"Development journal for commit 7724bf3b (fix: honor approval policy never in wallet_transfer external gate).\n\nBlocks a real defect found by an independent cross-change coherence review of the three parallel capability-parity PRs: in sessions configured with approval/policy \"never\" (prompts disabled), wallet_transfer's external-transfer gate still called the native approval dialog — which can never pass — making the documented external_confirmed fallback dead code in exactly the configuration that needs it.\n\nFix is surgical: consult sessionApprovalPolicy (the same lineage send_private_chat uses, including an approval.overrideOf hook for tests); when policy is \"never\" or no approval surface exists, skip the dialog and require external_confirmed: true, rejecting with the full preview details otherwise. New test pins the behavior: dialog must not spawn, refusal carries preview + external_confirmed guidance, preview-only run with zero broadcast.\n\nVerification:\ncd dsh-plugin && pnpm run build && node --test tests/wallet-tools.test.mjs\n→ exit 0, 12 pass, 0 fail\n\nFiles:\ndsh-plugin/src/wallet-tools.ts\ndsh-plugin/tests/wallet-tools.test.mjs","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}