From 30074d16ae32fa1d50f7ef6a69e4db7b41c59022 Mon Sep 17 00:00:00 2001 From: buvidk1234 <161066602+buvidk1234@users.noreply.github.com> Date: Fri, 26 Jun 2026 15:04:47 +0800 Subject: [PATCH 01/10] perf(cache): fix slice capacity under-allocation in SetUserOnline (#3746) --- pkg/common/storage/cache/redis/online.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/storage/cache/redis/online.go b/pkg/common/storage/cache/redis/online.go index c11473695..d09c44e9a 100644 --- a/pkg/common/storage/cache/redis/online.go +++ b/pkg/common/storage/cache/redis/online.go @@ -112,7 +112,7 @@ func (s *userOnline) SetUserOnline(ctx context.Context, userID string, online, o end ` now := time.Now() - argv := make([]any, 0, 2+len(online)+len(offline)) + argv := make([]any, 0, 4+len(online)+len(offline)) argv = append(argv, int32(s.expire/time.Second), now.Unix(), now.Add(s.expire).Unix(), int32(len(offline))) for _, platformID := range offline { argv = append(argv, platformID) From b3a7342a42ca7daf3e01e275fb0e7d166fb16a58 Mon Sep 17 00:00:00 2001 From: Sai Asish Y Date: Fri, 26 Jun 2026 01:00:00 -0700 Subject: [PATCH 02/10] 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 --------- Signed-off-by: SAY-5 --- pkg/tools/batcher/batcher.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/tools/batcher/batcher.go b/pkg/tools/batcher/batcher.go index 93a31ed8f..bbaa2ca93 100644 --- a/pkg/tools/batcher/batcher.go +++ b/pkg/tools/batcher/batcher.go @@ -151,12 +151,21 @@ func (b *Batcher[T]) Put(ctx context.Context, data *T) error { func (b *Batcher[T]) scheduler() { ticker := time.NewTicker(b.config.interval) + // Track whether b.data was closed by an external caller so the + // cleanup below does not close it a second time. The only routes + // out of this function that leave b.data open are the nil-message + // and ticker paths; the ok == false branch means someone already + // closed the channel, and calling close(b.data) again there would + // panic with "close of closed channel" (#3653). + externallyClosed := false defer func() { ticker.Stop() for _, ch := range b.chArrays { close(ch) } - close(b.data) + if !externallyClosed { + close(b.data) + } b.wait.Done() }() @@ -169,6 +178,7 @@ func (b *Batcher[T]) scheduler() { case data, ok := <-b.data: if !ok { // If the data channel is closed unexpectedly + externallyClosed = true return } if data == nil { From 7cc4ac813b1faf2b5608bee12381c1726aea8aad Mon Sep 17 00:00:00 2001 From: buvidk1234 <161066602+buvidk1234@users.noreply.github.com> Date: Fri, 26 Jun 2026 16:10:37 +0800 Subject: [PATCH 03/10] chore(msg_gateway): remove redundant codes (#3741) --- pkg/rpccache/online.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkg/rpccache/online.go b/pkg/rpccache/online.go index fb7f18393..fa6fc73d3 100644 --- a/pkg/rpccache/online.go +++ b/pkg/rpccache/online.go @@ -214,8 +214,6 @@ func (o *defaultOnlineCache) GetUserOnlinePlatform(ctx context.Context, userID s if err != nil { return nil, err } - tmp := make([]int32, len(platformIDs)) - copy(tmp, platformIDs) return platformIDs, nil } From 19b0bb24792dba5a931e021ebd0b2750aa6176a2 Mon Sep 17 00:00:00 2001 From: icey-yu <119291641+icey-yu@users.noreply.github.com> Date: Fri, 26 Jun 2026 16:42:41 +0800 Subject: [PATCH 04/10] feat: enhance configuration files with detailed comments for better clarity (#3706) --- config/alertmanager.yml | 42 +++++++++++++------------ config/email.tmpl | 3 ++ config/instance-down-rules.yml | 27 ++++++++-------- config/openim-api.yml | 2 +- config/openim-msggateway.yml | 2 +- config/openim-msgtransfer.yml | 2 +- config/openim-push.yml | 2 +- config/openim-rpc-auth.yml | 2 +- config/openim-rpc-conversation.yml | 2 +- config/openim-rpc-friend.yml | 2 +- config/openim-rpc-group.yml | 2 +- config/openim-rpc-msg.yml | 2 +- config/openim-rpc-third.yml | 2 +- config/openim-rpc-user.yml | 2 +- config/prometheus.yml | 49 +++++++++++++++--------------- 15 files changed, 74 insertions(+), 69 deletions(-) diff --git a/config/alertmanager.yml b/config/alertmanager.yml index 6c675ab6f..0f4d9875f 100644 --- a/config/alertmanager.yml +++ b/config/alertmanager.yml @@ -1,34 +1,36 @@ +# Global Alertmanager runtime and SMTP settings. global: - resolve_timeout: 5m - smtp_from: alert@openim.io - smtp_smarthost: smtp.163.com:465 - smtp_auth_username: alert@openim.io - smtp_auth_password: YOURAUTHPASSWORD - smtp_require_tls: false - smtp_hello: xxx + resolve_timeout: 5m # Wait time before an alert is considered resolved when no further updates are received. + smtp_from: alert@openim.io # Sender address displayed in alert emails. + smtp_smarthost: smtp.163.com:465 # SMTP relay endpoint in host:port format. + smtp_auth_username: alert@openim.io # SMTP authentication username (commonly the same as smtp_from). + smtp_auth_password: YOURAUTHPASSWORD # SMTP authorization token or app password. + smtp_require_tls: false # Set to true when your SMTP provider requires STARTTLS. + smtp_hello: xxx # HELO/EHLO identity presented to the SMTP server. templates: - - /etc/alertmanager/email.tmpl + - /etc/alertmanager/email.tmpl # Go template file used to render HTML email content. +# Root routing tree for all incoming alerts. route: - group_by: [ 'alertname' ] - group_wait: 5s - group_interval: 5s - repeat_interval: 5m - receiver: email + group_by: [ 'alertname' ] # Alerts sharing this label value are batched into one notification. + group_wait: 5s # Initial delay before sending the first notification for a new alert group. + group_interval: 5s # Minimum interval between notifications for the same alert group. + repeat_interval: 5m # Reminder interval while an alert group remains firing. + receiver: email # Default receiver when no child route matches. routes: - matchers: - - alertname = "XXX" - group_by: [ 'instance' ] + - alertname = "XXX" # Example matcher; replace with a real alert name or remove this route. + group_by: [ 'instance' ] # Override grouping for this specific route. group_wait: 5s group_interval: 5s repeat_interval: 5m receiver: email receivers: - - name: email + - name: email # Receiver name referenced by route.receiver. email_configs: - - to: 'alert@example.com' - html: '{{ template "email.to.html" . }}' - headers: { Subject: "[OPENIM-SERVER]Alarm" } - send_resolved: true + - to: 'alert@example.com' # Recipient mailbox for alert notifications. + html: '{{ template "email.to.html" . }}' # Rendered with the template declared in email.tmpl. + headers: { Subject: "[OPENIM-SERVER]Alarm" } # Custom email subject line. + send_resolved: true # Also send a notification when the alert recovers. diff --git a/config/email.tmpl b/config/email.tmpl index 824144e9d..ab9642e85 100644 --- a/config/email.tmpl +++ b/config/email.tmpl @@ -1,3 +1,6 @@ +{{/* OpenIM Alertmanager email template. +This template renders both firing and resolved alerts. +Each alert entry reads labels and annotations from Prometheus rule definitions. */}} {{ define "email.to.html" }} {{ if eq .Status "firing" }} {{ range .Alerts }} diff --git a/config/instance-down-rules.yml b/config/instance-down-rules.yml index bcac7ba60..60b26e33f 100644 --- a/config/instance-down-rules.yml +++ b/config/instance-down-rules.yml @@ -1,30 +1,31 @@ +# Default Prometheus alert groups for OpenIM. groups: - - name: instance_down + - name: instance_down # Fires when a monitored target remains unreachable. rules: - alert: InstanceDown - expr: up == 0 - for: 1m + expr: up == 0 # The built-in "up" metric is 0 when the latest scrape fails. + for: 1m # Trigger only if the condition remains true for more than 1 minute. labels: - severity: critical + severity: critical # Used by Alertmanager for routing and notification priority. annotations: summary: "Instance {{ $labels.instance }} down" - description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 1 minutes." + description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 1 minute." - - name: database_insert_failure_alerts + - name: database_insert_failure_alerts # Detects failures when persisting messages to Redis or MongoDB. rules: - alert: DatabaseInsertFailed - expr: (increase(msg_insert_redis_failed_total[5m]) > 0) or (increase(msg_insert_mongo_failed_total[5m]) > 0) - for: 1m + expr: (increase(msg_insert_redis_failed_total[5m]) > 0) or (increase(msg_insert_mongo_failed_total[5m]) > 0) # Any positive increase indicates write failures occurred in the last 5 minutes. + for: 1m # Avoid firing on very short spikes. labels: severity: critical annotations: summary: "Increase in MsgInsertRedisFailedCounter or MsgInsertMongoFailedCounter detected" - description: "Either MsgInsertRedisFailedCounter or MsgInsertMongoFailedCounter has increased in the last 5 minutes, indicating failures in message insert operations to Redis or MongoDB,maybe the redis or mongodb is crash." + description: "Either MsgInsertRedisFailedCounter or MsgInsertMongoFailedCounter increased in the last 5 minutes, indicating message insert failures to Redis or MongoDB and a possible backend outage." - - name: registrations_few + - name: registrations_few # Operational early-warning rule for unusually low login/registration activity. rules: - alert: RegistrationsFew - expr: increase(user_login_total[1h]) == 0 + expr: increase(user_login_total[1h]) == 0 # No successful login/registration events observed in 1 hour. for: 1m labels: severity: info @@ -32,10 +33,10 @@ groups: summary: "Too few registrations within the time frame" description: "The number of registrations in the last hour is 0. There might be some issues." - - name: messages_few + - name: messages_few # Operational early-warning rule for unusually low messaging activity. rules: - alert: MessagesFew - expr: (increase(single_chat_msg_process_success_total[1h])+increase(group_chat_msg_process_success_total[1h])) == 0 + expr: (increase(single_chat_msg_process_success_total[1h])+increase(group_chat_msg_process_success_total[1h])) == 0 # No successful single or group messages observed in 1 hour. for: 1m labels: severity: info diff --git a/config/openim-api.yml b/config/openim-api.yml index df0177d24..89be50123 100644 --- a/config/openim-api.yml +++ b/config/openim-api.yml @@ -8,7 +8,7 @@ api: prometheus: - # Whether to enable prometheus + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: true # autoSetPorts indicates whether to automatically set the ports autoSetPorts: true diff --git a/config/openim-msggateway.yml b/config/openim-msggateway.yml index 8ac07faae..7c2f17158 100644 --- a/config/openim-msggateway.yml +++ b/config/openim-msggateway.yml @@ -9,7 +9,7 @@ rpc: ports: prometheus: - # Enable or disable Prometheus monitoring + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: true # List of ports that Prometheus listens on; these must match the number of rpc.ports to ensure correct monitoring setup # It will only take effect when autoSetPorts is set to false. diff --git a/config/openim-msgtransfer.yml b/config/openim-msgtransfer.yml index c6ea06803..972a378b7 100644 --- a/config/openim-msgtransfer.yml +++ b/config/openim-msgtransfer.yml @@ -1,5 +1,5 @@ prometheus: - # Enable or disable Prometheus monitoring + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: true # autoSetPorts indicates whether to automatically set the ports autoSetPorts: true diff --git a/config/openim-push.yml b/config/openim-push.yml index 58784f13d..ab65a2eee 100644 --- a/config/openim-push.yml +++ b/config/openim-push.yml @@ -28,7 +28,7 @@ circuitBreaker: request: 500 # Request threshold; circuit breaker evaluation occurs when reached prometheus: - # Enable or disable Prometheus monitoring + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: false # List of ports that Prometheus listens on; these must match the number of rpc.ports to ensure correct monitoring setup # It will only take effect when autoSetPorts is set to false. diff --git a/config/openim-rpc-auth.yml b/config/openim-rpc-auth.yml index 09ceef0f4..e1c359120 100644 --- a/config/openim-rpc-auth.yml +++ b/config/openim-rpc-auth.yml @@ -11,7 +11,7 @@ rpc: ports: prometheus: - # Enable or disable Prometheus monitoring + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: true # List of ports that Prometheus listens on; these must match the number of rpc.ports to ensure correct monitoring setup # It will only take effect when autoSetPorts is set to false. diff --git a/config/openim-rpc-conversation.yml b/config/openim-rpc-conversation.yml index 1135ffe6e..f07710ba7 100644 --- a/config/openim-rpc-conversation.yml +++ b/config/openim-rpc-conversation.yml @@ -11,7 +11,7 @@ rpc: ports: prometheus: - # Enable or disable Prometheus monitoring + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: true # List of ports that Prometheus listens on; these must match the number of rpc.ports to ensure correct monitoring setup # It will only take effect when autoSetPorts is set to false. diff --git a/config/openim-rpc-friend.yml b/config/openim-rpc-friend.yml index 1135ffe6e..f07710ba7 100644 --- a/config/openim-rpc-friend.yml +++ b/config/openim-rpc-friend.yml @@ -11,7 +11,7 @@ rpc: ports: prometheus: - # Enable or disable Prometheus monitoring + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: true # List of ports that Prometheus listens on; these must match the number of rpc.ports to ensure correct monitoring setup # It will only take effect when autoSetPorts is set to false. diff --git a/config/openim-rpc-group.yml b/config/openim-rpc-group.yml index 154b149e1..20ac70af2 100644 --- a/config/openim-rpc-group.yml +++ b/config/openim-rpc-group.yml @@ -11,7 +11,7 @@ rpc: ports: prometheus: - # Enable or disable Prometheus monitoring + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: true # List of ports that Prometheus listens on; these must match the number of rpc.ports to ensure correct monitoring setup # It will only take effect when autoSetPorts is set to false. diff --git a/config/openim-rpc-msg.yml b/config/openim-rpc-msg.yml index e05eeb7e4..d3fadb941 100644 --- a/config/openim-rpc-msg.yml +++ b/config/openim-rpc-msg.yml @@ -11,7 +11,7 @@ rpc: ports: prometheus: - # Enable or disable Prometheus monitoring + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: true # List of ports that Prometheus listens on; these must match the number of rpc.ports to ensure correct monitoring setup # It will only take effect when autoSetPorts is set to false. diff --git a/config/openim-rpc-third.yml b/config/openim-rpc-third.yml index f6fbee695..29f05a027 100644 --- a/config/openim-rpc-third.yml +++ b/config/openim-rpc-third.yml @@ -11,7 +11,7 @@ rpc: ports: prometheus: - # Enable or disable Prometheus monitoring + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: true # List of ports that Prometheus listens on; these must match the number of rpc.ports to ensure correct monitoring setup # It will only take effect when autoSetPorts is set to false. diff --git a/config/openim-rpc-user.yml b/config/openim-rpc-user.yml index c46db7f37..9b16b85ec 100644 --- a/config/openim-rpc-user.yml +++ b/config/openim-rpc-user.yml @@ -11,7 +11,7 @@ rpc: ports: prometheus: - # Whether to enable prometheus + # Enable Prometheus metrics exposure for this service; set to true to allow scraping. enable: true # Prometheus listening ports, must be consistent with the number of rpc.ports # It will only take effect when autoSetPorts is set to false. diff --git a/config/prometheus.yml b/config/prometheus.yml index 0b13326d1..68a9e7c45 100644 --- a/config/prometheus.yml +++ b/config/prometheus.yml @@ -1,35 +1,34 @@ -# my global config +# Global Prometheus runtime settings. global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. - # scrape_timeout is set to the global default (10s). + # scrape_timeout defaults to 10s unless overridden in a specific scrape job. -# Alertmanager configuration +# Alertmanager endpoints that receive alert events from Prometheus. alerting: alertmanagers: - static_configs: - - targets: [127.0.0.1:19093] + - targets: [127.0.0.1:19093] # Alertmanager address in host:port format. -# Load rules once and periodically evaluate them according to the global evaluation_interval. +# Rule files loaded by Prometheus. rule_files: - - instance-down-rules.yml + - instance-down-rules.yml # Default OpenIM alert rules; add more files here if needed. # - first_rules.yml # - second_rules.yml -# A scrape configuration containing exactly one endpoint to scrape: -# Here it's Prometheus itself. +# Scrape jobs used to collect infrastructure and OpenIM service metrics. scrape_configs: - # The job name is added as a label "job=job_name" to any timeseries scraped from this config. - # Monitored information captured by prometheus - - # prometheus fetches application services + # The job_name value is attached as the "job" label in collected time series. - job_name: node_exporter static_configs: - - targets: [ 127.0.0.1:19100 ] + - targets: [ 127.0.0.1:19100 ] # node_exporter endpoint for host CPU, memory, disk, and network metrics. + + # OpenIM services are discovered dynamically from the admin API. + # For multi-host deployments, replace 127.0.0.1 with a reachable internal address. - job_name: openimserver-openim-api http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/api" + - url: "http://127.0.0.1:10002/prometheus_discovery/api" # Service discovery endpoint for OpenIM API instances. # static_configs: # - targets: [ 127.0.0.1:12002 ] # labels: @@ -37,7 +36,7 @@ scrape_configs: - job_name: openimserver-openim-msggateway http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/msg_gateway" + - url: "http://127.0.0.1:10002/prometheus_discovery/msg_gateway" # Service discovery endpoint for msggateway instances. # static_configs: # - targets: [ 127.0.0.1:12140 ] # # - targets: [ 127.0.0.1:12140, 127.0.0.1:12141, 127.0.0.1:12142, 127.0.0.1:12143, 127.0.0.1:12144, 127.0.0.1:12145, 127.0.0.1:12146, 127.0.0.1:12147, 127.0.0.1:12148, 127.0.0.1:12149, 127.0.0.1:12150, 127.0.0.1:12151, 127.0.0.1:12152, 127.0.0.1:12153, 127.0.0.1:12154, 127.0.0.1:12155 ] @@ -46,7 +45,7 @@ scrape_configs: - job_name: openimserver-openim-msgtransfer http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/msg_transfer" + - url: "http://127.0.0.1:10002/prometheus_discovery/msg_transfer" # Service discovery endpoint for msgtransfer instances. # static_configs: # - targets: [ 127.0.0.1:12020, 127.0.0.1:12021, 127.0.0.1:12022, 127.0.0.1:12023, 127.0.0.1:12024, 127.0.0.1:12025, 127.0.0.1:12026, 127.0.0.1:12027 ] # # - targets: [ 127.0.0.1:12020, 127.0.0.1:12021, 127.0.0.1:12022, 127.0.0.1:12023, 127.0.0.1:12024, 127.0.0.1:12025, 127.0.0.1:12026, 127.0.0.1:12027, 127.0.0.1:12028, 127.0.0.1:12029, 127.0.0.1:12030, 127.0.0.1:12031, 127.0.0.1:12032, 127.0.0.1:12033, 127.0.0.1:12034, 127.0.0.1:12035 ] @@ -55,7 +54,7 @@ scrape_configs: - job_name: openimserver-openim-push http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/push" + - url: "http://127.0.0.1:10002/prometheus_discovery/push" # Service discovery endpoint for push service instances. # static_configs: # - targets: [ 127.0.0.1:12170, 127.0.0.1:12171, 127.0.0.1:12172, 127.0.0.1:12173, 127.0.0.1:12174, 127.0.0.1:12175, 127.0.0.1:12176, 127.0.0.1:12177 ] ## - targets: [ 127.0.0.1:12170, 127.0.0.1:12171, 127.0.0.1:12172, 127.0.0.1:12173, 127.0.0.1:12174, 127.0.0.1:12175, 127.0.0.1:12176, 127.0.0.1:12177, 127.0.0.1:12178, 127.0.0.1:12179, 127.0.0.1:12180, 127.0.0.1:12182, 127.0.0.1:12183, 127.0.0.1:12184, 127.0.0.1:12185, 127.0.0.1:12186 ] @@ -64,7 +63,7 @@ scrape_configs: - job_name: openimserver-openim-rpc-auth http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/auth" + - url: "http://127.0.0.1:10002/prometheus_discovery/auth" # Service discovery endpoint for auth RPC instances. # static_configs: # - targets: [ 127.0.0.1:12200 ] # labels: @@ -72,7 +71,7 @@ scrape_configs: - job_name: openimserver-openim-rpc-conversation http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/conversation" + - url: "http://127.0.0.1:10002/prometheus_discovery/conversation" # Service discovery endpoint for conversation RPC instances. # static_configs: # - targets: [ 127.0.0.1:12220 ] # labels: @@ -80,7 +79,7 @@ scrape_configs: - job_name: openimserver-openim-rpc-friend http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/friend" + - url: "http://127.0.0.1:10002/prometheus_discovery/friend" # Service discovery endpoint for friend RPC instances. # static_configs: # - targets: [ 127.0.0.1:12240 ] # labels: @@ -88,7 +87,7 @@ scrape_configs: - job_name: openimserver-openim-rpc-group http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/group" + - url: "http://127.0.0.1:10002/prometheus_discovery/group" # Service discovery endpoint for group RPC instances. # static_configs: # - targets: [ 127.0.0.1:12260 ] # labels: @@ -96,7 +95,7 @@ scrape_configs: - job_name: openimserver-openim-rpc-msg http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/msg" + - url: "http://127.0.0.1:10002/prometheus_discovery/msg" # Service discovery endpoint for msg RPC instances. # static_configs: # - targets: [ 127.0.0.1:12280 ] # labels: @@ -104,7 +103,7 @@ scrape_configs: - job_name: openimserver-openim-rpc-third http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/third" + - url: "http://127.0.0.1:10002/prometheus_discovery/third" # Service discovery endpoint for third-party RPC instances. # static_configs: # - targets: [ 127.0.0.1:12300 ] # labels: @@ -112,8 +111,8 @@ scrape_configs: - job_name: openimserver-openim-rpc-user http_sd_configs: - - url: "http://127.0.0.1:10002/prometheus_discovery/user" + - url: "http://127.0.0.1:10002/prometheus_discovery/user" # Service discovery endpoint for user RPC instances. # static_configs: # - targets: [ 127.0.0.1:12320 ] # labels: -# namespace: default \ No newline at end of file +# namespace: default From 88da73f2b3bf9338517e2c3d6ea81d7e4a847f33 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2026 16:46:37 +0800 Subject: [PATCH 05/10] Update CHANGELOG for release v3.8.3-patch.7 (#3492) Co-authored-by: mo3et <34803812+mo3et@users.noreply.github.com> --- CHANGELOG/CHANGELOG-3.8.md | 70 ++++---------------------------------- 1 file changed, 6 insertions(+), 64 deletions(-) diff --git a/CHANGELOG/CHANGELOG-3.8.md b/CHANGELOG/CHANGELOG-3.8.md index 9ae41e6a3..bf4409efd 100644 --- a/CHANGELOG/CHANGELOG-3.8.md +++ b/CHANGELOG/CHANGELOG-3.8.md @@ -1,70 +1,12 @@ -## [v3.8.3-patch.6](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.6) (2025-07-23) - -### Bug Fixes -* fix: Add friend DB in notification sender [#3438](https://github.com/openimsdk/open-im-server/pull/3438) -* fix: remove update version file workflows have new line in 3.8.3-patch branch. [#3452](https://github.com/openimsdk/open-im-server/pull/3452) -* fix: s3 aws init [#3454](https://github.com/openimsdk/open-im-server/pull/3454) -* fix: use safe submodule init in workflows in v3.8.3-patch. [#3469](https://github.com/openimsdk/open-im-server/pull/3469) - -**Full Changelog**: [v3.8.3-patch.5...v3.8.3-patch.6](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.5...v3.8.3-patch.6) - -## [v3.8.3-patch.5](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.5) (2025-06-10) - -### New Features -* feat: optimize friend and group applications [#3396](https://github.com/openimsdk/open-im-server/pull/3396) - -### Bug Fixes -* fix: solve unocrrect invite notification [Created [#3219](https://github.com/openimsdk/open-im-server/pull/3219) - -### Builds -* build: update gomake version in dockerfile.[Patch branch] [#3416](https://github.com/openimsdk/open-im-server/pull/3416) - -**Full Changelog**: [v3.8.3...v3.8.3-patch.5](https://github.com/openimsdk/open-im-server/compare/v3.8.3...v3.8.3-patch.5) - -## [v3.8.3-patch.4](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.4) (2025-03-13) - -### Bug Fixes -* fix: solve unocrrect invite notificationfrom #3213 - -**Full Changelog**: [v3.8.3-patch.3...v3.8.3-patch.4](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.3...v3.8.3-patch.4) - -## [v3.8.3-patch.3](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.3) (2025-03-07) - -### New Features -* feat: optimizing BatchGetIncrementalGroupMember #3180 - -### Bug Fixes -* fix: solve uncorrect notification when set group info #3172 -* fix: the sorting is wrong after canceling the administrator in group settings #3185 -* fix: solve uncorrect GroupMember enter group notification type. #3188 - -### Refactors -* refactor: change sendNotification to sendMessage to avoid ambiguity regarding message sending behavior. #3173 - -**Full Changelog**: [v3.8.3-patch.2...v3.8.3-patch.3](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.2...v3.8.3-patch.3) - -## [v3.8.3-patch.2](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.2) (2025-02-28) - -### Bug Fixes -* fix: Offline push does not have a badge && Android offline push (#3146) [#3174](https://github.com/openimsdk/open-im-server/pull/3174) - -**Full Changelog**: [v3.8.3-patch.1...v3.8.3-patch.2](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.1...v3.8.3-patch.2) - -## [v3.8.3-patch.1](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.1) (2025-02-25) +## [v3.8.3-patch.7](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.7) (2025-07-29) ### New Features -* feat: add backup volume && optimize log print [Created [#3121](https://github.com/openimsdk/open-im-server/pull/3121) +* feat: add filtering for invalid messages and invalid conversations to… [#3483](https://github.com/openimsdk/open-im-server/pull/3483) ### Bug Fixes -* fix: seq conversion failed without exiting [Created [#3120](https://github.com/openimsdk/open-im-server/pull/3120) -* fix: check error in BatchSetTokenMapByUidPid [Created [#3123](https://github.com/openimsdk/open-im-server/pull/3123) -* fix: DeleteDoc crash [Created [#3124](https://github.com/openimsdk/open-im-server/pull/3124) -* fix: the abnormal message has no sending time, causing the SDK to be abnormal [Created [#3126](https://github.com/openimsdk/open-im-server/pull/3126) -* fix: crash caused [#3127](https://github.com/openimsdk/open-im-server/pull/3127) -* fix: the user sets the conversation timer cleanup timestamp unit incorrectly [Created [#3128](https://github.com/openimsdk/open-im-server/pull/3128) -* fix: seq conversion not reading env in docker environment [Created [#3131](https://github.com/openimsdk/open-im-server/pull/3131) +* fix: correctly aggregate read seqs [#3482](https://github.com/openimsdk/open-im-server/pull/3482) +* fix: import friends send notification in v3.8.3-patch [#3488](https://github.com/openimsdk/open-im-server/pull/3488) +* fix: solve redis config db field in v3.8.3-patch [#3490](https://github.com/openimsdk/open-im-server/pull/3490) -### Builds -* build: improve workflows contents. [Created [#3125](https://github.com/openimsdk/open-im-server/pull/3125) +**Full Changelog**: [v3.8.3-patch.6...v3.8.3-patch.7](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.6...v3.8.3-patch.7) -**Full Changelog**: [v3.8.3-e-v1.1.5...v3.8.3-patch.1-e-v1.1.5](https://github.com/openimsdk/open-im-server-enterprise/compare/v3.8.3-e-v1.1.5...v3.8.3-patch.1-e-v1.1.5) \ No newline at end of file From 42bf2c35b45d88fcf857bac97676770c5f1f8de7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2026 16:50:03 +0800 Subject: [PATCH 06/10] 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> --- CHANGELOG/CHANGELOG-3.8.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG/CHANGELOG-3.8.md b/CHANGELOG/CHANGELOG-3.8.md index bf4409efd..394f9562c 100644 --- a/CHANGELOG/CHANGELOG-3.8.md +++ b/CHANGELOG/CHANGELOG-3.8.md @@ -1,3 +1,11 @@ +## [v3.8.3-patch.8](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.8) (2025-08-13) + +### Bug Fixes +* fix: fix incorrect kicked logic and PCAndOther Login policy In v3.8.3-patch [#3511](https://github.com/openimsdk/open-im-server/pull/3511) +* fix: solve batch incorrect error in Find DocIDs in v3.8.3-patch branch. [#3515](https://github.com/openimsdk/open-im-server/pull/3515) + +**Full Changelog**: [v3.8.3-patch.7...v3.8.3-patch.8](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.7...v3.8.3-patch.8) + ## [v3.8.3-patch.7](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.7) (2025-07-29) ### New Features @@ -8,5 +16,4 @@ * fix: import friends send notification in v3.8.3-patch [#3488](https://github.com/openimsdk/open-im-server/pull/3488) * fix: solve redis config db field in v3.8.3-patch [#3490](https://github.com/openimsdk/open-im-server/pull/3490) -**Full Changelog**: [v3.8.3-patch.6...v3.8.3-patch.7](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.6...v3.8.3-patch.7) - +**Full Changelog**: [v3.8.3-patch.6...v3.8.3-patch.7](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.6...v3.8.3-patch.7) \ No newline at end of file From 5803ae8da011157db93c08ff3e824f3b4a07531d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2026 16:51:54 +0800 Subject: [PATCH 07/10] 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> --- CHANGELOG/CHANGELOG-3.8.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG/CHANGELOG-3.8.md b/CHANGELOG/CHANGELOG-3.8.md index 394f9562c..63d8bf303 100644 --- a/CHANGELOG/CHANGELOG-3.8.md +++ b/CHANGELOG/CHANGELOG-3.8.md @@ -1,3 +1,13 @@ +## [v3.8.3-patch.9](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.9) (2025-08-19) + +### New Features +* feat: enable redis aof-use-rdb-preamble && disable auto rdb [Created [#3535](https://github.com/openimsdk/open-im-server/pull/3535) + +### Bug Fixes +* fix: fill in the most recent sendTime for a gap message to prevent th… [#3523](https://github.com/openimsdk/open-im-server/pull/3523) + +**Full Changelog**: [v3.8.3-patch.8...v3.8.3-patch.9](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.8...v3.8.3-patch.9) + ## [v3.8.3-patch.8](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.8) (2025-08-13) ### Bug Fixes From 0ed1b4e0b7a0897be971c4066ce77f868d597add Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2026 16:53:47 +0800 Subject: [PATCH 08/10] 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> --- CHANGELOG/CHANGELOG-3.8.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG/CHANGELOG-3.8.md b/CHANGELOG/CHANGELOG-3.8.md index 63d8bf303..27b8c83a9 100644 --- a/CHANGELOG/CHANGELOG-3.8.md +++ b/CHANGELOG/CHANGELOG-3.8.md @@ -1,3 +1,11 @@ +## [v3.8.3-patch.12](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.12) (2025-10-24) + +### Bug Fixes +* fix: full id version [#3589](https://github.com/openimsdk/open-im-server/pull/3589) +* fix: incorrect redis fields. [#3602](https://github.com/openimsdk/open-im-server/pull/3602) + +**Full Changelog**: [v3.8.3-patch.11...v3.8.3-patch.12](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.11...v3.8.3-patch.12) + ## [v3.8.3-patch.9](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.9) (2025-08-19) ### New Features From de3c1ba6300568533420b29dac89e8e685c2aa65 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2026 17:10:26 +0800 Subject: [PATCH 09/10] 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> --- CHANGELOG/CHANGELOG-3.8.md | 250 ++++++++++++++++++++++++++++++++++++- 1 file changed, 249 insertions(+), 1 deletion(-) diff --git a/CHANGELOG/CHANGELOG-3.8.md b/CHANGELOG/CHANGELOG-3.8.md index 27b8c83a9..bdec996d9 100644 --- a/CHANGELOG/CHANGELOG-3.8.md +++ b/CHANGELOG/CHANGELOG-3.8.md @@ -1,3 +1,251 @@ +## [v3.8.3-patch.16](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.16) (2026-03-19) + +### New Features +* feat: provide the interface required [#2712](https://github.com/openimsdk/open-im-server/pull/2712) +* feat: add webhooks of online status and remove zookeeper configuration. [#2716](https://github.com/openimsdk/open-im-server/pull/2716) +* feat: Add More Multi Login Policy [#2770](https://github.com/openimsdk/open-im-server/pull/2770) +* feat: Push configuration can ignore case sensitivity [#2775](https://github.com/openimsdk/open-im-server/pull/2775) +* feat: support app update service [#2794](https://github.com/openimsdk/open-im-server/pull/2794) +* feat: implement merge milestone PR to target-branch. [#2796](https://github.com/openimsdk/open-im-server/pull/2796) +* feat: support app update service [#2811](https://github.com/openimsdk/open-im-server/pull/2811) +* feat: ApplicationVersion move chat [#2813](https://github.com/openimsdk/open-im-server/pull/2813) +* feat: Update login policy [#2822](https://github.com/openimsdk/open-im-server/pull/2822) +* feat: support stream message [#2824](https://github.com/openimsdk/open-im-server/pull/2824) +* feat: merge js sdk [#2856](https://github.com/openimsdk/open-im-server/pull/2856) +* feat: Print Panic Log [#2850](https://github.com/openimsdk/open-im-server/pull/2850) +* feat: seq user and conversation seq synchronization [#2924](https://github.com/openimsdk/open-im-server/pull/2924) +* feat: support aws [#2938](https://github.com/openimsdk/open-im-server/pull/2938) +* feat: Prometheus can auto set port [#2943](https://github.com/openimsdk/open-im-server/pull/2943) +* feat: Change upload logs systemType to AppFramework. [#2927](https://github.com/openimsdk/open-im-server/pull/2927) +* feat: support quote ContentType in SendMsg. [#2819](https://github.com/openimsdk/open-im-server/pull/2819) +* feat: Group Monitoring Components, Enable Host Mode && Deprecate reliabilityLevel and unreadCount in notification.yml [#2975](https://github.com/openimsdk/open-im-server/pull/2975) +* feat: Add node_exporter in docker-compose [#2979](https://github.com/openimsdk/open-im-server/pull/2979) +* feat: Optimize Scheduled Task [#2985](https://github.com/openimsdk/open-im-server/pull/2985) +* feat: Optimizing RPC call [#2993](https://github.com/openimsdk/open-im-server/pull/2993) +* feat: optimize error stack information [#2995](https://github.com/openimsdk/open-im-server/pull/2995) +* feat: config center [#2997](https://github.com/openimsdk/open-im-server/pull/2997) +* feat: support message cache [#3007](https://github.com/openimsdk/open-im-server/pull/3007) +* feat: optimize log output [#3026](https://github.com/openimsdk/open-im-server/pull/3026) +* feat: support GetLastMessage [#3029](https://github.com/openimsdk/open-im-server/pull/3029) +* feat: Add enable config center button && fix: grpc connection leakage [#3036](https://github.com/openimsdk/open-im-server/pull/3036) +* feat: change appNotificationAccount to appManagerAccount && fix: enable config center add env check && fix: error return [#3038](https://github.com/openimsdk/open-im-server/pull/3038) +* feat: SendBusinessNotification supported configuration parameters [#3048](https://github.com/openimsdk/open-im-server/pull/3048) +* feat: add backup volume && optimize log print [#3066](https://github.com/openimsdk/open-im-server/pull/3066) +* feat: optimize code and support running in single process mode [#3142](https://github.com/openimsdk/open-im-server/pull/3142) +* feat: Change after webhook filter && feat SendSimpleMsg [#3151](https://github.com/openimsdk/open-im-server/pull/3151) +* feat: the default notification.yml is not configured properly [#3168](https://github.com/openimsdk/open-im-server/pull/3168) +* feat: add a new message type: Markdown text [#3162](https://github.com/openimsdk/open-im-server/pull/3162) +* feat: add a field to specify whether to send a notification message w… [#3163](https://github.com/openimsdk/open-im-server/pull/3163) +* feat: optimizing BatchGetIncrementalGroupMember [#3180](https://github.com/openimsdk/open-im-server/pull/3180) +* feat: system account send msg doesn't need friend verify [#3187](https://github.com/openimsdk/open-im-server/pull/3187) +* feat: sending messages supports returning fields modified [#3192](https://github.com/openimsdk/open-im-server/pull/3192) +* feat: set configs api [#3183](https://github.com/openimsdk/open-im-server/pull/3183) +* feat: check if the secret in config/share.yml has been changed during registration [#3223](https://github.com/openimsdk/open-im-server/pull/3223) +* feat: Implement webhook in createConversation [#3228](https://github.com/openimsdk/open-im-server/pull/3228) +* feat: add a function for business info change to update related conve… [#3225](https://github.com/openimsdk/open-im-server/pull/3225) +* feat: add filtering for invalid messages and invalid conversations to… [#3239](https://github.com/openimsdk/open-im-server/pull/3239) +* feat: implement stress-test tools. [#3261](https://github.com/openimsdk/open-im-server/pull/3261) +* feat: support server-issued configuration, which can be set for individual users [#3271](https://github.com/openimsdk/open-im-server/pull/3271) +* feat: GetConversationsHasReadAndMaxSeq support pinned [#3281](https://github.com/openimsdk/open-im-server/pull/3281) +* feat: Implement stress test v2. [#3292](https://github.com/openimsdk/open-im-server/pull/3292) +* feat: GroupApplicationAgreeMemberEnterNotification splitting [#3297](https://github.com/openimsdk/open-im-server/pull/3297) +* feat: optimize server code [#3319](https://github.com/openimsdk/open-im-server/pull/3319) +* feat: add rpc interface permission check [#3366](https://github.com/openimsdk/open-im-server/pull/3366) +* feat: optimize friend and group applications [#3384](https://github.com/openimsdk/open-im-server/pull/3384) +* feat: support distributed lock in crontask. [#3401](https://github.com/openimsdk/open-im-server/pull/3401) +* feat: Implement etcd and kafka auth. [#3394](https://github.com/openimsdk/open-im-server/pull/3394) +* feat: support redis sentinel. [#3423](https://github.com/openimsdk/open-im-server/pull/3423) +* feat: add api logger [#3427](https://github.com/openimsdk/open-im-server/pull/3427) +* feat: add nickname for adminUser [#3435](https://github.com/openimsdk/open-im-server/pull/3435) +* feat: support mongo replicaset mode. [#3433](https://github.com/openimsdk/open-im-server/pull/3433) +* feat: enable redis aof-use-rdb-preamble && disable auto rdb [#3529](https://github.com/openimsdk/open-im-server/pull/3529) +* feat: implement auth local cache. [#3533](https://github.com/openimsdk/open-im-server/pull/3533) +* feat: add msgDBSave webhook when data save to DB. [#3578](https://github.com/openimsdk/open-im-server/pull/3578) +* feat: implement DeleteConversations interface. [#3549](https://github.com/openimsdk/open-im-server/pull/3549) +* feat: replace LongConn with ClientConn interface and simplify message handling [#3643](https://github.com/openimsdk/open-im-server/pull/3643) +* feat: add error code for handled friend requests and improve error handling in friend operations [#3670](https://github.com/openimsdk/open-im-server/pull/3670) +* feat: update protocol support botPlatform [#3696](https://github.com/openimsdk/open-im-server/pull/3696) +* feat: gomake upgrade [#3702](https://github.com/openimsdk/open-im-server/pull/3702) + +### Bug Fixes +* fix: the message I sent is not set to read seq in mongodb [#2718](https://github.com/openimsdk/open-im-server/pull/2718) +* fix: cannot modify group member avatars [#2719](https://github.com/openimsdk/open-im-server/pull/2719) +* fix: auth package import twice [#2724](https://github.com/openimsdk/open-im-server/pull/2724) +* fix: join the group chat directly, notification type error [#2772](https://github.com/openimsdk/open-im-server/pull/2772) +* fix: change update group member level logic [#2730](https://github.com/openimsdk/open-im-server/pull/2730) +* fix: joinSource check args error. [#2773](https://github.com/openimsdk/open-im-server/pull/2773) +* fix: Change group member roleLevel can`t send notification [#2777](https://github.com/openimsdk/open-im-server/pull/2777) +* fix: client sends message status error to server [#2779](https://github.com/openimsdk/open-im-server/pull/2779) +* fix: del UserB's conversation version cache when userA set conversati… [#2785](https://github.com/openimsdk/open-im-server/pull/2785) +* fix: improve setConversationAtInfo logic. [#2782](https://github.com/openimsdk/open-im-server/pull/2782) +* fix: improve transfer Owner logic when newOwner is mute. [#2790](https://github.com/openimsdk/open-im-server/pull/2790) +* fix: improve getUserInfo logic. [#2792](https://github.com/openimsdk/open-im-server/pull/2792) +* fix: improve time condition check mehtod. [#2804](https://github.com/openimsdk/open-im-server/pull/2804) +* fix: webhook before online push [#2805](https://github.com/openimsdk/open-im-server/pull/2805) +* fix: set own read seq in MongoDB when sender send a message. [#2808](https://github.com/openimsdk/open-im-server/pull/2808) +* fix: solve err Notification when setGroupInfo. [#2806](https://github.com/openimsdk/open-im-server/pull/2806) +* fix: improve condition check. [#2815](https://github.com/openimsdk/open-im-server/pull/2815) +* fix: Write back message to Redis [#2836](https://github.com/openimsdk/open-im-server/pull/2836) +* fix: get group return repeated result [#2842](https://github.com/openimsdk/open-im-server/pull/2842) +* fix: SetConversations can update new conversation [#2838](https://github.com/openimsdk/open-im-server/pull/2838) +* fix(push): push content with jpush [#2844](https://github.com/openimsdk/open-im-server/pull/2844) +* fix #2860 migrate jpns to jpush [#2861](https://github.com/openimsdk/open-im-server/pull/2861) +* fix: concurrent write to websocket connection [#2866](https://github.com/openimsdk/open-im-server/pull/2866) +* fix: Remove admin token in redis [#2871](https://github.com/openimsdk/open-im-server/pull/2871) +* Fix Push2User webhookBeforeOfflinePush [#2862](https://github.com/openimsdk/open-im-server/pull/2862) +* fix: move workflow to correct path [#2837](https://github.com/openimsdk/open-im-server/pull/2837) +* fix: del login Policy [#2825](https://github.com/openimsdk/open-im-server/pull/2825) +* fix: Wrong Redis Error Check [#2876](https://github.com/openimsdk/open-im-server/pull/2876) +* fix: minor log typo [#2881](https://github.com/openimsdk/open-im-server/pull/2881) +* fix: webhookAfterSingleMsgRead will be called correctly [#2884](https://github.com/openimsdk/open-im-server/pull/2884) +* fix: webhookBeforeSendSingleMsg will call before black and friend check [#2885](https://github.com/openimsdk/open-im-server/pull/2885) +* fix: Wrong Redis Error Check [#2891](https://github.com/openimsdk/open-im-server/pull/2891) +* fix: improve crontask delete outdated Data. [#2901](https://github.com/openimsdk/open-im-server/pull/2901) +* fix: go mod [#2906](https://github.com/openimsdk/open-im-server/pull/2906) +* fix: group member update face_url [#2910](https://github.com/openimsdk/open-im-server/pull/2910) +* fix: update set seq implement. [#2911](https://github.com/openimsdk/open-im-server/pull/2911) +* fix https://github.com/openimsdk/open-im-server/issues/2895 [#2896](https://github.com/openimsdk/open-im-server/pull/2896) +* fix: Can choose whether to set the port. [#2929](https://github.com/openimsdk/open-im-server/pull/2929) +* fix: Configure move service discovery into discovery [#2934](https://github.com/openimsdk/open-im-server/pull/2934) +* fix: compilation failed under Windows [#2940](https://github.com/openimsdk/open-im-server/pull/2940) +* fix: server can return isEnd to control fetch messages when sdk pull … [#2949](https://github.com/openimsdk/open-im-server/pull/2949) +* fix:Only print panic function frame && feat: log.ZPanic [#2947](https://github.com/openimsdk/open-im-server/pull/2947) +* fix: seq user and conversation seq synchronization [#2958](https://github.com/openimsdk/open-im-server/pull/2958) +* fix: fetch message return isEnd and endSeq panic. [#2959](https://github.com/openimsdk/open-im-server/pull/2959) +* fix: rpc panic recover [#2957](https://github.com/openimsdk/open-im-server/pull/2957) +* fix: modifying other fields while setting IsPrivateChat does not take effect [#2972](https://github.com/openimsdk/open-im-server/pull/2972) +* fix: when fetching a referenced message, it indicates that the original message has been deleted. [#2977](https://github.com/openimsdk/open-im-server/pull/2977) +* fix: when unable EnableHistoryForNewMembers, new group member can read last one message. [#3001](https://github.com/openimsdk/open-im-server/pull/3001) +* fix: redis save error when KickTokens [#3002](https://github.com/openimsdk/open-im-server/pull/3002) +* fix: The message @ information will be set only for members in the gr… [#3009](https://github.com/openimsdk/open-im-server/pull/3009) +* fix: restart permission check [#3011](https://github.com/openimsdk/open-im-server/pull/3011) +* fix: The system cannot be restarted the first time the configuration is set. [#3013](https://github.com/openimsdk/open-im-server/pull/3013) +* fix: jssdk not init [#3016](https://github.com/openimsdk/open-im-server/pull/3016) +* fix: online status error [#3022](https://github.com/openimsdk/open-im-server/pull/3022) +* fix: GetUsersOnline returns an error in the online list [#3040](https://github.com/openimsdk/open-im-server/pull/3040) +* fix: seq conversion failed without exiting [#3052](https://github.com/openimsdk/open-im-server/pull/3052) +* fix: check error in BatchSetTokenMapByUidPid [#3076](https://github.com/openimsdk/open-im-server/pull/3076) +* fix: DeleteDoc crash [#3078](https://github.com/openimsdk/open-im-server/pull/3078) +* fix: the abnormal message has no sending time, causing the SDK to be abnormal [#3087](https://github.com/openimsdk/open-im-server/pull/3087) +* fix: crash caused [#3100](https://github.com/openimsdk/open-im-server/pull/3100) +* fix: the user sets the conversation timer cleanup timestamp unit incorrectly [#3102](https://github.com/openimsdk/open-im-server/pull/3102) +* fix: solve workflows stop when merge failed [#3106](https://github.com/openimsdk/open-im-server/pull/3106) +* fix: seq conversion not reading env in docker environment [#3130](https://github.com/openimsdk/open-im-server/pull/3130) +* fix: the source message of the reference is withdrawn, and the referenced message is deleted [#3137](https://github.com/openimsdk/open-im-server/pull/3137) +* fix: Offline push does not have a badge && Android offline push [#3146](https://github.com/openimsdk/open-im-server/pull/3146) +* fix: PCAndOther multi login policy can`t get old clients correctly [#3158](https://github.com/openimsdk/open-im-server/pull/3158) +* fix: solve uncorrect notification when set group info [#3172](https://github.com/openimsdk/open-im-server/pull/3172) +* fix: the sorting is wrong after canceling the administrator in group settings [#3185](https://github.com/openimsdk/open-im-server/pull/3185) +* fix: solve uncorrect GroupMember enter group notification type. [#3188](https://github.com/openimsdk/open-im-server/pull/3188) +* fix: solve unocrrect invite notification [#3213](https://github.com/openimsdk/open-im-server/pull/3213) +* fix: AdminToken save to redis && limit 1 for each userID [#3224](https://github.com/openimsdk/open-im-server/pull/3224) +* fix: improve stress test tools parms. [#3265](https://github.com/openimsdk/open-im-server/pull/3265) +* fix: oss specifies content-type when uploading [#3267](https://github.com/openimsdk/open-im-server/pull/3267) +* fix: transferring the group owner to a muted member, incremental version error [#3284](https://github.com/openimsdk/open-im-server/pull/3284) +* fix: group status in GroupDismissedNotification [#3286](https://github.com/openimsdk/open-im-server/pull/3286) +* fix: data version SetVersion will add record [#3304](https://github.com/openimsdk/open-im-server/pull/3304) +* fix: delete token [#3313](https://github.com/openimsdk/open-im-server/pull/3313) +* fix: optimize grpc option and fix some interface permission checks [#3327](https://github.com/openimsdk/open-im-server/pull/3327) +* fix: standalone mode cannot be used [#3360](https://github.com/openimsdk/open-im-server/pull/3360) +* fix: solve user not found when notification invitedUserID is zero in … [#3375](https://github.com/openimsdk/open-im-server/pull/3375) +* fix: send simple msg [#3362](https://github.com/openimsdk/open-im-server/pull/3362) +* fix: solve updateUserInfoEx null pointer. [#3326](https://github.com/openimsdk/open-im-server/pull/3326) +* fix: add rpc interface permission check [#3377](https://github.com/openimsdk/open-im-server/pull/3377) +* fix: optimize friend and group applications [#3389](https://github.com/openimsdk/open-im-server/pull/3389) +* fix redis config db field [#3395](https://github.com/openimsdk/open-im-server/pull/3395) +* fix: prometheus discovery [#3408](https://github.com/openimsdk/open-im-server/pull/3408) +* fix: import friends send notification [#3420](https://github.com/openimsdk/open-im-server/pull/3420) +* fix: improve mileston PR workflows contents. [#3382](https://github.com/openimsdk/open-im-server/pull/3382) +* fix: solve webhook incorrect attentionID references. [#3411](https://github.com/openimsdk/open-im-server/pull/3411) +* fix: solve `createTime` not set in setConversation and Create Conversation. [#3447](https://github.com/openimsdk/open-im-server/pull/3447) +* fix: update log level in crontask dist look. [#3440](https://github.com/openimsdk/open-im-server/pull/3440) +* fix: use safe submodule init in workflows. [#3468](https://github.com/openimsdk/open-im-server/pull/3468) +* fix: fix incorrect kicked logic. [#3480](https://github.com/openimsdk/open-im-server/pull/3480) +* fix: added AtUserIDList to the @ message for API sending. [#3472](https://github.com/openimsdk/open-im-server/pull/3472) +* fix: solve batch incorrect error in Find DocIDs [#3476](https://github.com/openimsdk/open-im-server/pull/3476) +* fix: correctly aggregate read seqs [#3442](https://github.com/openimsdk/open-im-server/pull/3442) +* fix: performance issues with Kafka caused [#3485](https://github.com/openimsdk/open-im-server/pull/3485) +* fix: searchMessage method has potential NPE bug [Created [#3289](https://github.com/openimsdk/open-im-server/pull/3289) +* fix: admin token in standalone mode [#3499](https://github.com/openimsdk/open-im-server/pull/3499) +* fix: revert contentType in API msg [#3509](https://github.com/openimsdk/open-im-server/pull/3509) +* fix: optimize to lru local cache. [#3514](https://github.com/openimsdk/open-im-server/pull/3514) +* fix: fill in the most recent sendTime for a gap message to prevent th… [#3522](https://github.com/openimsdk/open-im-server/pull/3522) +* fix: solve incorrect batchGetIncrGroupMember when group dismissed. [#3526](https://github.com/openimsdk/open-im-server/pull/3526) +* fix: GetSortedConversationList nil pointer when chatlog not found. [#3531](https://github.com/openimsdk/open-im-server/pull/3531) +* fix: switch kafka & etcd image namespace to bitnamilegacy [#3555](https://github.com/openimsdk/open-im-server/pull/3555) +* fix: solve incorrect time.Unix and logger asyncwrite [#3584](https://github.com/openimsdk/open-im-server/pull/3584) +* fix: db manager [#3600](https://github.com/openimsdk/open-im-server/pull/3600) +* fix: update JSON field names to camelCase in conversation structs [#3609](https://github.com/openimsdk/open-im-server/pull/3609) +* Fix: Resolved the issue of incorrect generation of conversationID [#3581](https://github.com/openimsdk/open-im-server/pull/3581) +* fix: solve msg wsHandler panic. [#3595](https://github.com/openimsdk/open-im-server/pull/3595) +* fix: resolve deadlock in cache eviction and improve GetBatch implementation and full id version [#3591](https://github.com/openimsdk/open-im-server/pull/3591) +* fix: reset user conversation seq when rejoining group to resolve message recall issue [#3640](https://github.com/openimsdk/open-im-server/pull/3640) +* fix(group): move member count retrieval after member deletion for accurate updates [#3651](https://github.com/openimsdk/open-im-server/pull/3651) +* fix(group): set max_seq to 0 when join group [#3649](https://github.com/openimsdk/open-im-server/pull/3649) +* fix: Mongo Malloc upsert overwrites min_seq initialization [#3657](https://github.com/openimsdk/open-im-server/pull/3657) + +### Chores +* chore: remove unused content [#2786](https://github.com/openimsdk/open-im-server/pull/2786) +* chore: update admin front image version [#2893](https://github.com/openimsdk/open-im-server/pull/2893) + +### Refactors +* refactor: Refactor rpc call && auto gen rpc_call code [#2969](https://github.com/openimsdk/open-im-server/pull/2969) +* refactor: improve workflows logic. [#3072](https://github.com/openimsdk/open-im-server/pull/3072) +* refactor: change sendNotification to sendMessage to avoid ambiguity regarding message sending behavior. [#3173](https://github.com/openimsdk/open-im-server/pull/3173) +* refactor: improve setConversations method. [#3194](https://github.com/openimsdk/open-im-server/pull/3194) +* refactor: move stress-test tools location. [#3295](https://github.com/openimsdk/open-im-server/pull/3295) +* refactor: support modified config and args in mage. [#3466](https://github.com/openimsdk/open-im-server/pull/3466) + +### Builds +* build: improve workflows logic. [#2801](https://github.com/openimsdk/open-im-server/pull/2801) +* build: implement version file update when release. [#2826](https://github.com/openimsdk/open-im-server/pull/2826) +* build: update mongo and kafka start logic. [#2858](https://github.com/openimsdk/open-im-server/pull/2858) +* build: create changelog tool and workflows. [#2869](https://github.com/openimsdk/open-im-server/pull/2869) +* build(deps): bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1 [#2851](https://github.com/openimsdk/open-im-server/pull/2851) +* build: update Server version. [#2887](https://github.com/openimsdk/open-im-server/pull/2887) +* build: implement services image build and CI release. [#2920](https://github.com/openimsdk/open-im-server/pull/2920) +* build: update kubernetes deployment Run. [#2919](https://github.com/openimsdk/open-im-server/pull/2919) +* build: fix uncorrect path. [#3020](https://github.com/openimsdk/open-im-server/pull/3020) +* build: fix docker images build. [#3024](https://github.com/openimsdk/open-im-server/pull/3024) +* build: keep conflict is true. [#3103](https://github.com/openimsdk/open-im-server/pull/3103) +* build: comment out admin services. [#3537](https://github.com/openimsdk/open-im-server/pull/3537) +* build: improve publish docker image workflow. [#3552](https://github.com/openimsdk/open-im-server/pull/3552) +* build: add sdk version log in registerClient [#3574](https://github.com/openimsdk/open-im-server/pull/3574) + +### Others +* Revert: Change group member roleLevel can`t send notification [#2789](https://github.com/openimsdk/open-im-server/pull/2789) +* Introducing OpenIM Guru on Gurubase.io [#2788](https://github.com/openimsdk/open-im-server/pull/2788) +* revert: write msg to redis [#2883](https://github.com/openimsdk/open-im-server/pull/2883) +* Add a lead time for the token's issuance time. [#2914](https://github.com/openimsdk/open-im-server/pull/2914) +* docs: improve deployment docs in kubernetes. [#2973](https://github.com/openimsdk/open-im-server/pull/2973) +* update: env image version [#3055](https://github.com/openimsdk/open-im-server/pull/3055) +* License [#3293](https://github.com/openimsdk/open-im-server/pull/3293) +* docs: update slack link. [#3479](https://github.com/openimsdk/open-im-server/pull/3479) +* Update CHANGELOG for release v3.8.3-patch.1 [#3164](https://github.com/openimsdk/open-im-server/pull/3164) +* Update CHANGELOG for release v3.8.3-patch.2 [#3175](https://github.com/openimsdk/open-im-server/pull/3175) +* Update CHANGELOG for release v3.8.3-patch.3 [#3206](https://github.com/openimsdk/open-im-server/pull/3206) +* Update CHANGELOG for release v3.8.3-patch.4 [#3226](https://github.com/openimsdk/open-im-server/pull/3226) +* Update CHANGELOG for release v3.8.3-patch.5 [#3405](https://github.com/openimsdk/open-im-server/pull/3405) +* Update CHANGELOG for release v3.8.3-patch.6 [#3473](https://github.com/openimsdk/open-im-server/pull/3473) +* docs: update readme of config file. [#3356](https://github.com/openimsdk/open-im-server/pull/3356) +* ​Build: Implement rate limiting and circuit breaker for API and RPC services.​​ [#3572](https://github.com/openimsdk/open-im-server/pull/3572) +* merge: pre-release-v3.8.4 [#3623](https://github.com/openimsdk/open-im-server/pull/3623) +* Simplify iOS background push gating (#3611) [#3612](https://github.com/openimsdk/open-im-server/pull/3612) +* bugfix(conversation):removed unexpectedly called functions and itself… [#3668](https://github.com/openimsdk/open-im-server/pull/3668) +* @lkzz made their first contribution in https://github.com/openimsdk/open-im-server/pull/2724 [#2724](https://github.com/openimsdk/open-im-server/pull/2724) +* @alilestera made their first contribution in https://github.com/openimsdk/open-im-server/pull/2773 [#2773](https://github.com/openimsdk/open-im-server/pull/2773) +* @kursataktas made their first contribution in https://github.com/openimsdk/open-im-server/pull/2788 [#2788](https://github.com/openimsdk/open-im-server/pull/2788) +* @yoyo930021 made their first contribution in https://github.com/openimsdk/open-im-server/pull/2844 [#2844](https://github.com/openimsdk/open-im-server/pull/2844) +* @wikylyu made their first contribution in https://github.com/openimsdk/open-im-server/pull/2861 [#2861](https://github.com/openimsdk/open-im-server/pull/2861) +* @storyn26383 made their first contribution in https://github.com/openimsdk/open-im-server/pull/2862 [#2862](https://github.com/openimsdk/open-im-server/pull/2862) +* @morya made their first contribution in https://github.com/openimsdk/open-im-server/pull/2881 [#2881](https://github.com/openimsdk/open-im-server/pull/2881) +* @HonQii made their first contribution in https://github.com/openimsdk/open-im-server/pull/3395 [#3395](https://github.com/openimsdk/open-im-server/pull/3395) +* @github-actions[bot] made their first contribution in https://github.com/openimsdk/open-im-server/pull/3164 [#3164](https://github.com/openimsdk/open-im-server/pull/3164) +* @xuzhijvn made their first contribution in https://github.com/openimsdk/open-im-server/pull/3289 [#3289](https://github.com/openimsdk/open-im-server/pull/3289) +* @ozudev made their first contribution in https://github.com/openimsdk/open-im-server/pull/3612 [#3612](https://github.com/openimsdk/open-im-server/pull/3612) + +**Full Changelog**: [v3.8.3-patch.15...v3.8.3-patch.16](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.15...v3.8.3-patch.16) + ## [v3.8.3-patch.12](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.12) (2025-10-24) ### Bug Fixes @@ -34,4 +282,4 @@ * fix: import friends send notification in v3.8.3-patch [#3488](https://github.com/openimsdk/open-im-server/pull/3488) * fix: solve redis config db field in v3.8.3-patch [#3490](https://github.com/openimsdk/open-im-server/pull/3490) -**Full Changelog**: [v3.8.3-patch.6...v3.8.3-patch.7](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.6...v3.8.3-patch.7) \ No newline at end of file +**Full Changelog**: [v3.8.3-patch.6...v3.8.3-patch.7](https://github.com/openimsdk/open-im-server/compare/v3.8.3-patch.6...v3.8.3-patch.7) From 7aab6a8e167ddf516cd13ee045a6c51b9c290bfd Mon Sep 17 00:00:00 2001 From: WangZhonghui Date: Fri, 26 Jun 2026 17:46:48 +0800 Subject: [PATCH 10/10] fix: get online users (#3461) get online users fail --- pkg/common/cmd/api.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/common/cmd/api.go b/pkg/common/cmd/api.go index 1356f90d6..8ffce5177 100644 --- a/pkg/common/cmd/api.go +++ b/pkg/common/cmd/api.go @@ -92,7 +92,9 @@ func (a *ApiCmd) runE() error { &a.apiConfig.Notification, a.apiConfig, []string{}, - []string{}, + []string{ + a.apiConfig.Discovery.RpcService.MessageGateway, + }, api.Start, ) }