1783 Commits

Author SHA1 Message Date
chao
ddd1446f56
Merge branch 'openimsdk:main' into main 2026-08-28 17:49:24 +08:00
dsx137
defc929ef8
fix(core): filter invalid and outdated conversation messages (#3791) 2026-08-26 03:23:57 +00:00
chao
b7479f74d0
Merge branch 'openimsdk:main' into main 2026-08-25 18:02:28 +08:00
Leo225
676ad0f02e
refactor(tests): simplify loop constructs in compressor tests and benchmarks (#3776) 2026-08-04 11:06:03 +00:00
dsx137
193870b2f9
fix(core): enforce admin access for queries (#3781) 2026-08-04 07:19:40 +00:00
withchao
7fb7d55166 chore: update openimsdk/tools dependency to v0.0.50-alpha.122 2026-08-04 14:15:43 +08:00
chao
0e5a798f8d
Merge branch 'openimsdk:main' into main 2026-08-04 11:42:04 +08:00
dsx137
2f7561bf49
refactor(core): select discovery backend from configured type (#3773)
* refactor(core): select discovery backend from configured type

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

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

* refactor(core): select discovery backend from configured type
2026-07-22 07:46:44 +00:00
withchao
10baf8ff7e feat: Support Streaming Messages in the Open-Source Server 2026-07-13 14:24:49 +08:00
chao
fc3e18fe3a
Merge branch 'openimsdk:main' into main 2026-07-07 11:35:18 +08:00
dsx137
de0f1eec8a
ci: action matrix release (#3761)
* ci: serialize release image workflows

* feat(build): add single-service Docker build script

* chore(ci): remove draft release publishing step

# Conflicts:
#	.github/workflows/update-version-file-on-release.yml
2026-07-07 03:27:14 +00:00
chao
c603db1280
Merge branch 'openimsdk:main' into main 2026-07-06 10:42:01 +08:00
chao
10a577c310
feat: Supports launching multiple monolithic instances, load-balanced by nginx, requiring only MongoDB and Redis at a minimum (#3759)
* fix: performance issues with Kafka caused by encapsulating the MQ interface

* fix: admin token in standalone mode

* fix: full id version

* fix: resolve deadlock in cache eviction and improve GetBatch implementation

* refactor: replace LongConn with ClientConn interface and simplify message handling

* refactor: replace LongConn with ClientConn interface and simplify message handling

* fix: seq use $setOnInsert for min_seq in conversation update

* feat: add error code for handled friend requests and improve error handling in friend operations

* refactor(msg): update regex pattern for conversationID to include a trailing colon

* refactor: streamline cache initialization and enhance queue engine configuration

* refactor: streamline cache initialization and enhance queue engine configuration

* feat: add RegisterIP to API config and implement Redis server registration

* feat(redis): implement standalone gateway registration with Redis

* chore: update openimsdk/tools dependency to v0.0.50-alpha.121

* fix: change timer to ticker for improved periodic execution

* refactor: replace Kafka topic configuration with mqbuild constants for improved readability

* feat(redis): implement Redis-based locking mechanism for cron tasks
2026-07-03 10:28:06 +00:00
withchao
5882597ee1 feat(redis): implement Redis-based locking mechanism for cron tasks 2026-07-03 17:51:42 +08:00
withchao
bfe8bcd9ad refactor: replace Kafka topic configuration with mqbuild constants for improved readability 2026-07-03 17:16:50 +08:00
withchao
fa411a79a4 fix: change timer to ticker for improved periodic execution 2026-07-03 16:28:20 +08:00
withchao
26e22efdd8 chore: update openimsdk/tools dependency to v0.0.50-alpha.121 2026-07-03 16:19:12 +08:00
withchao
ee672697c2 feat(redis): implement standalone gateway registration with Redis 2026-07-03 15:51:59 +08:00
withchao
ad2735a1cb feat: add RegisterIP to API config and implement Redis server registration 2026-07-03 15:04:40 +08:00
withchao
d172cfe29d refactor: streamline cache initialization and enhance queue engine configuration 2026-07-03 14:39:36 +08:00
withchao
d0366c483d refactor: streamline cache initialization and enhance queue engine configuration 2026-07-03 14:33:46 +08:00
chao
c9c7db0bdd
Merge branch 'openimsdk:main' into main 2026-07-03 10:46:05 +08:00
dsx137
7848d7c735
refactor(changelog): modernize generator and workflows (#3753)
* refactor(changelog): modernize generator and workflows

* 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 08:37:22 +00:00
chao
b5ccf804a1
Merge branch 'openimsdk:main' into main 2026-06-30 10:06:23 +08:00
WangZhonghui
7aab6a8e16
fix: get online users (#3461)
get online users fail
2026-06-26 09:46:48 +00:00
github-actions[bot]
de3c1ba630
Update CHANGELOG for release v3.8.3-patch.16 (#3703)
Co-authored-by: dsx137 <70027572+dsx137@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-26 09:10:26 +00:00
github-actions[bot]
0ed1b4e0b7
Update CHANGELOG for release v3.8.3-patch.12 (#3603)
Co-authored-by: mo3et <34803812+mo3et@users.noreply.github.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
2026-06-26 08:53:47 +00:00
github-actions[bot]
5803ae8da0
Update CHANGELOG for release v3.8.3-patch.9 (#3536)
Co-authored-by: mo3et <34803812+mo3et@users.noreply.github.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
2026-06-26 08:51:54 +00:00
github-actions[bot]
42bf2c35b4
Update CHANGELOG for release v3.8.3-patch.8 (#3520)
Co-authored-by: mo3et <34803812+mo3et@users.noreply.github.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
2026-06-26 08:50:03 +00:00
github-actions[bot]
88da73f2b3
Update CHANGELOG for release v3.8.3-patch.7 (#3492)
Co-authored-by: mo3et <34803812+mo3et@users.noreply.github.com>
2026-06-26 08:46:37 +00:00
icey-yu
19b0bb2479
feat: enhance configuration files with detailed comments for better clarity (#3706) 2026-06-26 08:42:41 +00:00
buvidk1234
7cc4ac813b
chore(msg_gateway): remove redundant codes (#3741) 2026-06-26 08:10:37 +00:00
Sai Asish Y
b3a7342a42
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>
2026-06-26 08:00:00 +00:00
buvidk1234
30074d16ae
perf(cache): fix slice capacity under-allocation in SetUserOnline (#3746) 2026-06-26 07:04:47 +00:00
chao
e769084e62
Merge branch 'openimsdk:main' into main 2026-06-25 10:23:54 +08:00
chao
1036e81eb4
refactor(msg): update regex pattern for conversationID to include a trailing colon (#3737)
(cherry picked from commit 82f87551d6067983f4e31f8dacb905c740d58639)
2026-06-05 10:25:13 +00:00
withchao
82f87551d6 refactor(msg): update regex pattern for conversationID to include a trailing colon 2026-06-05 10:49:47 +08:00
chao
75ebca4ff8
Merge branch 'openimsdk:main' into main 2026-06-05 10:42:04 +08:00
dsx137
7c242b8491
refactor(group): optimize group notification and cache handling (#3704)
* 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

* fix: import
2026-06-04 12:05:40 +00:00
buvidk1234
1ac6a259dd
Modify conversation_id index options (#3722)
* Modify conversation_id index options

Removed the unique constraint from the conversation_id index.

* fix(msggateway): reset read deadline in pong handler to prevent Web client timeout

Root cause:
Due to browser API restrictions, Web (Wasm) clients cannot actively send standard WebSocket Ping frames. They rely entirely on server-initiated Pings (every 27s) and automatic browser Pong responses to maintain the connection. The `pongHandler` was empty and failed to reset the connection's read deadline upon receiving a Pong, causing the server's read loop to strictly time out at 30 seconds.

Solution:
Call `c.setReadDeadline()` inside the `pongHandler` to properly extend the connection's lifespan when a Pong frame is received.

---------

Co-authored-by: OpenIM-Gordon <1432970085@qq.com>
2026-06-04 12:03:52 +00:00
dsx137
8f913ca13b
refactor(ci): actions and dockerfile (#3732)
* 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.

* fix(ci): correct Docker image tag generation
2026-06-04 10:09:07 +00:00
wsy6543
9118b3a339
fix GetMaxSeqs (#3561) 2026-06-04 18:02:42 +08:00
Derek YU
fd61ea4b03
fix: remove duplicate conversation_id unique index (#3713)
Group conversations store one record per owner_user_id and conversation_id pair, so a global unique index on conversation_id breaks group conversation creation with duplicate key errors.
2026-06-04 16:12:55 +08:00
dsx137
6b3faaef1a
chore: update tools ver (#3730) 2026-05-28 08:48:32 +00:00
dsx137
d16a617ba8
feat: gomake upgrade (#3702) 2026-03-19 04:09:02 +00:00
icey-yu
942d155d2d
feat: update protocol support botPlatform (#3696) 2026-03-11 05:44:36 +00:00
chao
7709b75d39
Merge branch 'openimsdk:main' into main 2026-01-23 15:46:10 +08:00
chao
b7200c163c
feat: add error code for handled friend requests and improve error handling in friend operations (#3670)
* fix: performance issues with Kafka caused by encapsulating the MQ interface

* fix: admin token in standalone mode

* fix: full id version

* fix: resolve deadlock in cache eviction and improve GetBatch implementation

* refactor: replace LongConn with ClientConn interface and simplify message handling

* refactor: replace LongConn with ClientConn interface and simplify message handling

* fix: seq use $setOnInsert for min_seq in conversation update

* feat: add error code for handled friend requests and improve error handling in friend operations
2026-01-22 08:34:00 +00:00
withchao
5d451fa3f8 feat: add error code for handled friend requests and improve error handling in friend operations 2026-01-22 15:04:37 +08:00
chao
ec33d6c3b7
Merge branch 'openimsdk:main' into main 2026-01-22 14:15:28 +08:00