From e73f94fa838f2a8abd209ae4511399de05361c24 Mon Sep 17 00:00:00 2001 From: teknium1 <127238744+teknium1@users.noreply.github.com> Date: Sat, 12 Sep 2026 20:01:54 -0700 Subject: [PATCH] refactor(platforms): every plugin setup wizard uses the shared declines_reconfigure gate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fourteen platform plugins hand-rolled the "already configured? Reconfigure? [y/N]" gate at the top of interactive_setup (env check + info line + prompt_yes_no(..., False)), with drifting wording ("X: already configured" vs "X is already configured." vs "already enabled") and, for LINE and SimpleX, raw input() loops with their own EOF/KeyboardInterrupt handling and no gate at all. Fixes to the gate (non-interactive handling, wording, default) therefore reached only the core Telegram/BlueBubbles/webhook wizards. - hermes_cli/setup_platforms.py: `_declines_reconfigure` becomes the public `declines_reconfigure(label, question, *env_vars)` (any-of env check, so Matrix's token-or-password gate fits); `_save_prompted` becomes `save_prompted` alongside it. No alias kept; the three core callers are updated. - buzz, dingtalk, discord, feishu, google_chat, irc, matrix, mattermost, raft, slack, teams, wecom: the hand-rolled gate is replaced by one `declines_reconfigure(...)` call; post-decline extras (Discord allowlist nudge, Slack manifest refresh, Raft "Keeping" line) stay local and unchanged. - line, simplex: the raw input() loops move onto hermes_cli.cli_output.prompt (masked for secrets, "" on Ctrl-C/EOF) and gain the shared gate on their primary env var. Behavior change: the gate's info line is now uniformly "