Commit graph

4 commits

Author SHA1 Message Date
teknium1
38c700e230
fix: plugin is_connected reads via gateway.get_env_value; matrix gets explicit is_connected; setup-flow test stubs
- whatsapp/telegram/matrix _is_connected now read tokens via
  hermes_cli.gateway.get_env_value (not os.getenv) so setup-status callers that
  patch get_env_value — and the connected-platforms check — observe the same
  value (matches the discord/slack plugin pattern). whatsapp keys off
  WHATSAPP_ENABLED instead of returning unconditional True (was making it always
  show 'configured' in hermes setup). matrix/telegram gain explicit is_connected
  so _platform_status reflects real config, not mere SDK presence.
- _all_platforms() hides matrix on Windows for registry-discovered plugins too
  (python-olm has no Windows wheel), not just the legacy _PLATFORMS list.
- setup_gateway tests stub _configure_platform + keep checklist pre-selection so
  migrated plugins' interactive_setup wizards don't read real stdin.
2026-06-07 06:23:08 -07:00
teknium1
156176a44e
fix: gateway log component + explicit-disable across migrated plugin platforms; test path/import updates
- hermes_logging COMPONENT_PREFIXES['gateway'] now includes plugins.platforms
  so migrated adapters' logs route to gateway.log + match
  'hermes logs --component gateway'.
- Generalize the _enabled_explicit marker (was slack-only) to every platform
  with an explicit enabled key, and make _enable_from_env read (not pop) it,
  so the registry-driven plugin-enable pass honors an explicit enabled:false
  for telegram/matrix/etc. instead of re-enabling on token/SDK presence.
- Telegram gets an is_connected (token check) so the enable gate doesn't flip
  it on merely because python-telegram-bot is importable.
- Test updates: windows-native npm-scan path -> plugins/platforms/whatsapp,
  webhook-secret source path -> plugin adapter, logging component tests use
  expanded gateway prefixes, connected-checker invariant accepts registry
  is_connected/validate_config.
2026-06-07 06:23:08 -07:00
teknium1
f080fedf13
test+fix: rewrite migrated-platform test imports; fix connected-check discovery, telegram extra precedence, prompt_choice import
- Sweep test imports gateway.platforms.{telegram,feishu,matrix,dingtalk,whatsapp}
  (+ telegram_network / feishu satellites) -> plugins.platforms.<x>.adapter
  across ~68 test files; both 'from X import' and 'from gateway.platforms import X'
  forms.
- _is_platform_connected now forces discover_plugins() before the registry
  lookup so get_connected_platforms() works on directly-constructed GatewayConfig
  (fixes dingtalk-recognised tests after its checker moved to the plugin).
- telegram _apply_yaml_config no longer re-emits generic shared-config keys
  (reply_prefix etc.) that _merge_platform_map already merges with top-level
  precedence, while still passing through telegram-specific extras (base_url).
- prompt_choice lives in hermes_cli.setup, not cli_output — fixed the import in
  feishu/dingtalk interactive_setup and the test patch target.
- test_setup_feishu rewritten to drive interactive_setup via the plugin.
2026-06-07 06:23:08 -07:00
teknium1
736ffb3bc1
refactor(gateway): migrate telegram adapter (+ telegram_network) to bundled plugin
WIP toward #41112 — the last and largest gateway channel. Telegram adapter +
telegram_network satellite relocated to plugins/platforms/telegram/ with the
network import rewritten to the new package path. register() exposes the
platform with standalone_sender_fn (delegates to the retained _send_telegram
REST sender), apply_yaml_config_fn (full telegram: YAML→env + extra bridge),
setup_fn (delegates to the managed-bot QR wizard via lazy import), and a
_build_adapter that applies the notification-mode resolution that used to live
in gateway/run.py's factory branch. Core touchpoints stripped: run.py factory
branch (was the leading if), config.py 90-line telegram_cfg bridge, gateway.py
static dict + setup-map entry. send_message_tool keeps _send_telegram (the
plugin delegates to it) with its TelegramAdapter imports repointed to the
plugin path. Generic Platform.TELEGRAM references in core (auth maps, bridged
config-loop special-cases, source-platform behavior checks) intentionally
remain — same 'left generic in core' policy as the merged migrations.
2026-06-07 06:23:08 -07:00