1707 Commits

Author SHA1 Message Date
dsx137
715c18ef5f
fix(core): trigger after-join webhooks for invited members (#3797) 2026-08-31 11:39:56 +08:00
dsx137
a097864afb
fix(core): filter invalid and outdated conversation messages (#3792) 2026-08-26 11:24:11 +08:00
dsx137
49ec272f88
feat: afterMsgSaveDB webhook (#3788)
* feat: afterMsgSaveDB webhook

fix(config): add default webhook event filters

fix(core): handle group mentions and webhook enqueue errors

Use group IDs when filtering group-message attention callbacks, and report failures when asynchronous webhook tasks cannot be queued or posted.

feat(webhook): add standalone mock webhook server CLI

test(webhook): add mock server and test suite for all callback commands

feat(msgtransfer): trigger afterMsgSaveDB webhook when message saved to DB

feat(config): add afterMsgSaveDB webhook configuration

feat(callbackstruct): add CallbackAfterMsgSaveDB command and request structs

* refactor(core): simplify asynchronous webhook enqueueing
2026-08-21 19:36:11 +08:00
dsx137
9928d3fba3
fix(core): enforce admin access for queries (#3782)
* refactor(core): select discovery backend from configured type

* refactor(core): select discovery backend from configured type

* fix(core): restore discovery register API compatibility

* chore: remove local tooling entries from gitignore

* fix(core): enforce admin access for queries

# Conflicts:
#	internal/rpc/group/group.go
2026-08-04 15:20:44 +08:00
withchao
ca0fccaa5c chore: update openimsdk/tools to v0.0.50-alpha.122 2026-08-04 14:33:47 +08:00
dsx137
b516996cbe
refactor(core): select discovery backend from configured type (#3772)
* refactor(core): select discovery backend from configured type

* refactor(core): select discovery backend from configured type

* fix(core): restore discovery register API compatibility

* chore: remove local tooling entries from gitignore
2026-07-22 15:46:48 +08:00
chao
62a45fb302
Merge pull request #3763 from withchao/3.8.3-patch
feat: SendBusinessNotification supported configuration parameters
2026-07-07 11:36:45 +08:00
chao
9016d7722b feat: SendBusinessNotification supported configuration parameters (#3048)
* pb

* fix: Modifying other fields while setting IsPrivateChat does not take effect

* fix: quote message error revoke

* refactoring scheduled tasks

* refactoring scheduled tasks

* refactoring scheduled tasks

* refactoring scheduled tasks

* refactoring scheduled tasks

* refactoring scheduled tasks

* upgrading pkg tools

* fix

* fix

* optimize log output

* feat: support GetLastMessage

* feat: support GetLastMessage

* feat: s3 switch

* feat: s3 switch

* fix: GetUsersOnline

* feat: SendBusinessNotification supported configuration parameters

* feat: SendBusinessNotification supported configuration parameters

* feat: SendBusinessNotification supported configuration parameters

(cherry picked from commit 2c747c95a035512d6c5a583e32ec1e6bb298776b)
2026-07-07 11:33:01 +08:00
chao
f5fa71065a
Merge pull request #3762 from dsx137/3.8.3-patch
ci: action matrix release
2026-07-07 11:26:59 +08:00
dsx137
350169e939 fix(gomod): update protocol lib 2026-07-06 18:38:12 +08:00
dsx137
ef00cdc66c chore(ci): remove draft release publishing step 2026-07-06 18:37:16 +08:00
dsx137
b3287b5797 feat(build): add single-service Docker build script 2026-07-06 18:19:10 +08:00
chao
3b13f3b701
Merge branch 'openimsdk:3.8.3-patch' into 3.8.3-patch 2026-07-06 10:44:15 +08:00
dsx137
9025b6a0fa ci: serialize release image workflows 2026-07-06 10:37:53 +08:00
dsx137
b67c03b33e
refactor(changelog): modernize generator and workflows (#3752)
* refactor(changelog): modernize generator and workflows

* fix(core): reduce max file descriptor limit

* test(core): use stable Go in build test workflow

* refactor(core): use golang alpine base image

* fix(build): limit docker compose parallelism

* refactor(build): inline compose build logic

* fix(core): reorder Dockerfile ARG declarations
2026-07-02 16:37:28 +08:00
dsx137
2b42ff8c71
refactor(core): support kubernetes discovery registry (#3749) 2026-06-26 18:44:39 +08:00
chao
2a6935e910
Merge pull request #3667 from WhereAreBugs/3.8.3-patch
bugfix(conversation):removed unexpectedly called functions and itself…
2026-06-26 18:30:15 +08:00
chao
73ae47c426
Merge pull request #3673 from WhereAreBugs/improve-CopyStructFiled-method-full-remove
CopyStructFields has been replaced due to performance issue.
2026-06-26 17:33:50 +08:00
buvidk1234
bc21c16ef2 chore(msg_gateway): remove redundant codes (#3741)
(cherry picked from commit 7cc4ac813b1faf2b5608bee12381c1726aea8aad)
2026-06-26 16:32:42 +08:00
Sai Asish Y
588b189efc pkg/tools/batcher: stop scheduler panicking when b.data is closed externally (#3714)
* pkg/tools/batcher: stop scheduler panicking when b.data is closed externally

scheduler()'s defer unconditionally calls close(b.data). If the channel
was closed by the caller (or an upstream producer) instead of via the
normal Close()-sends-nil path, the receive on b.data returns ok == false,
scheduler returns, and the deferred close(b.data) then fires on an
already-closed channel:

    panic: close of closed channel

reliably reproducible under the #3653 steps (manually closing b.data
while Start() is running).

Track whether we observed the external-close via a local
`externallyClosed` flag set in the `ok == false` branch. The defer
only closes b.data when that flag is false, i.e. when the scheduler
exited through the nil-message or ticker paths and still owns the
channel. No behaviour change on the graceful Close() path.

Fixes #3653

* ci: retrigger after transient gha outage

Signed-off-by: SAY-5 <say.apm35@gmail.com>

---------

Signed-off-by: SAY-5 <say.apm35@gmail.com>
(cherry picked from commit b3a7342a42ca7daf3e01e275fb0e7d166fb16a58)
2026-06-26 16:32:37 +08:00
chao
dda6714d98
refactor(msg): update regex pattern for conversationID to include a trailing colon (#3736)
(cherry picked from commit 82f87551d6067983f4e31f8dacb905c740d58639)
2026-06-06 09:17:18 +08:00
withchao
b707cd3523 refactor(msg): update regex pattern for conversationID to include a trailing colon
(cherry picked from commit 82f87551d6067983f4e31f8dacb905c740d58639)
2026-06-05 10:50:22 +08:00
dsx137
4876bafc53
refactor(group): optimize group notification and cache handling (#3705)
* refactor(group): optimize group notification and cache handling

- Improve notification sender with bulk operations and fallback logic
- Enhance group cache with new methods for member counts and version handling
- Refactor group controller with better cache integration
- Add more robust error handling and logging

fix(group): optimize group cache implementation

This commit refactors the GroupCacheRedis implementation to improve code organization and maintainability. The changes include:

- Added proper import organization and removed unused imports
- Implemented batchGetCache2 function calls for efficient data retrieval
- Added comprehensive cache key management functions
- Improved version tracking for group members and requests
- Enhanced error handling and logging
- Added batch operations for better performance
- Refactored complex functions into smaller, more manageable pieces

The changes focus on improving the overall structure and performance of the group cache system while maintaining backward compatibility.

refactor(group): improve notification error handling and add admin context

- Convert notification methods to return errors for better error propagation
- Add admin context checking for bulk notifications
- Enhance group info retrieval with proper error handling
- Improve notification sender with fallback user information

fix(group): handle nil group member map in notification

Add nil check for groupMemberMap[groupInfo.GroupID] before accessing to prevent nil pointer panic. Skip iteration if map is nil.

refactor(group): update group notification methods to use UserInfo struct

Renamed function parameter from groupMemberUserID string to changedUserInfo *sdkws.UserInfo
Updated function logic to use changedUserInfo.UserID instead of separate parameter
Refactored notification methods to use consistent UserInfo struct pattern
Added proper error handling for opUser retrieval
Updated function signatures and internal logic for GroupMemberInfoSetNotificationBulk

fix: batchGetGroupRoleLevelMemberIDs with BatchCache

fix: GetGroupMemberNums BatchCache

perf(group): optimize notification logic for group member operations

# Conflicts:
#	internal/rpc/group/group.go
#	pkg/common/storage/cache/redis/group.go

# Conflicts:
#	internal/rpc/group/group.go
#	pkg/common/storage/cache/redis/group.go

* fix: checkAdmin
2026-06-04 18:27:54 +08:00
dsx137
485bbb5b3c
refactor(ci): actions and dockerfile (#3733)
* feat(build): add unified server image build flow

Consolidate service image definitions into a single server build setup, and update CI workflows to use it.

# Conflicts:
#	.github/workflows/docker-build-and-release-services-images.yml
#	.github/workflows/go-build-test.yml
#	Dockerfile
#	build/images/Dockerfile
#	build/images/openim-api/Dockerfile
#	build/images/openim-crontask/Dockerfile
#	build/images/openim-msggateway/Dockerfile
#	build/images/openim-msgtransfer/Dockerfile
#	build/images/openim-push/Dockerfile
#	build/images/openim-rpc-auth/Dockerfile
#	build/images/openim-rpc-conversation/Dockerfile
#	build/images/openim-rpc-friend/Dockerfile
#	build/images/openim-rpc-group/Dockerfile
#	build/images/openim-rpc-msg/Dockerfile
#	build/images/openim-rpc-third/Dockerfile
#	build/images/openim-rpc-user/Dockerfile
#	build/images/openim-tools/component/Dockerfile

* fix(ci): correct Docker image tag generation
2026-06-04 18:15:21 +08:00
dsx137
4cb05243df
chore: update tools ver (#3729)
* chore: update tools ver

* chore: update tools ver
2026-05-27 19:42:20 +08:00
icey-yu
5211d43d9d
Merge pull request #3707 from icey-yu/feat-comment-383
feat: enhance configuration files with detailed comments for clarity
2026-03-20 18:26:37 +08:00
icey-yu
801ac740b7 feat: enhance configuration files with detailed comments for clarity 2026-03-20 18:24:51 +08:00
dsx137
5028624fa3
feat: gomake upgrade (#3701) 2026-03-19 12:07:04 +08:00
icey-yu
9b92b3c744
Merge pull request #3697 from icey-yu/feat-bot383
feat: update protocol support botPlatform
2026-03-11 12:16:30 +08:00
icey-yu
f9989274f9 feat: update protocol support botPlatform 2026-03-11 12:16:13 +08:00
神奇bug在哪里
8b4ff0c55b
bugfix(permission):fix no permission error when set group notification. (#3675)
* bugfix(permission):fix no permission error when set group notification.

* fix(send): add temporary admin context to solve permission problem.
2026-02-09 19:12:21 +08:00
WhereAreBugs
6e7bfbea8e remove(CopyStructFields):full datautil.CopyStructFields has been replaced due to performance issue. 2026-02-04 13:44:43 +08:00
WhereAreBugs
203cdb532a improve(default_config):increase default maxFileDescriptors up to 100000 2026-01-23 11:40:35 +08:00
WhereAreBugs
332c4b152c bugfix(conversation):remove unexpected unique index. 2026-01-23 11:17:32 +08:00
chao
7d5e4a2196
Merge pull request #3671 from withchao/3.8.3-patch
feat: add error code for handled friend requests and improve error handling in friend operations
2026-01-22 15:14:13 +08:00
withchao
452e3b2bbb feat: add error code for handled friend requests and improve error handling in friend operations
(cherry picked from commit 5d451fa3f86d48eaf5aab0d961bc99b265c058ec)
2026-01-22 15:07:41 +08:00
WhereAreBugs
86b05e16b6 bugfix(conversation):removed unexpectedly called functions and itself to avoid out of index query. 2026-01-21 16:24:28 +08:00
chao
5f81f632f8
Merge pull request #3659 from withchao/3.8.3-patch
fix: Mongo Malloc upsert overwrites min_seq initialization
2026-01-15 11:02:35 +08:00
withchao
72c39e1dda fix: seq use $setOnInsert for min_seq in conversation update
(cherry picked from commit c27d33160f167a7d967f9d1cb74a6b48c5e44ca9)
2026-01-15 10:56:40 +08:00
dsx137
98b9343501
fix(group): move member count retrieval after member deletion for accurate updates (#3650) 2025-12-31 18:02:09 +08:00
dsx137
1a053275f8
fix(group): set max_seq to 0 when join group (#3647) 2025-12-31 10:56:56 +08:00
chao
1a1391cf3d
Merge pull request #3648 from withchao/3.8.3-patch
refactor: simplify platformID handling and enhance UserConnContext structure
2025-12-25 16:25:30 +08:00
withchao
9fefa916c8 refactor: simplify platformID handling and enhance UserConnContext structure 2025-12-25 15:52:19 +08:00
ribin2333
95ab761d8f
group: 入群个人上限重置为不受限值;退出个人上限固化;通知控制入群 minSeq (#3646) 2025-12-24 17:52:47 +08:00
chao
1c5f876183
Merge pull request #3645 from withchao/3.8.3-patch
feat: replace LongConn with ClientConn interface and simplify message handling
2025-12-19 17:12:28 +08:00
withchao
44457187be refactor: replace LongConn with ClientConn interface and simplify message handling 2025-12-19 17:11:29 +08:00
chao
f4171a2c30
Merge pull request #3638 from withchao/3.8.3-patch
fix: resolve deadlock in cache eviction and improve GetBatch implementation
2025-12-12 15:46:38 +08:00
withchao
59c6136ba8 fix: resolve deadlock in cache eviction and improve GetBatch implementation 2025-12-12 15:39:48 +08:00
withchao
f485f92b00 fix: resolve deadlock in cache eviction and improve GetBatch implementation 2025-12-12 15:33:08 +08:00
withchao
c40f979de6 fix: resolve deadlock in cache eviction and improve GetBatch implementation
(cherry picked from commit ebda95fb11abdddd52ee645dcb2d0697ac9b8e35)
2025-12-12 15:32:19 +08:00