8e3f8e7c4edc23641c1c0a98506ec1dec0d3b6dd
1. Turn order now activates via moderator on first creation (discovery-based), ensuring no agent consumes messages before the turn list is ready. All agents are blocked (dormant) until moderator sends handoff to first speaker. 2. channel-private-create: pre-populates turn order from allowedUserIds, filtering to only bot accounts (excluding humans and moderator). Immediately activates first speaker via moderator handoff. 3. channel-private-update: updates turn order when members are added/removed. If current speaker is removed, activates next available speaker. 4. Any member (human or bot) can now trigger turn activation when dormant, not just humans. Human messages still reset the cycle. 5. Added resolveAccountIdByUserId helper to map Discord user IDs back to account names from bot tokens. 6. turn-manager: added initTurnOrderPrePopulated, updateTurnMembers, activateFirstSpeaker, hasTurnState exports.
Revert "Merge pull request 'fix: use systemPrompt instead of prependContext for end marker instruction' (#5) from fix/moderator-and-system-prompt into feat/turn-based-speaking"
WhisperGate
Rule-based no-reply gate for OpenClaw.
What it does
WhisperGate adds a deterministic gate before model selection:
- If message is not from Discord → skip gate
- If sender is in bypass user list → skip gate
- If message ends with configured end-symbol → skip gate
- Otherwise switch this turn to a no-reply model/provider
The no-reply provider returns NO_REPLY for any input.
Repo layout
plugin/— OpenClaw plugin (before_model_resolve hook)no-reply-api/— OpenAI-compatible minimal API that always returnsNO_REPLYdiscord-control-api/— Discord 管理扩展 API(私密频道 + 成员列表)docs/— rollout, integration, run-mode notesscripts/— smoke/dev/helper checksMakefile— common dev commands (make check,make check-rules,make test-api,make smoke-discord-control,make up)CHANGELOG.md— milestone summary
Quick start (no Docker)
cd no-reply-api
node server.mjs
Then render config snippet:
node scripts/render-openclaw-config.mjs
See docs/RUN_MODES.md for Docker mode.
Discord 扩展能力见:docs/DISCORD_CONTROL.md。
Development plan (incremental commits)
- Task 1: project docs + structure
- Task 2: no-reply API MVP
- Task 3: plugin MVP with rule chain
- Task 4: sample config + quick verification scripts
- Task 5: plugin rule extraction + hardening
- Task 6: containerization + compose
- Task 7: plugin usage notes
- Task 8: sender normalization + TTL + one-shot decision
- Task 9: auth-aware no-reply API
- Task 10: smoke test helpers
- Task 11: plugin structure checker
- Task 12: rollout checklist
Description
Languages
TypeScript
75.7%
JavaScript
23.8%
Shell
0.4%
Makefile
0.1%