#17361: feat(channels): add Tuitui (推推) channel support
docs
size: XL
Cluster:
Messaging Channel Integrations
## Summary
Describe the problem and fix in 2–5 bullets:
- Problem:
- 需要接入 360 集团内推推 IM 机器人。
- Why it matters:
- What changed:新增推推 channel 插件(extensions/tuitui),支持发消息、收消息 webhook、配对与配置;补充文档与 labeler。
- What did NOT change (scope boundary):核心 gateway/CLI 行为不变,仅新增插件与配置项。
## Change Type (select all)
- [ ] Bug fix
- [ ✅] Feature
- [ ] Refactor
- [ ] Docs
- [ ] Security hardening
- [ ] Chore/infra
## Scope (select all touched areas)
- [ ] Gateway / orchestration
- [ ] Skills / tool execution
- [ ] Auth / tokens
- [ ] Memory / storage
- [ ] Integrations
- [ ] API / contracts
- [ ] UI / DX
- [ ] CI/CD / infra
## Linked Issue/PR
- Closes #
- Related #
## User-visible / Behavior Changes
List user-visible changes (including defaults/config).
If none, write `None`.
## Security Impact (required)
- New permissions/capabilities? (`Yes/No`)
- Secrets/tokens handling changed? (`Yes/No`)
- New/changed network calls? (`Yes/No`)
- Command/tool execution surface changed? (`Yes/No`)
- Data access scope changed? (`Yes/No`)
- If any `Yes`, explain risk + mitigation:
## Repro + Verification
### Environment
- OS:
- Runtime/container:
- Model/provider:
- Integration/channel (if any):
- Relevant config (redacted):
### Steps
1.
2.
3.
### Expected
-
### Actual
-
## Evidence
Attach at least one:
- [ ] Failing test/log before + passing after
- [ ] Trace/log snippets
- [ ] Screenshot/recording
- [ ] Perf numbers (if relevant)
## Human Verification (required)
What you personally verified (not just CI), and how:
- Verified scenarios:
- Edge cases checked:
- What you did **not** verify:
## Compatibility / Migration
- Backward compatible? (`Yes/No`)
- Config/env changes? (`Yes/No`)
- Migration needed? (`Yes/No`)
- If yes, exact upgrade steps:
## Failure Recovery (if this breaks)
- How to disable/revert this change quickly:
- Files/config to restore:
- Known bad symptoms reviewers should watch for:
## Risks and Mitigations
List only real risks for this PR. Add/remove entries as needed. If none, write `None`.
- Risk:
- Mitigation:
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
This PR adds a new Tuitui (推推) channel plugin for integrating with 360 Group's internal IM system. The implementation follows the established channel plugin architecture pattern and includes:
- Complete webhook-based inbound message handling with SHA1 checksum verification
- Outbound messaging via REST API with proper credential resolution (env vars, config, or file)
- Pairing flow support for DM policy enforcement
- Multi-account support with proper configuration schema
- Documentation and GitHub labeler configuration
The code quality is solid with proper error handling, TypeScript typing, and follows existing patterns from other channel extensions like googlechat and zalo. The implementation correctly combines pairing store allowlist with config allowlist for access control (contrary to one previous thread comment). Token parsing for `appId:secret` format correctly handles colons in the secret using `indexOf`/`slice` (also already fixed from previous feedback).
<h3>Confidence Score: 4/5</h3>
- Safe to merge with minor considerations - well-structured new channel plugin following established patterns
- The implementation is solid and follows existing channel plugin patterns correctly. Previous thread comments about pairing store and token splitting are actually incorrect - the code handles both correctly. No tests are included but this is acceptable for a new plugin addition. The webhook security implementation with SHA1 checksums is appropriate, and credential handling follows the same pattern as other extensions.
- No files require special attention - the implementation is consistent and follows repository conventions
<sub>Last reviewed commit: fc32090</sub>
<!-- greptile_other_comments_section -->
<!-- /greptile_comment -->
Most Similar PRs
#9594: feat: add SimpleX messaging channel
by dangoldbj · 2026-02-05
78.5%
#23464: feat(synology-chat): add group/channel support
by druide67 · 2026-02-22
78.0%
#22260: feat(extensions/deltachat): add Delta.Chat channel extension
by alanz · 2026-02-20
76.6%
#15051: feat: Zulip channel plugin with concurrent message processing
by FtlC-ian · 2026-02-12
76.5%
#20348: Add support for Keybase as a channel
by xgess · 2026-02-18
76.3%
#9444: feat(channels): add DingTalk channel
by sm-yjr · 2026-02-05
76.2%
#10347: DingTalk: add channel support
by dimaginexus · 2026-02-06
75.7%
#22308: feat(zulip): add Zulip channel plugin
by emadomedher · 2026-02-21
74.7%
#14009: feat(wecom): add wecom(企业微信) channel extension
by xl370869-art · 2026-02-11
74.4%
#17157: feat(messenger): add Facebook Messenger channel integration
by gmjuhasz · 2026-02-15
74.3%