Peter Steinberger
a750a195e5
refactor(extensions): extract feishu dedup and mattermost onchar helpers
2026-02-13 19:08:37 +00:00
Peter Steinberger
67251e97bd
fix(ci): sync extension versions to root release ( #15199 )
2026-02-13 05:54:03 +01:00
Peter Steinberger
7695b4842b
chore: bump version to 2026.2.12
2026-02-12 18:20:46 +01:00
Peter Steinberger
1872d0c592
chore: bump version to 2026.2.10
2026-02-11 11:27:23 +01:00
Peter Steinberger
53273b490b
fix(auto-reply): prevent sender spoofing in group prompts
2026-02-10 00:44:38 -06:00
Seb Slight
ec55583bb7
fix: align extension tests and fetch typing for gate stability ( #12816 )
2026-02-09 11:12:07 -08:00
Peter Steinberger
33c75cb6bf
chore(extensions): mark bundled packages private
2026-02-09 12:59:06 -06:00
Peter Steinberger
fb8c653f53
chore(release): 2026.2.9
2026-02-09 11:19:07 -06:00
max
223eee0a20
refactor: unify peer kind to ChatType, rename dm to direct ( #11881 )
...
* fix: use .js extension for ESM imports of RoutePeerKind
The imports incorrectly used .ts extension which doesn't resolve
with moduleResolution: NodeNext. Changed to .js and added 'type'
import modifier.
* fix tsconfig
* refactor: unify peer kind to ChatType, rename dm to direct
- Replace RoutePeerKind with ChatType throughout codebase
- Change 'dm' literal values to 'direct' in routing/session keys
- Keep backward compat: normalizeChatType accepts 'dm' -> 'direct'
- Add ChatType export to plugin-sdk, deprecate RoutePeerKind
- Update session key parsing to accept both 'dm' and 'direct' markers
- Update all channel monitors and extensions to use ChatType
BREAKING CHANGE: Session keys now use 'direct' instead of 'dm'.
Existing 'dm' keys still work via backward compat layer.
* fix tests
* test: update session key expectations for dmdirect migration
- Fix test expectations to expect :direct: in generated output
- Add explicit backward compat test for normalizeChatType('dm')
- Keep input test data with :dm: keys to verify backward compat
* fix: accept legacy 'dm' in session key parsing for backward compat
getDmHistoryLimitFromSessionKey now accepts both :dm: and :direct:
to ensure old session keys continue to work correctly.
* test: add explicit backward compat tests for dmdirect migration
- session-key.test.ts: verify both :dm: and :direct: keys are valid
- getDmHistoryLimitFromSessionKey: verify both formats work
* feat: backward compat for resetByType.dm config key
* test: skip unix-path Nix tests on Windows
2026-02-09 09:20:52 +09:00
Peter Steinberger
9f703a44dc
chore(release): 2026.2.6-3
2026-02-07 00:44:32 -08:00
Peter Steinberger
ad4dd0422e
chore(release): 2026.2.6-2
2026-02-07 00:30:43 -08:00
Peter Steinberger
677450cd9b
chore(release): bump version to 2026.2.6
2026-02-06 15:37:31 -08:00
Peter Steinberger
5031b283a5
chore: bump version to 2026.2.4
2026-02-05 00:38:50 -08:00
Peter Steinberger
f895c9fba1
chore: sync plugin versions to 2026.2.3
2026-02-04 17:55:13 -08:00
mudrii and Gustavo Madeira Santana
5d82c82313
feat: per-channel responsePrefix override ( #9001 )
...
* feat: per-channel responsePrefix override
Add responsePrefix field to all channel config types and Zod schemas,
enabling per-channel and per-account outbound response prefix overrides.
Resolution cascade (most specific wins):
L1: channels.<ch>.accounts.<id>.responsePrefix
L2: channels.<ch>.responsePrefix
L3: (reserved for channels.defaults)
L4: messages.responsePrefix (existing global)
Semantics:
- undefined -> inherit from parent level
- empty string -> explicitly no prefix (stops cascade)
- "auto" -> derive [identity.name] from routed agent
Changes:
- Core logic: resolveResponsePrefix() in identity.ts accepts
optional channel/accountId and walks the cascade
- resolveEffectiveMessagesConfig() passes channel context through
- Types: responsePrefix added to WhatsApp, Telegram, Discord, Slack,
Signal, iMessage, Google Chat, MS Teams, Feishu, BlueBubbles configs
- Zod schemas: responsePrefix added for config validation
- All channel handlers wired: telegram, discord, slack, signal,
imessage, line, heartbeat runner, route-reply, native commands
- 23 new tests covering backward compat, channel/account levels,
full cascade, auto keyword, empty string stops, unknown fallthrough
Fully backward compatible - no existing config is affected.
Fixes #8857
* fix: address CI lint + review feedback
- Replace Record<string, any> with proper typed helpers (no-explicit-any)
- Add curly braces to single-line if returns (eslint curly)
- Fix JSDoc: 'Per-channel' → 'channel/account' on shared config types
- Extract getChannelConfig() helper for type-safe dynamic key access
* fix: finish responsePrefix overrides (#9001 ) (thanks @mudrii)
* fix: normalize prefix wiring and types (#9001 ) (thanks @mudrii)
---------
Co-authored-by: Gustavo Madeira Santana <[email protected] >
2026-02-04 16:16:34 -05:00
Peter Steinberger
1c4db91593
chore: prepare 2026.2.2 release
2026-02-03 10:02:01 -08:00
Peter Steinberger
85cd55e22b
chore: bump to 2026.2.1
2026-02-02 08:51:54 +00:00
cpojer
f06dd8df06
chore: Enable "experimentalSortImports" in Oxfmt and reformat all imorts.
2026-02-01 10:03:47 +09:00
cpojer
230ca789e2
chore: Lint extensions folder.
2026-01-31 22:42:45 +09:00
cpojer
aa91f6e700
chore: Add openclaw to devDependencies for all extensions so that types resolve.
2026-01-31 22:06:51 +09:00
cpojer
8cab78abbc
chore: Run pnpm format:fix.
2026-01-31 21:13:13 +09:00
Peter Steinberger
247fab47ca
chore: bump version to 2026.1.30
2026-01-31 11:37:36 +01:00
Peter Steinberger
62e4ad23d3
chore: release 2026.1.29
2026-01-30 06:25:45 +01:00
Peter Steinberger
9a7160786a
refactor: rename to openclaw
2026-01-30 03:16:21 +01:00
Peter Steinberger
cb4b3f74b5
chore(release): bump versions to 2026.1.29
2026-01-29 16:48:13 +00:00
Peter Steinberger
7eb57b691c
chore: prep 2026.1.27-beta.1 release
2026-01-28 01:35:58 +01:00
Peter Steinberger
6d16a658e5
refactor: rename clawdbot to moltbot with legacy compat
2026-01-27 12:21:02 +00:00
Peter Steinberger
83460df96f
chore: update molt.bot domains
2026-01-27 12:21:01 +00:00
Peter Steinberger
72fea5e305
chore: bump version to 2026.1.26
2026-01-27 09:10:47 +00:00
Peter Steinberger
8f6542409a
chore: bump versions for 2026.1.25
2026-01-25 22:13:04 +00:00
Peter Steinberger
a22ac64c47
chore: release 2026.1.24-1
2026-01-25 14:08:20 +00:00
Dan Guido and Claude Opus 4.5
48aea87028
feat: add prek pre-commit hooks and dependabot ( #1720 )
...
* feat: add prek pre-commit hooks and dependabot
Pre-commit hooks (via prek):
- Basic hygiene: trailing-whitespace, end-of-file-fixer, check-yaml, check-added-large-files, check-merge-conflict
- Security: detect-secrets, zizmor (GitHub Actions audit)
- Linting: shellcheck, actionlint, oxlint, swiftlint
- Formatting: oxfmt, swiftformat
Dependabot:
- npm and GitHub Actions ecosystems
- Grouped updates (production/development/actions)
- 7-day cooldown for supply chain protection
Co-Authored-By: Claude Opus 4.5 <[email protected] >
* docs: add prek install instruction to AGENTS.md
---------
Co-authored-by: Claude Opus 4.5 <[email protected] >
2026-01-25 10:53:23 +00:00
Peter Steinberger
458e731f8b
fix: newline chunking across channels
2026-01-25 04:11:36 +00:00
Peter Steinberger
aeb6b2ffad
refactor: standardize channel logging
2026-01-23 23:34:30 +00:00
Peter Steinberger
07ce1d73ff
refactor: standardize control command gating
2026-01-23 23:34:30 +00:00
Peter Steinberger
1113f17d4c
refactor: share reply prefix context
2026-01-23 23:34:30 +00:00
Peter Steinberger
8252ae2da1
refactor: unify typing callbacks
2026-01-23 23:33:32 +00:00
Peter Steinberger
521ea4ae5b
refactor: unify pending history helpers
2026-01-23 23:33:32 +00:00
Peter Steinberger
4ee70be690
chore: bump version to 2026.1.23
2026-01-23 22:14:56 +00:00
Peter Steinberger
b77e730657
fix: add per-channel markdown table conversion ( #1495 ) (thanks @odysseus0)
2026-01-23 18:39:25 +00:00
Peter Steinberger
c48751a99c
chore: sync plugin versions for 2026.1.22
2026-01-23 08:18:55 +00:00
Peter Steinberger
279f799388
fix: harden Mattermost plugin gating ( #1428 ) (thanks @damoahdominic)
2026-01-23 01:23:23 +00:00
Dominic Damoah
495a39b5a9
refactor: extract mattermost channel plugin to extension
...
Move mattermost channel implementation from core to extensions/mattermost plugin. Extract config schema, group mentions, normalize utilities, and all mattermost-specific logic (accounts, client, monitor, probe, send) into the extension. Update imports to use plugin SDK and local modules. Add channel metadata directly in plugin definition instead of using getChatChannelMeta. Update package.json with channel and install configuration.
2026-01-22 12:02:30 -05:00
Dominic Damoah
bf6df6d6b7
feat: add Mattermost channel support
...
Add Mattermost as a supported messaging channel with bot API and WebSocket integration. Includes channel state tracking (tint, summary, details), multi-account support, and delivery target routing. Update documentation and tests to include Mattermost alongside existing channels.
2026-01-21 18:40:56 -05:00