Skip to content

fix(config): bridge reply_in_thread from platform config to extra dict - #7534

Closed
konsisumer wants to merge 2 commits into
NousResearch:mainfrom
konsisumer:fix/slack-reply-in-thread-bridge
Closed

fix(config): bridge reply_in_thread from platform config to extra dict#7534
konsisumer wants to merge 2 commits into
NousResearch:mainfrom
konsisumer:fix/slack-reply-in-thread-bridge

Conversation

@konsisumer

@konsisumer konsisumer commented Apr 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Setting slack.reply_in_thread: false in config.yaml had no effect because the key was missing from the generic platform config bridging logic in gateway/config.py
  • The Slack adapter reads reply_in_thread from self.config.extra, but the config loader never bridged it from the top-level slack: block — so the default True always won
  • Added reply_in_thread to the bridged keys alongside the existing require_mention, free_response_channels, etc.

Closes #7532

Test plan

  • New test_bridges_reply_in_thread_from_slack_config test verifies the key is bridged correctly
  • All 18 test_config.py tests pass
  • CI passes

@konsisumer
konsisumer force-pushed the fix/slack-reply-in-thread-bridge branch from f0abeeb to 3bea279 Compare April 11, 2026 04:36
@konsisumer

Copy link
Copy Markdown
Contributor Author

Rebased onto latest origin/main and cherry-picked 6 commits to fix the 41 pre-existing CI test failures (none introduced by this PR):

  1. dd19b7fb — defensive getattr for _session_model_overrides and request_overrides (fixes ~20 test failures from tests using object.__new__())
  2. 51c58ae1 — repair 13 pre-existing test failures: AudioRecorder.is_recording property, env var cleanup in auth gate tests, _attached_images in voice CLI helper, camofox config version bump 13→14
  3. 21ba33ad — add missing .request() / .get_updates_request() builder chain mocks in telegram conflict tests (4 failures)
  4. 51c737bb — add missing register_p2_im_chat_member_bot_added_v1 / register_p2_im_chat_member_bot_deleted_v1 methods to feishu _Builder mock (1 failure)
  5. 7c1b0c5c — add request_overrides = {} to _make_agent() in test_ctx_halving_fix.py (4 failures)
  6. 3bea279f — update test_email_in_session_discovery for enum-based channel directory (1 failure)

All cherry-picked from passing PR branches — these are the same fixes applied across #7153, #7226, #7265, #7305, #7398, #7513.

@konsisumer

Copy link
Copy Markdown
Contributor Author

Fixed the 3 pre-existing CI test failures (none introduced by this PR):

Fix Test
Replace undefined get_vision_auxiliary_client() with resolve_vision_provider_client() and unpack 3-tuple test_auxiliary_client.py::test_vision_auto_uses_active_provider_as_fallback
Set _stop_task=None and mock async methods on GatewayRunner to prevent TypeError: can't await MagicMock test_zombie_process_cleanup.py::test_gateway_stop_calls_close
Handle non-dict sync responses (e.g. SyncError) in Matrix _sync_loop to detect auth errors instead of looping forever test_ws_auth_retry.py::test_unknown_token_sync_error_stops_loop

CI should now pass (pending re-run).

@konsisumer
konsisumer force-pushed the fix/slack-reply-in-thread-bridge branch 3 times, most recently from 46f4b64 to 0d6451a Compare April 11, 2026 23:49
Setting `slack.reply_in_thread: false` in config.yaml had no effect
because the key was not included in the generic platform config bridging
logic. The Slack adapter reads `reply_in_thread` from the platform extra
dict (`self.config.extra.get("reply_in_thread", True)`), but the config
loader only bridged require_mention, free_response_channels,
mention_patterns, reply_prefix, and unauthorized_dm_behavior — not
reply_in_thread.

Add reply_in_thread to the bridged keys so that top-level platform
config (e.g. `slack.reply_in_thread: false`) is propagated to the
platform extra dict where the adapter reads it.

Closes NousResearch#7532
@konsisumer
konsisumer force-pushed the fix/slack-reply-in-thread-bridge branch from 0d6451a to 51e2053 Compare April 12, 2026 00:06
The whatsapp-bridge's @whiskeysockets/baileys depends on libsignal via a
git+ssh URL.  Without git in the image, npm install fails with ENOENT.
@konsisumer

Copy link
Copy Markdown
Contributor Author

Closing — both changes in this PR are already on main:

  1. reply_in_thread bridging (the core fix): present at gateway/config.py:551-552 and the test at tests/gateway/test_config.py:226.
  2. Docker git install: landed independently as a27b3c87 ("add git to the container installed packages").

The branch is 474 commits behind main, making a rebase impractical and unnecessary since the substantive work has already shipped. #7532 can be considered resolved.

@konsisumer konsisumer closed this Apr 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: slack.reply_in_thread config option not applied to platform extra dict

1 participant