mudrii
|
5d82c82313
|
feat: per-channel responsePrefix override (#9001)
* feat: per-channel responsePrefix override
Add responsePrefix field to all channel config types and Zod schemas,
enabling per-channel and per-account outbound response prefix overrides.
Resolution cascade (most specific wins):
L1: channels.<ch>.accounts.<id>.responsePrefix
L2: channels.<ch>.responsePrefix
L3: (reserved for channels.defaults)
L4: messages.responsePrefix (existing global)
Semantics:
- undefined -> inherit from parent level
- empty string -> explicitly no prefix (stops cascade)
- "auto" -> derive [identity.name] from routed agent
Changes:
- Core logic: resolveResponsePrefix() in identity.ts accepts
optional channel/accountId and walks the cascade
- resolveEffectiveMessagesConfig() passes channel context through
- Types: responsePrefix added to WhatsApp, Telegram, Discord, Slack,
Signal, iMessage, Google Chat, MS Teams, Feishu, BlueBubbles configs
- Zod schemas: responsePrefix added for config validation
- All channel handlers wired: telegram, discord, slack, signal,
imessage, line, heartbeat runner, route-reply, native commands
- 23 new tests covering backward compat, channel/account levels,
full cascade, auto keyword, empty string stops, unknown fallthrough
Fully backward compatible - no existing config is affected.
Fixes #8857
* fix: address CI lint + review feedback
- Replace Record<string, any> with proper typed helpers (no-explicit-any)
- Add curly braces to single-line if returns (eslint curly)
- Fix JSDoc: 'Per-channel' → 'channel/account' on shared config types
- Extract getChannelConfig() helper for type-safe dynamic key access
* fix: finish responsePrefix overrides (#9001) (thanks @mudrii)
* fix: normalize prefix wiring and types (#9001) (thanks @mudrii)
---------
Co-authored-by: Gustavo Madeira Santana <gumadeiras@gmail.com>
|
2026-02-04 16:16:34 -05:00 |
cpojer
|
f06dd8df06
|
chore: Enable "experimentalSortImports" in Oxfmt and reformat all imorts.
|
2026-02-01 10:03:47 +09:00 |
cpojer
|
230ca789e2
|
chore: Lint extensions folder.
|
2026-01-31 22:42:45 +09:00 |
cpojer
|
8cab78abbc
|
chore: Run `pnpm format:fix`.
|
2026-01-31 21:13:13 +09:00 |
Peter Steinberger
|
9a7160786a
|
refactor: rename to openclaw
|
2026-01-30 03:16:21 +01:00 |
Peter Steinberger
|
6d16a658e5
|
refactor: rename clawdbot to moltbot with legacy compat
|
2026-01-27 12:21:02 +00:00 |
Peter Steinberger
|
83460df96f
|
chore: update molt.bot domains
|
2026-01-27 12:21:01 +00:00 |
Peter Steinberger
|
458e731f8b
|
fix: newline chunking across channels
|
2026-01-25 04:11:36 +00:00 |
Peter Steinberger
|
d82ecaf9dc
|
refactor: centralize inbound session updates
|
2026-01-23 23:33:32 +00:00 |
Peter Steinberger
|
b77e730657
|
fix: add per-channel markdown table conversion (#1495) (thanks @odysseus0)
|
2026-01-23 18:39:25 +00:00 |
Peter Steinberger
|
d198474415
|
feat: resolve allowlists in channel plugins
|
2026-01-18 22:52:00 +00:00 |
Peter Steinberger
|
744d1329cb
|
feat: make inbound envelopes configurable
Co-authored-by: Shiva Prasad <shiv19@users.noreply.github.com>
|
2026-01-18 18:50:37 +00:00 |
Peter Steinberger
|
ee6e534ccb
|
refactor: route channel runtime via plugin api
|
2026-01-18 11:01:16 +00:00 |
Peter Steinberger
|
b6d470a679
|
feat: migrate zalo plugin to sdk
|
2026-01-18 03:37:26 +00:00 |
Peter Steinberger
|
1420d113d8
|
refactor: migrate extensions to plugin sdk
|
2026-01-18 02:55:07 +00:00 |
Peter Steinberger
|
34590d2144
|
feat: persist session origin metadata across connectors
|
2026-01-18 02:42:10 +00:00 |
Peter Steinberger
|
69ba2765de
|
refactor(security): harden CommandAuthorized plumbing
|
2026-01-17 10:19:34 +00:00 |
Peter Steinberger
|
13b931c006
|
refactor: prune legacy group prefixes
|
2026-01-17 08:47:25 +00:00 |
Peter Steinberger
|
56f3a2de25
|
fix(security): default-deny command execution
|
2026-01-17 08:28:09 +00:00 |
Peter Steinberger
|
07c93dfd30
|
refactor: streamline target resolver helpers
|
2026-01-17 07:34:26 +00:00 |
Peter Steinberger
|
331141ad77
|
refactor: centralize message target resolution
Co-authored-by: Thinh Dinh <tobalsan@users.noreply.github.com>
|
2026-01-17 06:04:49 +00:00 |
Peter Steinberger
|
bc49c20434
|
fix: finalize inbound contexts
|
2026-01-17 05:06:39 +00:00 |
Peter Steinberger
|
5fcc9b3244
|
refactor: centralize target errors and cache lookups
|
2026-01-17 04:28:22 +00:00 |
Peter Steinberger
|
8ebfa2950d
|
refactor: align message target wording
|
2026-01-17 04:18:59 +00:00 |
Peter Steinberger
|
a2b5b1f0cb
|
refactor: normalize inbound context
|
2026-01-17 04:05:33 +00:00 |
Peter Steinberger
|
3af391eec7
|
refactor: centralize group sender identity
|
2026-01-17 03:32:48 +00:00 |
Peter Steinberger
|
7ecf733342
|
fix: align channel config schemas and env precedence
|
2026-01-17 00:43:05 +00:00 |
Peter Steinberger
|
59f6ea9b21
|
feat: directory for plugin channels
|
2026-01-16 22:40:36 +00:00 |
Peter Steinberger
|
1656f491fd
|
fix: normalize pairing aliases and webhook guard (#991) (thanks @longmaba)
|
2026-01-16 04:55:16 +00:00 |
Long
|
c0c9742e44
|
fix(zalo): fix pairing channel detection and webhook payload format
Amp-Thread-ID: https://ampcode.com/threads/T-019bc4e0-fcb1-77be-b0b5-0d498f0c7197
Co-authored-by: Amp <amp@ampcode.com>
|
2026-01-16 10:43:14 +07:00 |
Peter Steinberger
|
5abe3c2145
|
feat: add plugin HTTP hooks + Zalo plugin
|
2026-01-15 05:04:09 +00:00 |