Commit Graph

27 Commits

Author SHA1 Message Date
Peter Steinberger 4336a7f3a9 refactor(plugin-sdk): narrow config runtime imports 2026-04-27 14:58:32 +01:00
Peter Steinberger 7f3f108521 refactor(config): migrate plugin config access 2026-04-27 12:35:58 +01:00
Vincent Koc d5c0f70e95 refactor(hooks): share live config fallback handling 2026-04-22 21:42:53 -07:00
Vincent Koc 65ae1e54de fix(hooks): avoid stale thread ownership startup fallback 2026-04-22 14:19:13 -07:00
Peter Steinberger aad1be102d fix(types): narrow live thread ownership config 2026-04-22 21:48:59 +01:00
Vincent Koc db5895fd2a refactor(hooks): centralize live plugin config lookup 2026-04-22 13:38:38 -07:00
Vincent Koc 834e50f83c fix(hooks): use live thread ownership config 2026-04-22 13:01:32 -07:00
Vincent Koc 4ed2ea5035 fix(hooks): tighten thread ownership mention matching 2026-04-22 12:36:37 -07:00
Vincent Koc dbba830417 fix(hooks): track thread ownership mentions case-insensitively 2026-04-22 12:34:27 -07:00
Vincent Koc f9f836eba4 fix(hooks): normalize thread ownership slack id casing 2026-04-22 12:32:33 -07:00
Vincent Koc ec75545a82 fix(hooks): normalize thread ownership channel allowlists 2026-04-22 12:29:08 -07:00
Vincent Koc 4663e7394b fix(hooks): canonicalize slack thread ownership ids 2026-04-22 12:26:31 -07:00
Vincent Koc 7d088f198f fix(hooks): fail open without thread ownership routing 2026-04-22 12:24:15 -07:00
Vincent Koc f4bbbcbfb3 fix(hooks): canonicalize thread ownership conversation ids 2026-04-22 11:57:29 -07:00
Vincent Koc 5fbafa7e47 fix(hooks): prefer shared outbound conversation context 2026-04-22 11:49:25 -07:00
Vincent Koc e593122465 fix(hooks): standardize outbound routing metadata 2026-04-22 10:53:44 -07:00
Peter Steinberger 3e80bd33e4 refactor: simplify extension conversions 2026-04-11 01:37:23 +01:00
Peter Steinberger 0ebeee8b0d chore: enable consistent-return 2026-04-10 20:56:43 +01:00
Peter Steinberger 5fa3b8d7a0 refactor: dedupe provider trimmed readers 2026-04-08 00:09:41 +01:00
Peter Steinberger af62a2c2e4 style: fix extension lint violations 2026-04-06 14:53:55 +01:00
Vincent Koc 63db3443f1 fix(plugin-sdk): prefer canonical private-network opt-in 2026-04-05 11:45:09 +01:00
Jacob Tomlinson f92c92515b fix(extensions): route fetch calls through fetchWithSsrFGuard (#53929)
* fix(extensions): route fetch calls through fetchWithSsrFGuard

Replace raw fetch() with fetchWithSsrFGuard in BlueBubbles, Mattermost,
Nextcloud Talk, and Thread Ownership extensions so outbound requests go
through the shared DNS-pinning and network-policy layer.

BlueBubbles: thread allowPrivateNetwork from account config through all
fetch call sites (send, chat, reactions, history, probe, attachments,
multipart). Add _setFetchGuardForTesting hook for test overrides.

Mattermost: add guardedFetchImpl wrapper in createMattermostClient that
buffers the response body before releasing the dispatcher. Handle
null-body status codes (204/304).

Nextcloud Talk: wrap both sendMessage and sendReaction with
fetchWithSsrFGuard and try/finally release.

Thread Ownership: add fetchWithSsrFGuard and ssrfPolicyFromAllowPrivateNetwork
to the plugin SDK surface; use allowPrivateNetwork:true for the
Docker-internal forwarder.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(extensions): improve null-body handling and test harness cleanup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(bluebubbles): default to strict SSRF policy when allowPrivateNetwork is unset

Callers that omit allowPrivateNetwork previously got undefined policy,
which caused blueBubblesFetchWithTimeout to fall through to raw fetch
and bypass the SSRF guard entirely.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(bluebubbles): thread allowPrivateNetwork through action and monitor call sites

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mattermost,nextcloud-talk): add allowPrivateNetwork config for self-hosted/LAN deployments

* fix: regenerate config docs baseline for new allowPrivateNetwork fields

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 02:04:54 -07:00
Vincent Koc 0f56b16d47 Plugins: internalize more extension SDK imports 2026-03-17 10:42:52 -07:00
Peter Steinberger 6f795fd60e refactor: dedupe bundled plugin entrypoints 2026-03-17 00:14:12 -07:00
Gustavo Madeira Santana 7c96d82112 Plugins/thread-ownership: migrate to scoped plugin-sdk imports 2026-03-04 02:35:13 -05:00
Gustavo Madeira Santana 1278ee9248 plugin-sdk: add channel subpaths and migrate bundled plugins 2026-03-03 22:07:03 -05:00
Peter Steinberger 51296e770c feat(slack): land thread-ownership from @DarlingtonDeveloper (#15775)
Land PR #15775 by @DarlingtonDeveloper:
- add thread-ownership plugin and Slack message_sending hook wiring
- include regression tests and changelog update

Co-authored-by: Mike <108890394+DarlingtonDeveloper@users.noreply.github.com>
2026-02-13 23:37:05 +00:00