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
Peter Steinberger
39d1a817fa
lint: enable small oxlint rules
2026-04-11 02:15:21 +01:00
Peter Steinberger
85c7748520
lint: enable no extraneous class
2026-04-11 01:45:06 +01:00
Peter Steinberger
3e80bd33e4
refactor: simplify extension conversions
2026-04-11 01:37:23 +01:00
Peter Steinberger
776c8e037e
perf: avoid heavy reply runtime imports
2026-04-11 01:18:11 +01:00
Peter Steinberger
b146c0c26b
perf: skip bundled session fallback on hot paths
2026-04-11 01:18:11 +01:00
Peter Steinberger
11b0016e9e
refactor: simplify provider channel conversions
2026-04-11 01:08:23 +01:00
Peter Steinberger
f3abc0c076
test: isolate media network fetches
2026-04-10 23:56:22 +01:00
Peter Steinberger
0ebeee8b0d
chore: enable consistent-return
2026-04-10 20:56:43 +01:00
Peter Steinberger
8127c6cc15
build(deps): update workspace dependencies
2026-04-10 19:17:39 +01:00
Vincent Koc
c3d3cf23bc
fix(approval): split discord and slack runtime seams
2026-04-10 09:08:28 +01:00
Tak Hoffman
b83726d13e
Feat: Add Active Memory recall plugin ( #63286 )
...
* Refine plugin debug plumbing
* Tighten plugin debug handling
* Reduce active memory overhead
* Abort active memory sidecar on timeout
* Rename active memory blocking subagent wording
* Fix active memory cache and recall selection
* Preserve active memory session scope
* Sanitize recalled context before retrieval
* Add active memory changelog entry
* Harden active memory debug and transcript handling
* Add active memory policy config
* Raise active memory timeout default
* Keep usage footer on primary reply
* Clear stale active memory status lines
* Match legacy active memory status prefixes
* Preserve numeric active memory bullets
* Reuse canonical session keys for active memory
* Let active memory subagent decide relevance
* Refine active memory plugin summary flow
* Fix active memory main-session DM detection
* Trim active memory summaries at word boundaries
* Add active memory prompt styles
* Fix active memory stale status cleanup
* Rename active memory subagent wording
* Add active memory prompt and thinking overrides
* Remove active memory legacy status compat
* Resolve active memory session id status
* Add active memory session toggle
* Add active memory global toggle
* Fix active memory toggle state handling
* Harden active memory transcript persistence
* Fix active memory chat type gating
* Scope active memory transcripts by agent
* Show plugin debug before replies
2026-04-09 11:27:37 -05:00