Peter Steinberger
9a14696f30
test: dedupe feishu config schema checks
2026-03-13 23:35:26 +00:00
Peter Steinberger
b5eb329f94
test: dedupe feishu outbound setup
2026-03-13 23:35:26 +00:00
Peter Steinberger
2cf6e2e4f6
test: dedupe matrix target resolution cases
2026-03-13 23:35:26 +00:00
Peter Steinberger
1dc8e17371
refactor: share line outbound media loop
2026-03-13 23:35:26 +00:00
Peter Steinberger
407d0d296d
refactor: share tlon outbound send context
2026-03-13 23:35:26 +00:00
Peter Steinberger
a57c590a71
refactor: share telegram outbound send options
2026-03-13 23:35:26 +00:00
Peter Steinberger
d0337a18b6
fix: clear typecheck backlog
2026-03-13 22:09:06 +00:00
Peter Steinberger
a9d8518e7c
test: dedupe msteams consent auth fixtures
2026-03-13 21:54:39 +00:00
Peter Steinberger
110eeec5b8
test: dedupe twitch access control checks
2026-03-13 21:54:39 +00:00
Peter Steinberger
0530d1c530
test: dedupe twitch access control assertions
2026-03-13 21:54:39 +00:00
Peter Steinberger
f2300f4522
test: dedupe msteams policy route fixtures
2026-03-13 21:54:39 +00:00
Peter Steinberger
b23bfef8cc
test: dedupe feishu probe fixtures
2026-03-13 21:54:39 +00:00
Peter Steinberger
5b51d92f3e
test: dedupe synology channel account fixtures
2026-03-13 21:54:39 +00:00
Peter Steinberger
d964c15040
test: dedupe synology webhook request helpers
2026-03-13 21:54:39 +00:00
Peter Steinberger
8896a477df
test: dedupe bluebubbles local media send cases
2026-03-13 21:54:39 +00:00
Peter Steinberger
168394980f
refactor: share slack allowlist target mapping
2026-03-13 21:54:39 +00:00
Peter Steinberger
f0d0ad39c4
test: dedupe nostr profile http assertions
2026-03-13 21:54:39 +00:00
Peter Steinberger
58baf22230
refactor: share zalo monitor processing context
2026-03-13 21:54:39 +00:00
Peter Steinberger
b9f0effd55
test: dedupe synology chat client timer setup
2026-03-13 21:54:39 +00:00
Peter Steinberger
853999fd7f
refactor: dedupe synology chat client webhook payloads
2026-03-13 21:54:39 +00:00
Peter Steinberger
f5b9095108
refactor: share zalo send result handling
2026-03-13 21:54:39 +00:00
Peter Steinberger
a6375a2094
refactor: share zalouser account resolution
2026-03-13 21:40:54 +00:00
Peter Steinberger
4ec0a120df
test: share zalo api request assertion
2026-03-13 21:40:54 +00:00
Peter Steinberger
83571fdb93
refactor: dedupe agent list filtering
2026-03-13 21:40:53 +00:00
Peter Steinberger
4269ea4e8d
test: share slack config snapshot helper
2026-03-13 21:40:53 +00:00
Peter Steinberger
71639d1744
test: share lobster windows spawn assertions
2026-03-13 21:40:53 +00:00
Peter Steinberger
12432ca138
test: share googlechat webhook routing helpers
2026-03-13 21:40:53 +00:00
Peter Steinberger
d4d0091760
test: share msteams safe fetch assertions
2026-03-13 21:40:53 +00:00
Peter Steinberger
9ecd1898d0
refactor: share telegram channel test harnesses
2026-03-13 21:40:53 +00:00
Peter Steinberger
3ffb9f19cb
test: reduce feishu reply dispatcher duplication
2026-03-13 21:40:53 +00:00
Peter Steinberger
d347a4426d
refactor: share twitch outbound target assertions
2026-03-13 21:40:53 +00:00
Peter Steinberger
aa551e5a9c
refactor: share acpx process env test helper
2026-03-13 21:40:53 +00:00
Peter Steinberger
65cf2cea9d
refactor: share matrix monitor test helpers
2026-03-13 21:40:53 +00:00
Peter Steinberger
b5010719d6
test: dedupe telnyx webhook test fixtures
2026-03-13 21:40:53 +00:00
Peter Steinberger
d5d2fe1b0e
test: reduce webhook auth test duplication
2026-03-13 21:40:53 +00:00
Peter Steinberger
de9ea76b6c
refactor: dedupe feishu send reply fallback helpers
2026-03-13 21:40:53 +00:00
Peter Steinberger
6ecc184637
refactor: share googlechat api fetch handling
2026-03-13 21:40:53 +00:00
Peter Steinberger
eca22c0cc7
test: share bluebubbles attachment fixtures
2026-03-13 21:40:53 +00:00
Peter Steinberger
89e0e80db3
test: share bluebubbles removal reaction helper
2026-03-13 21:40:53 +00:00
Peter Steinberger
143ae5a5b0
refactor: share feishu chunked reply delivery
2026-03-13 21:40:53 +00:00
Peter Steinberger
6756e376f3
refactor: share bluebubbles response and tapback helpers
2026-03-13 21:40:53 +00:00
Peter Steinberger
867dc6a185
test: share twitch send success mocks
2026-03-13 21:40:53 +00:00
Peter Steinberger
a8508f2b31
test: share voice webhook reaper harness
2026-03-13 21:40:53 +00:00
Peter Steinberger
534e4b1418
refactor: share synology chat raw config fields
2026-03-13 21:40:52 +00:00
Peter Steinberger
1cea43d349
test: share zalouser group policy resolver
2026-03-13 21:40:52 +00:00
Vincent Koc
a976cc2e95
Slack: add opt-in interactive reply directives ( #44607 )
...
* Reply: add Slack interactive directive parser
* Reply: wire Slack directives into normalization
* Reply: cover Slack directive parsing
* Reply: test Slack directive normalization
* Slack: hint interactive reply directives
* Config: add Slack interactive reply capability type
* Config: validate Slack interactive reply capability
* Reply: gate Slack directives behind capability
* Slack: gate interactive reply hints by capability
* Tests: cover Slack interactive reply capability gating
* Changelog: note opt-in Slack interactive replies
* Slack: fix interactive reply review findings
* Slack: harden interactive reply routing and limits
* Slack: harden interactive reply trust and validation
2026-03-13 14:08:04 -07:00
Peter Steinberger
b84c7037de
fix: repair ci audit and type drift
2026-03-13 21:02:19 +00:00
Vincent Koc
ffee3dfef0
Plugins: resolve local openclaw peer for audits
2026-03-13 13:55:28 -07:00
Peter Steinberger
bf631b5872
refactor: share voice restore test setup
2026-03-13 20:37:53 +00:00
Peter Steinberger
ba2d57d024
refactor: share mattermost test harnesses
2026-03-13 20:37:53 +00:00
Peter Steinberger
48853f875b
refactor: share test request helpers
2026-03-13 20:37:53 +00:00
Peter Steinberger
784020f71e
docs: trim duplicated plugin and open prose guides
2026-03-13 20:19:39 +00:00
Peter Steinberger
d53d4dc22f
refactor: share zalouser group gating helpers
2026-03-13 20:19:39 +00:00
Peter Steinberger
2dd180472f
refactor: share mattermost interaction test helpers
2026-03-13 20:19:39 +00:00
Peter Steinberger
a5f0f66427
refactor: share zalouser group auth setup
2026-03-13 20:19:38 +00:00
Peter Steinberger
985be2a864
refactor: share acpx ensure install checks
2026-03-13 20:19:38 +00:00
Peter Steinberger
41c9e3ead0
refactor: share cron and zalo monitor test helpers
2026-03-13 18:38:12 +00:00
Peter Steinberger
6464149031
refactor: share feishu webhook monitor harness
2026-03-13 18:38:12 +00:00
Peter Steinberger
369430f9ab
refactor: share tlon upload test mocks
2026-03-13 17:29:59 +00:00
Peter Steinberger
e358d57fb5
refactor: share feishu reply fallback flow
2026-03-13 16:51:59 +00:00
Peter Steinberger
a14a32695d
refactor: share feishu reaction client setup
2026-03-13 16:51:59 +00:00
Peter Steinberger
acfb95e2c6
refactor: share tlon channel put requests
2026-03-13 16:51:59 +00:00
Peter Steinberger
fb40b09157
refactor: share feishu media client setup
2026-03-13 16:51:59 +00:00
Peter Steinberger
6b04ab1e35
refactor: share teams drive upload flow
2026-03-13 16:51:59 +00:00
Peter Steinberger
a4525b721e
refactor: deduplicate nextcloud send context
2026-03-13 16:51:59 +00:00
Peter Steinberger
6b07604d64
refactor: share nextcloud target normalization
2026-03-13 16:51:59 +00:00
Peter Steinberger
ef8cc3d0fb
refactor: share tlon inline text rendering
2026-03-13 16:51:59 +00:00
Peter Steinberger
261a40dae1
fix: narrow acpx health failure handling
2026-03-13 16:30:27 +00:00
Peter Steinberger
3f37afd18c
refactor: extract acpx event builders
2026-03-13 16:30:27 +00:00
Peter Steinberger
f4ed317083
refactor: deduplicate acpx availability checks
2026-03-13 16:30:27 +00:00
Peter Steinberger
16ececf0a6
chore: bump version to 2026.3.13
2026-03-13 04:38:32 +00:00
Peter Steinberger
496ca3a637
fix(feishu): fail closed on webhook signature checks
2026-03-13 03:13:56 +00:00
Peter Steinberger
de3e6a8c5b
fix(routing): require ids for slack and msteams allowlists
2026-03-13 01:44:42 +00:00
Peter Steinberger
88244c0942
refactor(zalouser): reuse shared name matching helper
2026-03-13 01:44:42 +00:00
Peter Steinberger
c25e46a433
chore: prepare 2026.3.12 release
2026-03-13 01:38:20 +00:00
Peter Steinberger
b14a5c6713
fix(zalouser): require ids for group allowlist auth
2026-03-13 01:31:17 +00:00
Peter Steinberger
87ad1ce9b1
refactor: add non-interactive provider plugin setup
2026-03-13 01:19:35 +00:00
Vincent Koc
fed24a1311
build: sync bundled plugin versions
2026-03-12 21:06:12 -04:00
Peter Steinberger
4dd4e36450
build: update deps and fix vitest 4 regressions
2026-03-13 01:02:00 +00:00
Peter Steinberger
86a3149b2e
fix: harden windows npm runtime path
2026-03-12 23:03:19 +00:00
Vincent Koc
92191fcd68
deps: bump openclaw to 2026.3.11
...
Raise internal OpenClaw constraints to 2026.3.11 and regenerate pnpm lockfile to remove the vulnerable 2026.3.8 resolution.
2026-03-12 19:00:49 -04:00
Peter Steinberger
212afb6950
refactor: clarify pairing setup auth labels
2026-03-12 22:46:28 +00:00
Peter Steinberger
1c7ca391a8
refactor: trim bootstrap token metadata
2026-03-12 22:46:28 +00:00
Peter Steinberger
d83491e751
feat: modularize provider plugin architecture
2026-03-12 22:24:35 +00:00
Peter Steinberger
bf89947a8e
fix: switch pairing setup codes to bootstrap tokens
2026-03-12 22:23:07 +00:00
Vincent Koc
f96ba87f03
Zalo: rate limit invalid webhook secret guesses before auth ( #44173 )
...
* Zalo: rate limit webhook guesses before auth
* Tests: cover pre-auth Zalo webhook rate limiting
* Changelog: note Zalo pre-auth rate limiting
* Zalo: preserve auth-before-content-type response ordering
* Tests: cover auth-before-content-type webhook ordering
* Zalo: split auth and unauth webhook rate-limit buckets
* Tests: cover auth bucket split for Zalo webhook rate limiting
* Zalo: use trusted proxy client IP for webhook rate limiting
* Tests: cover trusted proxy client IP rate limiting for Zalo
2026-03-12 12:30:50 -04:00
Vincent Koc
7844bc89a1
Security: require Feishu webhook encrypt key ( #44087 )
...
* Feishu: require webhook encrypt key in schema
* Feishu: cover encrypt key webhook validation
* Feishu: enforce encrypt key at startup
* Feishu: add webhook forgery regression test
* Feishu: collect encrypt key during onboarding
* Docs: require Feishu webhook encrypt key
* Changelog: note Feishu webhook hardening
* Docs: clarify Feishu encrypt key screenshot
* Feishu: treat webhook encrypt key as secret input
* Feishu: resolve encrypt key only in webhook mode
2026-03-12 11:01:00 -04:00
Vincent Koc
3e730c0332
Security: preserve Feishu reaction chat type ( #44088 )
...
* Feishu: preserve looked-up chat type
* Feishu: fail closed on ambiguous reaction chats
* Feishu: cover reaction chat type fallback
* Changelog: note Feishu reaction hardening
* Feishu: fail closed without resolved chat type
* Feishu: normalize reaction chat type at runtime
2026-03-12 10:53:40 -04:00
Lyle
c965049dc6
fix(mattermost): pass mediaLocalRoots through reply delivery ( #44021 )
...
Merged via squash.
Prepared head SHA: 856f11f129
Co-authored-by: LyleLiu666 <31182860+LyleLiu666@users.noreply.github.com>
Co-authored-by: mukhtharcm <56378562+mukhtharcm@users.noreply.github.com>
Reviewed-by: @mukhtharcm
2026-03-12 20:13:51 +05:30
Teconomix
171d2df9e0
feat(mattermost): add replyToMode support (off | first | all) ( #29587 )
...
Merged via squash.
Prepared head SHA: 4a67791f53
Co-authored-by: teconomix <6959299+teconomix@users.noreply.github.com>
Co-authored-by: mukhtharcm <56378562+mukhtharcm@users.noreply.github.com>
Reviewed-by: @mukhtharcm
2026-03-12 18:03:12 +05:30
Nimrod Gutman
4f620bebe5
fix(doctor): canonicalize gateway service entrypoint paths ( #43882 )
...
Merged via squash.
Prepared head SHA: 9f530d2a86
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Reviewed-by: @ngutman
2026-03-12 12:39:22 +02:00
Ayaan Zaidi
783a0d540f
fix: add zalouser outbound chunker
2026-03-12 15:47:12 +05:30
darkamenosa
a6711afdc2
feat(zalouser): add markdown-to-Zalo text style parsing ( #43324 )
...
* feat(zalouser): add markdown-to-Zalo text style parsing
Parse markdown formatting (bold, italic, strikethrough, headings, lists,
code blocks, blockquotes, custom color/style tags) into Zalo native
TextStyle ranges so outbound messages render with rich formatting.
- Add text-styles.ts with parseZalouserTextStyles() converter
- Wire markdown mode into send pipeline (sendMessageZalouser)
- Export TextStyle enum and Style type from zca-client
- Add textMode/textStyles to ZaloSendOptions
- Pass textStyles through sendZaloTextMessage to zca-js API
- Enable textMode:"markdown" in outbound sendText/sendMedia and monitor
- Add comprehensive tests for parsing, send, and channel integration
* fix(zalouser): harden markdown text parsing
* fix(zalouser): mirror zca-js text style types
* fix(zalouser): support tilde fenced code blocks
* fix(zalouser): handle quoted fenced code blocks
* fix(zalouser): preserve literal quote lines in code fences
* fix(zalouser): support indented quoted fences
* fix(zalouser): preserve quoted markdown blocks
* fix(zalouser): rechunk formatted messages
* fix(zalouser): preserve markdown structure across chunks
* fix(zalouser): honor chunk limits and CRLF fences
2026-03-12 16:24:15 +07:00
Xaden Ryan
658bd54ecf
feat(llm-task): add thinking override
...
Co-authored-by: Xaden Ryan <165437834+xadenryan@users.noreply.github.com>
2026-03-12 19:21:35 +11:00
Vincent Koc
4dfd8eea90
BlueBubbles: require confirmed outbound for self-chat cache
2026-03-12 03:22:57 -04:00
Mathias Nagler
e8a162d3d8
fix(mattermost): prevent duplicate messages when block streaming + threading are active ( #41362 )
...
* fix(mattermost): prevent duplicate messages when block streaming + threading are active
Remove replyToId from createBlockReplyPayloadKey so identical content is
deduplicated regardless of threading target. Add explicit threading dock
to the Mattermost plugin with resolveReplyToMode reading from config
(default "all"), and add replyToMode to the Mattermost config schema.
Fixes #41219
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(mattermost): address PR review — per-account replyToMode and test clarity
Read replyToMode from the merged per-account config via
resolveMattermostAccount so account-level overrides are honored in
multi-account setups. Add replyToMode to MattermostAccountConfig type.
Rename misleading test to clarify it exercises shouldDropFinalPayloads
short-circuit, not payload key dedup.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Replies: keep block-pipeline reply targets distinct
* Tests: cover block reply target-aware dedupe
* Update CHANGELOG.md
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-03-12 03:15:17 -04:00
Vincent Koc
241e8cc553
fix(bluebubbles): dedupe reflected self-chat duplicates ( #38442 )
...
* BlueBubbles: drop reflected self-chat duplicates
* Changelog: add BlueBubbles self-chat echo dedupe entry
* BlueBubbles: gate self-chat cache and expand coverage
* BlueBubbles: require explicit sender ids for self-chat dedupe
* BlueBubbles: harden self-chat cache
* BlueBubbles: move self-chat cache identity into cache
* BlueBubbles: gate self-chat cache to confirmed outbound sends
* Update CHANGELOG.md
* BlueBubbles: bound self-chat cache input work
* Tests: cover BlueBubbles cache cap under cleanup throttle
* BlueBubbles: canonicalize self-chat DM scope
* Tests: cover BlueBubbles mixed self-chat scope aliases
2026-03-12 03:11:43 -04:00
Peter Steinberger
ce5dd742f8
build: sync versions to 2026.3.11
2026-03-12 04:01:57 +00:00
Peter Steinberger
0e397e62b7
chore: bump version to 2026.3.10
2026-03-11 23:29:53 +00:00
Peter Steinberger
9c81c31232
chore: refresh dependencies except carbon
2026-03-11 20:10:33 +00:00