Commit Graph

410 Commits

Author SHA1 Message Date
Shadow a61c2dc4bd
Discord: add component v2 UI tool support (#17419) 2026-02-15 21:19:25 -06:00
seewhy ddcc7a1a5d
fix(discord): dedupe native skill commands by skillName (#17365)
* fix(discord): dedupe native skill commands by skill name

* Changelog: credit Discord skill dedupe

---------

Co-authored-by: yume <yume@yumedeMacBook-Pro.local>
Co-authored-by: Shadow <hi@shadowing.dev>
2026-02-15 20:33:51 -06:00
Shakker 09566b1693
fix(discord): preserve channel session keys via channel_id fallbacks (#17622)
* fix(discord): preserve channel session keys via channel_id fallbacks

* docs(changelog): add discord session continuity note

* Tests: cover discord channel_id fallback

---------

Co-authored-by: Shadow <hi@shadowing.dev>
2026-02-15 20:30:17 -06:00
Peter Steinberger 555eb3f62c refactor(discord): share member access state 2026-02-16 01:55:40 +00:00
Peter Steinberger 19f53543d2 refactor(utils): share chunkItems helper 2026-02-16 01:52:30 +00:00
Peter Steinberger acb2a1ce37 perf(test): fold discord voice hardening into web media suite 2026-02-16 00:18:27 +00:00
Peter Steinberger 2158b09b9d perf(test): consolidate discord monitor utils 2026-02-15 23:14:42 +00:00
Xinhua Gu c682634188
fix(discord): role-based allowlist never matches (Carbon Role objects stringify to mentions) (#16369)
* fix(discord): role-based allowlist never matches because Carbon Role objects stringify to mentions

Carbon's GuildMember.roles getter returns Role[] objects, not raw ID strings.
String(Role) produces '<@&123456>' which never matches the plain role IDs
in the guild allowlist config.

Use data.rawMember.roles (raw Discord API string array) instead of
data.member.roles (Carbon Role[] objects) for role ID extraction.

Fixes #16207

* Docs: add discord role allowlist changelog entry

---------

Co-authored-by: Shadow <hi@shadowing.dev>
2026-02-15 13:05:46 -06:00
Peter Steinberger c118f6c688 fix(discord): fix component parsing and modal field typing 2026-02-15 18:50:36 +00:00
Shadow f92900fc20 Revert "Discord: add preflight role allowlist regression test"
This reverts commit 41f546faa5.
2026-02-15 12:45:46 -06:00
Shadow 41f546faa5
Discord: add preflight role allowlist regression test 2026-02-15 12:33:31 -06:00
Peter Steinberger 65f8b46c15 fix(ci): stabilize media and session store tests 2026-02-15 18:12:15 +00:00
Peter Steinberger be9b5cefbd fix(ci): stabilize state-dir dependent tests 2026-02-15 17:57:13 +00:00
Peter Steinberger 1f1e97674f refactor(allowlists): share user entry collection 2026-02-15 17:45:16 +00:00
Shadow c6b3736fe7 fix: dedupe probe/token base types (#16986) (thanks @iyoda) 2026-02-15 11:36:54 -06:00
Shadow b6069fc68c feat: support per-channel ackReaction config (#17092) (thanks @zerone0x) 2026-02-15 11:30:25 -06:00
Peter Steinberger 25be51967a refactor(channels): share allowlist resolution summary 2026-02-15 17:26:27 +00:00
Peter Steinberger 63ab5bfddc refactor(discord): share component route + ack 2026-02-15 17:23:56 +00:00
Peter Steinberger ac3db098ab refactor(discord): share component allowlist check 2026-02-15 17:17:03 +00:00
Peter Steinberger b2c42697dd refactor(discord): reuse preflight param types 2026-02-15 17:14:54 +00:00
Sebastian 6277698f86 test(discord): fix updated test harness mocks 2026-02-15 11:50:16 -05:00
Shadow 9203a2fdb1
Discord: CV2! (#16364) 2026-02-15 10:24:53 -06:00
Peter Steinberger 41d053a06f refactor(discord): dedupe application fetch 2026-02-15 16:08:05 +00:00
Mr. Guy e927fd1e35
fix: allow agent workspace directories in media local roots (#17136)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 7545ef1e19
Co-authored-by: MisterGuy420 <255743668+MisterGuy420@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-15 10:53:45 -05:00
Peter Steinberger 9d7113c74c refactor(channels): share allowlist config patch helper 2026-02-15 13:44:00 +00:00
Peter Steinberger 37aaca0d4e refactor(discord): share component DM auth context 2026-02-15 12:56:06 +00:00
Peter Steinberger 913b137090 refactor(discord): dedupe reaction listener params 2026-02-15 07:01:24 +00:00
Peter Steinberger 2bd672f3ab refactor(discord): dedupe component context + reaction timing 2026-02-15 06:27:16 +00:00
Peter Steinberger f41f6d3243 refactor(channels): share allowlist user resolve helpers 2026-02-15 05:28:46 +00:00
Peter Steinberger d5180b9e88 refactor(discord): dedupe guild listing 2026-02-15 04:13:14 +00:00
Vignesh Natarajan 66414b28ba test (discord): cover empty guild channels config fallback 2026-02-14 19:04:13 -08:00
Vignesh Natarajan 7b4984e73d fix (discord): ignore empty guild channel maps in allowlist resolution 2026-02-14 19:04:10 -08:00
Peter Steinberger cf04208cb9 fix(allowlist): canonicalize Slack/Discord allowFrom 2026-02-15 03:46:16 +01:00
Peter Steinberger 725741486f fix(discord): harden voice message media loading 2026-02-15 03:41:08 +01:00
Peter Steinberger 371446456c refactor(test): dedupe discord status tool-result test setup 2026-02-14 23:51:42 +00:00
Peter Steinberger 384a2f6a19 refactor(test): dedupe discord handler setup 2026-02-14 23:51:41 +00:00
Peter Steinberger cd747dc582 refactor(discord): share component allowlist checks 2026-02-14 21:52:19 +00:00
Gustavo Madeira Santana f94c06c53f test: add explicit harness mock types 2026-02-14 16:51:25 -05:00
Peter Steinberger b97191b81a refactor(test): share discord send rest harness 2026-02-14 21:20:43 +00:00
Peter Steinberger 9d0a1e32bb test: cover Slack/Discord dmPolicy aliases in monitor 2026-02-14 21:04:27 +01:00
Peter Steinberger 47b6cde8ca refactor(config): add dmPolicy aliases for Slack/Discord 2026-02-14 21:04:27 +01:00
Peter Steinberger fe5cc8f3ba refactor(test): dedupe discord category handler setup 2026-02-14 19:58:20 +00:00
Shadow 5ba72bd9bf fix: add discord exec approval channel targeting (#16051) (thanks @leonnardo) 2026-02-14 12:05:53 -06:00
Peter Steinberger 4b9cb46c6e refactor(outbound): dedupe poll threading + tighten duration semantics 2026-02-14 19:03:46 +01:00
Peter Steinberger f5a4a202e5 perf(test): speed up discord proxy test 2026-02-14 17:56:39 +00:00
Robby 8e5689a84d
feat(telegram): add sendPoll support (#16193) (#16209)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: b58492cfed
Co-authored-by: robbyczgw-cla <239660374+robbyczgw-cla@users.noreply.github.com>
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-02-14 18:34:30 +01:00
Shadow c16bc71279 fix: add discord routing debug logging (#16202) (thanks @jayleekr) 2026-02-14 11:03:30 -06:00
Shadow ff32f43459
Discord: prefer gateway guild id in verbose log 2026-02-14 10:39:36 -06:00
Robby 078642b308
fix(discord): defer component interactions to prevent timeout (#16287)
* fix(discord): defer component interactions to prevent timeout

Discord requires interaction responses within 3 seconds. Button clicks
were routed through the LLM pipeline before responding, exceeding this
window and showing 'This interaction failed' to users.

Now immediately defers the interaction, then processes the agent
response asynchronously.

Fixes #16262

* fix: harden deferred interaction replies and silent chat finals (#16287) (thanks @robbyczgw-cla)

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-14 17:38:01 +01:00
Peter Steinberger e9de242159 refactor(exec-approvals): share request event types 2026-02-14 15:39:46 +00:00