Peter Steinberger
958ca2ebec
test(extensions): move registry channel contracts
2026-04-20 20:55:39 +01:00
Peter Steinberger
5f94c2592d
test: stabilize directory id sorting
2026-04-20 20:28:48 +01:00
Peter Steinberger
b3a0da7c5e
test(extensions): split outbound payload contracts
2026-04-20 19:37:20 +01:00
Peter Steinberger
ecfb3abbed
test: share slack approval origin fixture
2026-04-20 17:59:57 +01:00
Peter Steinberger
ca2d89bc4d
test(extensions): move channel contracts out of core
2026-04-20 17:59:51 +01:00
Peter Steinberger
1f139c198a
test: share slack security audit fixture
2026-04-20 17:58:24 +01:00
Peter Steinberger
a73bbe4bdd
test(extensions): move channel security coverage
2026-04-20 17:38:20 +01:00
Peter Steinberger
1148f245c8
build(deps): declare extension runtime dependencies
2026-04-20 16:07:14 +01:00
Peter Steinberger
8116e638f3
chore: release 2026.4.20
2026-04-20 13:16:40 +01:00
Chunyue Wang
2ad17098fe
fix(slack): tolerate unresolved channel SecretRef on outbound send path ( #68954 )
...
Merged via squash.
Prepared head SHA: f13c639c26
Co-authored-by: openperf <80630709+openperf@users.noreply.github.com >
Co-authored-by: openperf <80630709+openperf@users.noreply.github.com >
Reviewed-by: @openperf
2026-04-20 14:59:09 +08:00
Peter Steinberger
ac8f0c9c0d
chore: prepare 2026.4.19-beta.1 release
2026-04-19 02:09:43 +01:00
Peter Steinberger
8bfa06e992
refactor: enforce plugin-owned channel boundaries
2026-04-18 22:48:27 +01:00
Peter Steinberger
4fa961d4f1
refactor(lint): enable map spread rule
2026-04-18 20:37:12 +01:00
Peter Steinberger
1f1ff0567a
refactor(lint): reduce map spread patterns
2026-04-18 19:27:43 +01:00
lukeboyett
c39314c14a
fix(agents): prefer target agent's bound Matrix account for subagent spawns ( #67508 )
...
Merged via squash.
Prepared head SHA: 9300111038
Co-authored-by: lukeboyett <46942646+lukeboyett@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-18 14:02:53 -04:00
Peter Steinberger
6b525023d4
fix: polish Slack thread starter context ( #68594 )
2026-04-18 18:45:29 +01:00
Peter Steinberger
df525b90f2
chore(lint): enable unnecessary type parameter rule
2026-04-18 18:31:13 +01:00
Peter Steinberger
753183e081
build(deps): update workspace dependencies
2026-04-18 18:04:56 +01:00
Peter Steinberger
aad9a833c0
fix: polish Slack thread fetch diagnostics ( #68594 ) (thanks @martingarramon)
2026-04-18 17:55:05 +01:00
Martin Garramon
31e5cd6376
fix(slack): surface silent errors in thread starter/history fetch
...
Fixes #62571 . `resolveSlackThreadStarter` and `resolveSlackThreadHistory`
in `extensions/slack/src/monitor/media.ts` swallowed ALL errors with bare
`catch {}` blocks — auth failures, rate-limit rejections, scope errors,
and network blips all mapped to the same silent `null` / `[]` fallback.
Operators had no way to distinguish "genuinely empty thread" from
"Slack rejected our call".
Replaces both bare catches with `logVerbose` calls that include the
channel, thread ts, and error message. Behavior is preserved — callers
still receive `null` / `[]` — but the failure reason now shows up in
verbose logs, matching the pattern already used elsewhere in the Slack
extension (see `monitor/context.ts:285`, `send.ts:140`, `actions.ts:49`).
Testing:
- New `describe("resolveSlackThreadStarter", ...)` block with 4 tests
(previously uncovered): success path, empty-text skip, Error throw
surfaces via logVerbose with channel/ts/reason, non-Error throw value
surfaces via String(err).
- Existing `resolveSlackThreadHistory` throws test upgraded to assert
the logVerbose call with channel/ts/reason.
- `pnpm vitest run extensions/slack/src/monitor/media.test.ts` → 35
passed (31 previous + 4 new).
2026-04-18 17:55:05 +01:00
Peter Steinberger
3f2e73b723
chore(release): bump version to 2026.4.18
2026-04-18 15:46:33 +01:00
@zimeg
25ce5a5822
fix(slack): resolve stream recipient team in shared channels
2026-04-18 04:11:06 -07:00
Peter Steinberger
3abb5fd291
test: slim channel contract hotspots
2026-04-18 01:36:33 +01:00
Peter Steinberger
569247cff8
test: speed channel contract hotspots
2026-04-18 01:36:15 +01:00
Peter Steinberger
ed65e8017d
test: slim channel directory contracts
2026-04-18 01:36:15 +01:00
Gustavo Madeira Santana
c550642cde
test: keep command registry native overrides hermetic
2026-04-17 15:50:39 -04:00
Gustavo Madeira Santana
7ae670e501
Tests: fast-path Slack message tool discovery
2026-04-17 02:00:26 -04:00
Peter Steinberger
0dc4c4076c
chore: bump version to 2026.4.16
2026-04-17 00:45:04 +01:00
Peter Steinberger
8a37bb4ed6
perf: speed up security audit test imports
2026-04-16 21:54:13 +01:00
Peter Steinberger
372c0051ba
test: speed up slow import-boundary tests
2026-04-16 21:14:17 +01:00
Gustavo Madeira Santana
78ac118427
fix(plugins): stabilize bundled setup runtimes ( #67200 )
...
Merged via squash.
Prepared head SHA: e8d6738fd0
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-15 12:35:18 -04:00
Peter Steinberger
b3fa5880dd
build(extensions): bump bundled plugin versions to 2026.4.15-beta.1
2026-04-15 15:06:13 +01:00
Josh Avant
1769fb2aa1
fix(secrets): align SecretRef inspect/strict behavior across preload/runtime paths ( #66818 )
...
* Config: add inspect/strict SecretRef string resolver
* CLI: pass resolved/source config snapshots to plugin preload
* Slack: keep HTTP route registration config-only
* Providers: normalize SecretRef handling for auth and web tools
* Secrets: add Exa web search target to registry and docs
* Telegram: resolve env SecretRef tokens at runtime
* Agents: resolve custom provider env SecretRef ids
* Providers: fail closed on blocked SecretRef fallback
* Telegram: enforce env SecretRef policy for runtime token refs
* Status/Providers/Telegram: tighten SecretRef preload and fallback handling
* Providers: enforce env SecretRef policy checks in fallback auth paths
* fix: add SecretRef lifecycle changelog entry (#66818 ) (thanks @joshavant)
2026-04-14 17:59:28 -05:00
Vincent Koc
2d26929ff1
test(slack): harden thread context fixture cleanup
2026-04-14 23:11:43 +01:00
@zimeg
d35bdf6311
refactor(slack): use packaged thread status method
2026-04-14 12:56:25 -07:00
@zimeg
1f14c8d96b
fix(slack): fix slash commands with button arg menu errors
...
Co-authored-by: Wang Siyuan <wsy0227@sjtu.edu.cn >
2026-04-14 12:39:56 -07:00
Vincent Koc
df956f8162
test(slack): harden fixture cleanup retries
2026-04-14 19:51:21 +01:00
Agustin Rivera
1c35795fce
fix(slack): align interaction auth with allowlists ( #66028 )
...
* fix(slack): align interaction auth with allowlists
* fix(slack): address review followups
* fix(slack): preserve explicit owners with wildcard
* chore: append Claude comments resolution worklog
* fix(slack): harden interaction auth with default-deny, mandatory actor binding, and channel type validation
- Add interactiveEvent flag to authorizeSlackSystemEventSender for stricter
interactive control authorization
- Default-deny when no allowFrom or channel users are configured for
interactive events (block actions, modals)
- Require expectedSenderId for all interactive event types; block actions
pass Slack-verified userId, modals pass metadata-embedded userId
- Reject ambiguous channel types for interactive events to prevent DM
authorization bypass via channel-type fallback
- Add comprehensive test coverage for all new behaviors
* fix(slack): scope interactive owner/allowFrom enforcement to interactive paths only
* fix(slack): preserve no-channel interactive default
* Update context-engine-maintenance test
* chore: remove USER.md worklog artifact
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
* changelog: note Slack interactive auth allowlist alignment (#66028 )
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
Co-authored-by: Devin Robison <drobison@nvidia.com >
2026-04-13 20:38:11 -06:00
ShihChi Huang
df3e65c8d3
fix(slack): isolate doctor contract API ( #63192 )
...
* Slack: isolate doctor contract API
* chore: changelog
* fix(slack): move doctor changelog entry to Unreleased
* Plugins: lock Slack doctor sidecar metadata
* Slack: fix changelog entry placement
---------
Co-authored-by: @zimeg <zim@o526.net >
Co-authored-by: George Pickett <gpickett00@gmail.com >
2026-04-13 17:33:49 -07:00
rafaelreis-r
68e0e456f3
fix: allow plugin commands on Slack when channel supports native commands ( #64578 )
...
Merged via squash.
Prepared head SHA: 2ec97bf0b3
Co-authored-by: rafaelreis-r <57492577+rafaelreis-r@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-13 13:14:02 -07:00
Vincent Koc
c73e80b5a7
fix(slack): make inbound retries explicit
2026-04-13 15:58:59 +01:00
Peter Steinberger
a8e140e395
chore: bump version to 2026.4.12
2026-04-12 10:37:18 -07:00
Mason Huang
48bcb89a47
tests(contracts): use contract-api for Slack and Discord directories ( #65280 )
2026-04-12 18:54:58 +08:00
Vincent Koc
ccbef550e5
fix(ci): restore extension boundary guards
2026-04-12 09:50:20 +01:00
Vincent Koc
eba501c303
test(slack): share private download redirect helper
2026-04-12 08:44:18 +01:00
Vincent Koc
1d1f10ecc2
test(slack): share thread message store fixtures
2026-04-12 05:24:01 +01:00
Vincent Koc
45147d5ce3
test(extensions): dedupe bundled entry smoke tests
2026-04-12 03:09:18 +01:00
Vincent Koc
462d8e3bc0
fix(cycles): narrow channel runtime surface
2026-04-11 19:30:33 +01:00
Vincent Koc
81535d394d
fix(cycles): repair broken type surfaces
2026-04-11 13:42:17 +01:00
Peter Steinberger
1ab6e5dbf0
chore(release): bump version to 2026.4.11
2026-04-11 04:51:17 +01:00