Skip to content

[codex] Add Feishu thread reply toggle - #33307

Closed
T0UGH wants to merge 1 commit into
NousResearch:mainfrom
T0UGH:codex/feishu-reply-in-thread-toggle
Closed

[codex] Add Feishu thread reply toggle#33307
T0UGH wants to merge 1 commit into
NousResearch:mainfrom
T0UGH:codex/feishu-reply-in-thread-toggle

Conversation

@T0UGH

@T0UGH T0UGH commented May 27, 2026

Copy link
Copy Markdown

Summary

Adds a Feishu/Lark reply_in_thread setting so deployments can choose whether messages that originate from Feishu topics/threads should receive threaded replies or top-level chat replies.

Root cause

The Feishu adapter inferred reply_in_thread=True whenever inbound metadata contained a thread_id. It also used thread_id as the create-message receive target during fallback. That made topic replies unconditional, even for deployments that want the bot to answer directly in the parent chat.

Changes

  • Reads reply_in_thread from Feishu platform config or FEISHU_REPLY_IN_THREAD, defaulting to the existing threaded behavior.
  • Skips thread reply anchors and thread create fallbacks when reply_in_thread is disabled.
  • Adds regression coverage for top-level Feishu replies when the setting is false.
  • Documents FEISHU_REPLY_IN_THREAD and feishu.reply_in_thread.

Validation

  • python -m pytest tests/gateway/test_feishu.py -k "reply_in_thread or threaded_feishu_topic"
  • git diff --check

@T0UGH
T0UGH marked this pull request as ready for review May 27, 2026 15:20
@T0UGH

T0UGH commented May 27, 2026

Copy link
Copy Markdown
Author

@teknium1 Could you approve the pending workflows for this fork PR when you have a moment? The change is small and scoped to a Feishu reply-thread toggle, with targeted tests included. Thanks.

@alt-glitch alt-glitch added type/feature New feature or request platform/feishu Feishu / Lark adapter comp/gateway Gateway runner, session dispatch, delivery P2 Medium — degraded but workaround exists labels May 27, 2026
@teknium1

Copy link
Copy Markdown
Contributor

Thanks for the focused implementation and regression coverage.

This automated hermes-sweeper review is closing this under the standing configuration policy:

  • The PR introduces and documents FEISHU_REPLY_IN_THREAD as a user-facing non-secret behavior setting (gateway/platforms/feishu.py:1573; website/docs/reference/environment-variables.md:334). Hermes keeps behavioral settings in config.yaml; .env is reserved for credentials and secrets.
  • Current main already transports platform reply_in_thread YAML into platform extras (gateway/config.py:1195-1196), so a future focused proposal can use the config.yaml mechanism without adding an environment variable.
  • The Feishu adapter has since moved to plugins/platforms/feishu/adapter.py in 560010547, so any re-scoped work would need to target that plugin location.

A config.yaml-only re-scope is welcome for maintainer review.


Closed as not-planned per standing maintainer policy (env-var-for-config). This is a design-direction decision, not a code-quality judgment — see the Contribution Rubric in AGENTS.md for what the project is looking for. If you believe this policy was misapplied to your change, comment here and a maintainer will take a look.

@teknium1 teknium1 closed this Jul 13, 2026
@teknium1 teknium1 added the sweeper:not-planned Sweeper: closed per standing maintainer policy (design direction) label Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/gateway Gateway runner, session dispatch, delivery P2 Medium — degraded but workaround exists platform/feishu Feishu / Lark adapter sweeper:not-planned Sweeper: closed per standing maintainer policy (design direction) type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants