Skip to content

fix(signal): add groups config to Signal channel schema#27199

Merged
altaywtf merged 4 commits intoopenclaw:mainfrom
unisone:fix/signal-groups-schema-20397
Mar 13, 2026
Merged

fix(signal): add groups config to Signal channel schema#27199
altaywtf merged 4 commits intoopenclaw:mainfrom
unisone:fix/signal-groups-schema-20397

Conversation

@unisone
Copy link
Copy Markdown
Contributor

@unisone unisone commented Feb 26, 2026

Summary

Adds missing channels.signal.groups support to the Signal config schema and types so per-group mention/tool overrides are accepted.

Changes

  • add SignalGroupConfig type to src/config/types.signal.ts
  • add SignalGroupEntrySchema + SignalGroupsSchema to Signal provider schema
  • wire groups into SignalAccountSchemaBase (top-level + per-account)
  • add focused regression tests in src/config/zod-schema.signal-groups.test.ts

Validation

  • npx vitest run src/config/zod-schema.signal-groups.test.ts src/signal/monitor/event-handler.mention-gating.test.ts
  • npx vitest run src/config/config.schema-regressions.test.ts

Closes #20397

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Feb 26, 2026

Greptile Summary

Adds missing groups support to the Signal channel config schema and types, enabling per-group requireMention, tools, and toolsBySender overrides (keyed by Signal group ID or "*" wildcard). The runtime resolution code in src/config/group-policy.ts and src/signal/monitor/event-handler.ts already consumed this config shape — this PR fills the gap so the Zod schema and TypeScript types accept it.

  • Added SignalGroupConfig type to src/config/types.signal.ts with requireMention, tools, and toolsBySender fields
  • Added SignalGroupEntrySchema (.strict()) and SignalGroupsSchema to the Zod provider schema, following the same pattern used by Discord, Telegram, IRC, iMessage, and other channels
  • Wired groups: SignalGroupsSchema into SignalAccountSchemaBase so it applies at both the top-level and per-account scope
  • Added focused regression tests covering top-level overrides, per-account overrides, and unknown-key rejection

Confidence Score: 5/5

  • This PR is safe to merge — it adds schema/type definitions that align with existing runtime consumption code and follows established patterns from other channels.
  • The changes are minimal and purely additive: a new TypeScript type, a Zod schema, and focused tests. The schema follows the exact same pattern used by Discord, Telegram, IRC, iMessage, BlueBubbles, and MS Teams group schemas. The runtime code in group-policy.ts and event-handler.ts already expected this config shape, so this fills a gap rather than introducing new behavior. Tests cover valid and invalid cases including strict mode rejection.
  • No files require special attention.

Last reviewed commit: 015808d

@unisone
Copy link
Copy Markdown
Contributor Author

unisone commented Feb 26, 2026

The Windows CI failure is unrelated to this PR — it's agents-mutate.test.ts symlink safety tests (agents.files.get/set symlink escapes workspace) which fail on Windows due to symlink handling differences. All Linux/macOS checks pass, and main branch CI is green. This is a pre-existing flaky test on Windows runners.

@altaywtf altaywtf self-assigned this Mar 13, 2026
@altaywtf altaywtf force-pushed the fix/signal-groups-schema-20397 branch from 1fbbda6 to 8a79a61 Compare March 13, 2026 11:56
@altaywtf altaywtf force-pushed the fix/signal-groups-schema-20397 branch from 8a79a61 to 6ac826f Compare March 13, 2026 11:58
@openclaw-barnacle openclaw-barnacle bot added docs Improvements or additions to documentation channel: signal Channel integration: signal labels Mar 13, 2026
@altaywtf altaywtf merged commit 6142923 into openclaw:main Mar 13, 2026
30 of 31 checks passed
@altaywtf
Copy link
Copy Markdown
Member

Merged via squash.

Thanks @unisone!

mrosmarin added a commit to mrosmarin/openclaw that referenced this pull request Mar 13, 2026
* main: (168 commits)
  fix: stabilize macos daemon onboarding
  fix(ui): keep shared auth on insecure control-ui connects (openclaw#45088)
  docs(plugins): clarify workspace shadowing
  fix(node-host): harden perl approval binding
  fix(node-host): harden pnpm approval binding
  fix(discovery): add missing domain to wideArea Zod config schema (openclaw#35615)
  chore(gitignore): add docker-compose override (openclaw#42879)
  feat(ios): add onboarding welcome pager (openclaw#45054)
  fix(signal): add groups config to Signal channel schema (openclaw#27199)
  fix: restore web fetch firecrawl config in runtime zod schema (openclaw#42583)
  fix: polish Android QR scanner onboarding (openclaw#45021)
  fix(android): use Google Code Scanner for onboarding QR
  fix(config): add missing params field to agents.list[] validation schema (openclaw#41171)
  docs(contributing): update Android app ownership
  fix(agents): rephrase session reset prompt to avoid Azure content filter (openclaw#43403)
  test(config): cover requiresOpenAiAnthropicToolPayload in compat schema fixture
  fix(agents): respect explicit user compat overrides for non-native openai-completions (openclaw#44432)
  Android: fix HttpURLConnection leak in TalkModeVoiceResolver (openclaw#43780)
  Docker: add OPENCLAW_TZ timezone support (openclaw#34119)
  fix(agents): avoid injecting memory file twice on case-insensitive mounts (openclaw#26054)
  ...
z-hao-wang pushed a commit to z-hao-wang/openclaw that referenced this pull request Mar 13, 2026
Merged via squash.

Prepared head SHA: 4ba4a39
Co-authored-by: unisone <[email protected]>
Co-authored-by: altaywtf <[email protected]>
Reviewed-by: @altaywtf
frankekn pushed a commit to xinhuagu/openclaw that referenced this pull request Mar 14, 2026
Merged via squash.

Prepared head SHA: 4ba4a39
Co-authored-by: unisone <[email protected]>
Co-authored-by: altaywtf <[email protected]>
Reviewed-by: @altaywtf
hougangdev pushed a commit to hougangdev/clawdbot that referenced this pull request Mar 14, 2026
Merged via squash.

Prepared head SHA: 4ba4a39
Co-authored-by: unisone <[email protected]>
Co-authored-by: altaywtf <[email protected]>
Reviewed-by: @altaywtf
ecochran76 pushed a commit to ecochran76/openclaw that referenced this pull request Mar 14, 2026
Merged via squash.

Prepared head SHA: 4ba4a39
Co-authored-by: unisone <[email protected]>
Co-authored-by: altaywtf <[email protected]>
Reviewed-by: @altaywtf
Interstellar-code pushed a commit to Interstellar-code/operator1 that referenced this pull request Mar 16, 2026
Merged via squash.

Prepared head SHA: 4ba4a39
Co-authored-by: unisone <[email protected]>
Co-authored-by: altaywtf <[email protected]>
Reviewed-by: @altaywtf

(cherry picked from commit 6142923)
sbezludny pushed a commit to sbezludny/openclaw that referenced this pull request Mar 27, 2026
Merged via squash.

Prepared head SHA: 4ba4a39
Co-authored-by: unisone <[email protected]>
Co-authored-by: altaywtf <[email protected]>
Reviewed-by: @altaywtf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: signal Channel integration: signal docs Improvements or additions to documentation size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Signal channel schema missing groups config — requireMention silently drops all group messages

2 participants