4.1.0 — July 2026
https://docs.couchbase.com/sync-gateway/4.1/product-notes/release-notes.html
What's Changed
- CBG-4853: Cut
release/4.0.0and movemainto 4.1 by @bbrks in #7784 - CBG-4862 force SendRev to check for errors by @torcolvin in #7762
- CI: Add manifest validation by @bbrks in #7787
- modify revs_limit API docs by @torcolvin in #7786
- Bump golang.org/x/net from 0.43.0 to 0.44.0 by @dependabot[bot] in #7756
- Cleanup jenkins scripts by @torcolvin in #7648
- Expand EditorConfig with IntelliJ directives and align with ruff/yamllint by @bbrks in #7790
- Reformat manifest XMLs according to EditorConfig by @bbrks in #7789
- Refresh LongRunningTest for faster
-shorttest suite runs by @bbrks in #7791 - CBG-3594: Check if CORS config is actually empty before adding CORS response headers by @bbrks in #7792
- CBG-2318: Rename public channel const by @bbrks in #7793
- CBG-4866: delta sync for legacy rev mutations over ISGR will not send deltas by @gregns1 in #7780
- CBG-4799: allow active replicator tests to run in both v4 and < v4 protocol by @gregns1 in #7795
- Bump github.com/quasilyte/go-ruleguard/dsl from 0.3.22 to 0.3.23 by @dependabot[bot] in #7796
- Bump github.com/go-jose/go-jose/v4 from 4.1.1 to 4.1.3 by @dependabot[bot] in #7797
- Bump github.com/couchbase/gocb/v2 from 2.10.1 to 2.11.1 by @dependabot[bot] in #7769
- Run gopls modernize auto fix by @torcolvin in #7794
- CBG-4745 allow windows to be slow by @torcolvin in #7800
- CBG-4842: bump testify to 1.11.1 by @RIT3shSapata in #7799
- CBG-4907: fix for panic in CheckProposedVersion for legacy revision case by @gregns1 in #7802
- CBG-4894: Consider local/remote tombstones in the default conflict resolver for ISGR by @gregns1 in #7798
- CBG-4910: Add service type for wait until ready options by @RIT3shSapata in #7807
- CBG-4912 fix the RTE algorithm by @torcolvin in #7808
- CBG-4914 use standard rosmar SourceID when not using go test by @torcolvin in #7811
- CBG-4899: fix flaky test TestChangesFeedExitDisconnect by @RIT3shSapata in #7805
- Update github.com/shirou/gopsutil to v4 by @Juneezee in #7785
- CBG-4902: Fix Flaky Test
TestBlipOneShotChangesSubscriptionby @RIT3shSapata in #7815 - Bump golang.org/x/net from 0.44.0 to 0.46.0 by @dependabot[bot] in #7818
- Bump github.com/coreos/go-oidc/v3 from 3.15.0 to 3.16.0 by @dependabot[bot] in #7821
- Make TestLogFormat actually asserts by @torcolvin in #7822
- CBG-4926 deflake topologytests by @torcolvin in #7824
- Bump golang.org/x/oauth2 from 0.30.0 to 0.32.0 by @dependabot[bot] in #7820
- Bump github.com/shirou/gopsutil/v4 from 4.25.8 to 4.25.9 by @dependabot[bot] in #7819
- auth test: refactor for better error by @torcolvin in #7814
- CBG-4677 restart db initialization if needed by @torcolvin in #7825
- CBG-4579: Add uint64 support to few metrics in sgw by @RIT3shSapata in #7828
- Remove RetryLoopCas since RetryLoop behaves identically by @torcolvin in #7823
- CBG-971: wait for checkpointer to fire by @gregns1 in #7830
- CBG-4942 obey db scope for CORS.LoginOrigin by @torcolvin in #7831
- CBG-4947 create 4.0.0.1 and 3.3.0.1 builds by @torcolvin in #7832
- Fix for manifest/product-config mismatch by @adamcfraser in #7836
- Revert "Remove RetryLoopCas since RetryLoop behaves identically (#7823)" by @torcolvin in #7837
- CBG-4921: TestUserXattrRevCache flake fix by @gregns1 in #7838
- Bump github.com/KimMachineGun/automemlimit from 0.7.2 to 0.7.5 by @dependabot[bot] in #7839
- Add hlv test cases for legacy rev history by @torcolvin in #7827
- CBG-4962 create cookie with SameSite=None if CORS enabled by @torcolvin in #7841
- CBG-4963 create 4.0.0.2/3.3.0.2 by @torcolvin in #7842
- CBG-4895: Allow tuning of dcp_read_buffer and kv_buffer server connstr parameters by @RIT3shSapata in #7829
- CBG-4967 don't set SameSite:None without Secure by @torcolvin in #7847
- CBG-4948 update the documentation for CORS by @torcolvin in #7833
- Setup 3.2.7/3.3.1/4.0.1.xml by @torcolvin in #7848
- CBG-4966 create a one time session id for blipsync by @torcolvin in #7845
- CBG-4930: Add Revtree to RevMessage's stringer function by @RIT3shSapata in #7840
- CBG-4924 ignore updating local rev if BlipTesterCollectionClient is closed by @torcolvin in #7862
- CBG-4968: Avoid logging at debug in pruning of cache by @gregns1 in #7863
- CBG-4470: Simplify PutExistingCurrentVersion by @RIT3shSapata in #7866
- CBG-4746: Deduplicate channel set outside processEntry by @gregns1 in #7861
- CBG-4955 fix test flakes in attachment migration tests by @torcolvin in #7867
- CBG-4892: Add eccv to cluster_info endpoint by @RIT3shSapata in #7846
- CBG-4993 support views in test harness with CBS 8.0 by @torcolvin in #7872
- Bump golang.org/x/oauth2 from 0.32.0 to 0.33.0 by @dependabot[bot] in #7871
- CBG-4345 don't panic if role documents can't be read by @torcolvin in #7816
- CBG-4923: Prevent Excessive conflict logging in PutCurrentVersion by @RIT3shSapata in #7865
- CBG-4980: support /db/_flush for internal testing by @torcolvin in #7864
- CBG-4988 log panics in http by @torcolvin in #7876
- CBG-3689: CheckProposedRev does not unmarshall the entire history by @RIT3shSapata in #7875
- CBG-4714: collect goroutine stack traces on signal by @gregns1 in #7870
- CBG-4989 don't panic if no _vv but _sync.rev.ver on import by @torcolvin in #7877
- Bump golang.org/x/crypto from 0.43.0 to 0.44.0 by @dependabot[bot] in #7882
- Bump github.com/coder/websocket from 1.8.12 to 1.8.14 by @dependabot[bot] in #7883
- Bump golang.org/x/net from 0.46.0 to 0.47.0 by @dependabot[bot] in #7884
- CBG-4747: remove serialisation from caching process by @gregns1 in #7885
- CBG-4981: fix panic in _config?include_runtime=true endpoint by @gregns1 in #7887
- Remove goutils logger by @torcolvin in #7886
- Update test comment description by @torcolvin in #7826
- CBG-4928: Update log messages on changes feed being cancelled by @RIT3shSapata in #7880
- CBG-4932 improve ResyncManger test flakes by @torcolvin in #7891
- CBG-5006: Split ServerContext mutexes by @bbrks in #7889
- CBG-5020: fix panic in eviction based on out of sync stats by @gregns1 in #7895
- CBG-5020 Avoid double-counting memory correction by @adamcfraser in #7900
- CBG-5022: move rev cache locks into defer where possible by @gregns1 in #7896
- CBG-5032 Add revcache value lock for synchronized delta generation by @bbrks in #7903
- CBG-4932 fix backward assertion in resync test by @torcolvin in #7908
- add 3.3.2 and 4.0.1 manifests by @torcolvin in #7910
- CBG-5017 Resync: allow legacy rev documents to be resynced by @torcolvin in #7890
- CBG-5013 move gocb dcp client to separate file by @torcolvin in #7917
- CBG-3399: Fix flaky test
TestUserXattrDeleteWithRevCacheby @RIT3shSapata in #7915 - Bump github.com/coreos/go-oidc/v3 from 3.16.0 to 3.17.0 by @dependabot[bot] in #7894
- Bump golang.org/x/crypto from 0.44.0 to 0.45.0 by @dependabot[bot] in #7893
- CBG-5040: pre allocate slices on processEntry/addPendingLogs by @gregns1 in #7920
- CBG-4673 Retry intermittent design doc operations by @torcolvin in #7922
- CBG-4905: update defualt resolver for blip tester by @gregns1 in #7907
- CBG-5025 allow integration tests to work with magma by @torcolvin in #7921
- CBG-5051 make sure to marshal sequence on norev by @torcolvin in #7925
- CBG-5050: fix for no rev messages being sent as changes on blip tester client by @gregns1 in #7924
- Add 3.3.2.1 manifest by @torcolvin in #7926
- Revert "CBG-4905: update defualt resolver for blip tester" by @gregns1 in #7928
- Bump golang.org/x/oauth2 from 0.33.0 to 0.34.0 by @dependabot[bot] in #7929
- CBG-4915: Fix flakiness of
TestMultiActorLosingConflictUpdateRemovingAttachmentsby @RIT3shSapata in #7923 - CBG-3690 don't re-read document for resync by @torcolvin in #7892
- Bump golang.org/x/net from 0.47.0 to 0.48.0 by @dependabot[bot] in #7930
- Remove unused gocov by @torcolvin in #7936
- CBG-4411: Improvements to Diagnostic Sync Function dry run endpoint by @RIT3shSapata in #7932
- CBG-4945: Fix default sync function dry run by @RIT3shSapata in #7937
- CBG-4413: Add logging capture to Sync Function diagnostic API by @bbrks in #7938
- CBG-1423: Enable GSI by default for integration tests by @RIT3shSapata in #7939
- CI: Add govulncheck / Bump main Go version by @bbrks in #7934
- CBG-4412: Add ability to pass custom import filter into diagnostic API by @RIT3shSapata in #7935
- CBG-5065 sgcollect: remove tmpdir by @torcolvin in #7941
- CBG-5045: Improve topologytest debug output by @torcolvin in #7888
- Add dry-run logging output to OpenAPI specs by @bbrks in #7942
- add 3.3.2.2 and 4.0.2.1 builds by @torcolvin in #7943
- CBG-5031: uptake blip panic fix by @gregns1 in #7946
- Create 3.3.3 builds (and bump Go version) by @bbrks in #7948
- Create 4.0.3 builds (and bump Go version) by @bbrks in #7947
- Diagnostic API: Update OpenAPI Specs by @bbrks in #7955
- Reenable assertion in TestRoleAccessQuery for old Query bugfix by @bbrks in #7953
- 3.2.7: Bump Go version by @bbrks in #7957
- CBD-6543 update python version for testing by @torcolvin in #7966
- Diagnostic API: Tweak OpenAPI spec wording for user impersonation by @bbrks in #7958
- CBG-5089: Add support for user defined metadata in diagnostic api by @RIT3shSapata in #7954
- CBG-5103: DocID for Diagnostic API to be passed in request body instead of query param by @RIT3shSapata in #7956
- CBG-5091: Replace websocket with fork for extended control frame timeouts by @bbrks in #7972
- CBD-6543 bump build repo SHA to pick up recent changes to pyinstaller by @torcolvin in #7977
- CBG-5101: Add support for User context in Diagnostic API by @RIT3shSapata in #7974
- Bump Go patch versions for future releases by @bbrks in #7991
- Correct diagnostic API routes leading underscore by @bbrks in #7988
- CBG-5110: assign Update call back to allChangedChannels by @gregns1 in #7992
- CBG-5099: Fix missing doc id in doc body by @RIT3shSapata in #7987
- CBG-5113: Add diagnostic server audit event by @RIT3shSapata in #7996
- CBG-5102: don't add backup rev loads to opposite lookup map that you have fetched by by @gregns1 in #7959
- CBG-5096: Stamp channel information into backup revision documents by @bbrks in #7997
- CBG-5122: Fix diagnostic audit event test by @RIT3shSapata in #8006
- CBG-5057 wrap changes error with document id and rev by @torcolvin in #8001
- CBG-5052 send noRev if history can't be parsed by @torcolvin in #7949
- CBG-5127: Restore warnings when the import filter function for a document fails by @bbrks in #8017
- Improve reliability of TestBlipDeltaComputationFromBackupRev by @bbrks in #8021
- CBG-5117: Support request-provided
oldDocvalues in Sync Function Dry-Run by @bbrks in #8019 - CBG-5130: fix panic when using bypass revision cache with delta sync by @gregns1 in #8029
- Unskip old now working TestGetUserDocAccessSpanDeletedRole by @bbrks in #8020
- CBG-5129: Enable exhaustive linter by @torcolvin in #8000
- CBG-5134: attachment fetch is in wrong place when loading from bucket by CV by @gregns1 in #8032
- CBG-5133: fix backup revs being marked as deleted when current rev is deleted by @gregns1 in #8033
- CBG-5056 close blip connection on panic by @torcolvin in #8023
- fix wrong error and incorrect paramter by @gregns1 in #8040
- CBG-5145: Support replacement revs for non-filtered replications by @bbrks in #8043
- CBG-5126: disable rev cache test env by @gregns1 in #8016
- CBG-5025 test-only: support running with views=true and CBS 8.0 by @torcolvin in #8042
- CBG-5141: Only fetch backup revision for fromRev for delta sync by @gregns1 in #8041
- add a test for metadatakeys by @torcolvin in #8051
- CBG-3605 fix test flake: wait for stat by @torcolvin in #8053
- Upgrade python test dependencies by @torcolvin in #7979
- CBG-5039 use wait for stat to avoid test flake by @torcolvin in #8052
- CBG-5109 Fix & vet log *fCtx function arguments by @torcolvin in #7963
- CBG-5143: Add EdDSA to set of supported algorithms for OIDC/JWTs by @bbrks in #8054
- Allow go test benchmark to compile/run by @torcolvin in #8035
- CBG-5156 check db state after checking permissions by @torcolvin in #8055
- CBG-5070: Fix _mou not being cleared when tombstoning document by @RIT3shSapata in #8044
- Update to go 1.25.7 by @torcolvin in #8060
- Bump golang.org/x/oauth2 from 0.34.0 to 0.35.0 by @dependabot[bot] in #8062
- add test for existing DCP checkpoint prefixes by @torcolvin in #8046
- Bump cryptography from 46.0.3 to 46.0.5 by @dependabot[bot] in #8063
- CBG-5168 don't panic when db is offline initializing indexes by @torcolvin in #8058
- Bump golang.org/x/net from 0.49.0 to 0.50.0 by @dependabot[bot] in #8065
- Bump github.com/shirou/gopsutil/v4 from 4.25.9 to 4.26.1 by @dependabot[bot] in #8049
- CBG-4542: do not add to rev cache on write unless configured to do so by @gregns1 in #8050
- Fix openapi lint gh action by @torcolvin in #8072
- Simplify sharded dcp API by @torcolvin in #8070
- Add initial AGENTS.md by @bbrks in #8071
- CBG-5181 jenkins: download go version from go.mod by @torcolvin in #8068
- Decouple BucketSpec from DatabaseContext by @torcolvin in #8075
- Remove unused groupID argument for DCP by @torcolvin in #8069
- Fix openapi example mistakes by @torcolvin in #8076
- Bump werkzeug from 3.1.5 to 3.1.6 by @dependabot[bot] in #8080
- CBG-4286 separate feed name from checkpoint prefix by @torcolvin in #8073
- CBG-5160 stub index creation for test purposes by @torcolvin in #8056
- CBG-4812: Use base.IsRevTreeID in BLIP when determining CV/RevTreeID values by @bbrks in #8081
- CBG-5149: Stamp more default values into DefaultDbConfig() for visibility in
include_runtimeby @bbrks in #8047 - CBG-5170 change listener: don't process docs without xattr by @torcolvin in #8064
- Test: Change default Couchbase Server URL to 127.0.0.1 from localhost by @bbrks in #8082
- Update golang.org/x/net to v0.51.0 by @bbrks in #8085
- CBG-4990 docs fix: admin api returns 403 if database not found by @torcolvin in #8086
- CBG-5192: add ability to identify if pushed encoded CV is derived from our local revID by @gregns1 in #8083
- CBG-5201: Simplify test assertions for sequence handling by @torcolvin in #8088
- Remove verbose logging from tests by @torcolvin in #8090
- CBG-5201 test-only: add missing WaitForPendingChanges by @torcolvin in #8089
- CBG-5112: add comment to explain why GetActive fetches by revID still by @gregns1 in #8091
- Switch location of setting log context for import by @torcolvin in #8095
- CBG-3214 update to cbgt 1.4.14 by @torcolvin in #8092
- Upgrade to go-1.25.8 by @torcolvin in #8100
- fix lint issue on structtag by @torcolvin in #8096
- Fix logging panic by @torcolvin in #8097
- rename pindex functions to not include import by @torcolvin in #8098
- Reduce duplication in DCP code by @torcolvin in #8074
- CBG-4651: change _online/_offline endpoints to work for both persistent and non persistent config by @gregns1 in #8093
- Test: Add a timeout in ...Delta...BypassRevCache...WhenInFlightRevChanged by @bbrks in #8102
- Bump golang.org/x/net from 0.51.0 to 0.52.0 by @dependabot[bot] in #8105
- CBG-5203: Silently handle PING BLIP messages for cbl-js by @bbrks in #8101
- Setup 4.0.4/3.3.4 builds by @torcolvin in #8106
- Add factory folder to gitignore by @torcolvin in #8114
- Create sharded dcp options struct by @torcolvin in #8112
- CBG-5192 add some log fixes for RTE errors by @torcolvin in #8129
- Bump github.com/elastic/gosigar from 0.14.3 to 0.14.4 by @dependabot[bot] in #8132
- CBG-5153: Implement resync using CBGT for a single node by @RIT3shSapata in #8057
- CBG-5038 allow metadata id to be nil while syncinfo exists by @torcolvin in #8059
- CBG-5231: Clean up GH Action unit testing CI outputs by @bbrks in #8103
- Pr template update by @RIT3shSapata in #8131
- CBG-5233: have single key type on revision cache by @gregns1 in #8133
- CBG-5257: remove GetCV function by @gregns1 in #8134
- CBG-5235: orchectration layer for revision and delta cache access by @gregns1 in #8135
- Skip distributed resync tests for CE by @torcolvin in #8140
- Bump pygments from 2.19.2 to 2.20.0 by @dependabot[bot] in #8142
- CBG-5234: create delta only cache by @gregns1 in #8143
- Bump cryptography from 46.0.5 to 46.0.6 by @dependabot[bot] in #8138
- CBG-5258: tidy revision cache tests by @gregns1 in #8136
- rename importHeartbeatlistener by @RIT3shSapata in #8137
- fix TestCBGTIndexCreationUnsafeLegacyName by @RIT3shSapata in #8150
- Bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 by @dependabot[bot] in #8146
- Bump github.com/shirou/gopsutil/v4 from 4.26.1 to 4.26.3 by @dependabot[bot] in #8147
- CBG-5263 workaround TestNewlyCreateSGWPermissions failure by @torcolvin in #8145
- CBG-4363: Xattr-only caching feed by @bbrks in #8120
- CBG-4771 use context.WithCancelCause by @torcolvin in #8153
- DOC-14086: Cleanup Prometheus metrics OpenAPI spec by @bbrks in #8155
- Bump Go version by @bbrks in #8156
- CBG-5205 test speed up: avoid sleep on db start by @torcolvin in #8094
- CBG-5263: fix TestNewlyCreateSGWPermissions by @gregns1 in #8154
- Bump cryptography from 46.0.6 to 46.0.7 by @dependabot[bot] in #8157
- Fix incorrect stat types by @bbrks in #8160
- Bump golang.org/x/net from 0.52.0 to 0.53.0 by @dependabot[bot] in #8165
- CBG-5280: setup mobile system collection for rosmar by @gregns1 in #8161
- CBG-5285: flake fix for TestActiveReplicatorPushAndPullConflict by @gregns1 in #8167
- Bump pytest from 9.0.2 to 9.0.3 by @dependabot[bot] in #8168
- CBG-5213 implement private API for rosmar bucket deletion by @torcolvin in #8158
- Fix flake: TestRequireResync by @torcolvin in #8170
- CBG-5222: implement MetadataStore type by @gregns1 in #8159
- CBG-5289: nil check on map niled by closure of server context by @gregns1 in #8169
- CBG-5239 update go version 1.26 by @torcolvin in #8171
- CBG-4249: Create an abstract DCPClient to be able to work with rosmar by @torcolvin in #7879
- AGENTS.md: Describe git branches by @bbrks in #8176
- CBG-5265: Generate Grafana dashboards from stats-definition-exporter by @bbrks in #8162
- CBG-5296 Wait for DCP client close by @torcolvin in #8175
- CBG-5190: Add node poller for shardedDCPFeedListener by @RIT3shSapata in #8141
- Avoid data race in counting goroutines in test by @torcolvin in #8180
- Remove dead code for rosmar by @torcolvin in #8181
- CBG-5243 use correlation id for resync logging by @torcolvin in #8172
- CBG-5259 wait for revision before adding a second document by @torcolvin in #8183
- CBG-4249 test skips for support rosmar DCP by @torcolvin in #8174
- CBG-4665: Only put an ActiveReplicator into an error state when the connect error is a fatal one by @bbrks in #8179
- CBG-5295: Distributed resync to work only on subset of collections by @RIT3shSapata in #8184
- CBG-5191: Add distributed test simulation for nodepoller by @RIT3shSapata in #8173
- CBG-5301 update rosmar bucket.Close fix by @torcolvin in #8186
- CBG-5211 drop assertions about number of warnings by @torcolvin in #8191
- CBG-5319: fix flaky test - TestCfgNodePoller_Poll by @RIT3shSapata in #8192
- CBG-5313: Add documentation for _cluster_info by @torcolvin in #8189
- CBG-5316: add database_error to all_dbs endpoint open api spec by @gregns1 in #8188
- CBG-5283: proposal to fix stale delta entry by @gregns1 in #8163
- CBG-5333: setup builds for 3.2.8/3.3.5/4.0.5 by @gregns1 in #8193
- CBG-5336: fix flaky TestSoftDeleteCasMismatch by @bbrks in #8194
- CBG-5252: Add journalctl command to collect kernel messages by @RIT3shSapata in #8198
- CBG-4985: Support LeakyBucket for CBS in RestTester by @torcolvin in #8177
- Update version of github actions by @torcolvin in #8200
- topologytest: use waitForConvergingTombstones in multi-actor delete/resurrect by @bbrks in #8201
- CBG-5335: fix flaky TestAttachmentMigrationMultiNode under Rosmar by @bbrks in #8197
- Update to version that uses node24 by @torcolvin in #8202
- CBG-5261 lock on StartOnlineProcesses by @torcolvin in #8203
- CBG-5337 remove pointless lock for DatabaseContext.Authenticator by @torcolvin in #8204
- CBG-4985 test-only: fix TestResyncWithoutIndexes by @torcolvin in #8199
- CBG-5322 flaky test wait for stats by @torcolvin in #8211
- CBG-5321: TestDeltaGenerationWithBypassRevCache test flake by @gregns1 in #8212
- CBG-5262 fix missing changes with active_only=true and limit= by @torcolvin in #8144
- CBG-5232: cache memory managment by @gregns1 in #8151
- CBG-5302: error for starting replication with non existant run_as by @gregns1 in #8205
- Add debug logging for test by @torcolvin in #8214
- docs/api: add user-data examples and clarify Document schema by @bbrks in #8213
- Bump gocbcore to uptake GOCBC-1815 snappy logging improvement by @bbrks in #8216
- CBG-5351: TestReplicationStatusActions: avoid flake and crash by @torcolvin in #8217
- undo temp assertion error for bad gocb version by @bbrks in #8219
- Bump github.com/shirou/gopsutil/v4 from 4.26.3 to 4.26.4 by @dependabot[bot] in #8221
- CBG-5325: Add REST API spec for Document channel history compaction by @RIT3shSapata in #8209
- CBG-5329: Add REST API spec for user channel history pruning by @RIT3shSapata in #8210
- CBG-5358: fix test flake TestCfgNodePoller_StartPolling by @RIT3shSapata in #8222
- CBG-5354 fix flake in TestDeltaReplicationWithBypassRevCacheAndInflightRevChanged by @torcolvin in #8220
- CBG-5216: ClusterCompatVersion phase 1 by @bbrks in #8190
- CBG-5224: cross collection query joins by @gregns1 in #8185
- CBG-5353: No-op stub for
bootstrap.use_system_metadata_collectionconfig by @bbrks in #8223 - CBG-5180 add a multi node mode to BackgroundManager by @torcolvin in #8215
- CBG-5360 add context to FatalPanicHandler by @torcolvin in #8224
- CBG-5223: Include both MetadataStore datastores in caching feed by @bbrks in #8226
- Allow longer timeout while waiting fora bucket to get ready by @torcolvin in #8234
- CBG-5219: Prune stale nodes using heartbeat timestamps from registry by @bbrks in #8232
- Update sg-bucket/rosmar fixes by @torcolvin in #8243
- CBG-5370: update go version 1.26.3 by @RIT3shSapata in #8244
- CBG-5355: fix panic for on demand get when ErrImportCancelled is returned from import by @gregns1 in #8225
- CBG-4496 add regression test for SetRaw/AddRaw for rosmar by @torcolvin in #8239
- CBG-5175: resync - purge checkpoints if needed by @torcolvin in #8233
- CBG-4920 Fix test flake: TestActiveReplicatorHLVConflictCustom by @torcolvin in #8247
- CBG-5291: CAS-safe Update on dual MetadataStore wrapper by @bbrks in #8238
- Fix TestImportPartitionsServerless in CE mode by @torcolvin in #8250
- CBG-5260: remove panic call in rev cache Put by @gregns1 in #8237
- CBG-5290: Wire up ctx into sg-bucket apis by @bbrks in #8240
- CBG-5365: escape . characters for channel removal macro expansion by @gregns1 in #8241
- CI: upload rendered test logs as artifacts on failure by @bbrks in #8246
- CBG-5266: Prevent downgrades across cluster compatibility versions by @bbrks in #8235
- Fix issues from go vet: by @torcolvin in #8251
- CBG-5365-followup: fix escaping issue by @gregns1 in #8256
- Bump golang.org/x modules by @bbrks in #8255
- CBG-5298: Cleanup for GetUser by @bbrks in #8259
- CBG-5376 skip test temporarily by @torcolvin in #8265
- Improve agent instructions by @bbrks in #8260
- Move a db scoped function from DatabaseCollection by @torcolvin in #8248
- CBG-5249: collect value of GOMEMLIMIT in sgcollect by @gregns1 in #8269
- CBG-5381: fix resync regenerate sequences set sync info no-op by @gregns1 in #8267
- CBG-5386: Grafana generator: Stamp
"version": 1by @bbrks in #8274 - CBG-5330: Add function to compact user channel history by @RIT3shSapata in #8245
- CBG-5182: Add Database state management with polling by @RIT3shSapata in #8187
- CBG-5392: setup builds for 3.3.6/4.0.6 by @RIT3shSapata in #8278
- CBG-5367: add metadata store to dcp client for both CBS and rosmar by @gregns1 in #8279
- CBG-5225: sg-bucket KV range scan implementations by @bbrks in #8084
- Bump idna from 3.11 to 3.15 by @dependabot[bot] in #8282
- Skip flaky TestServerlessFetchConfigsLimited ahead of removal by @bbrks in #8281
- CBG-5371: create num partitions config option for resync by @gregns1 in #8280
- CBG-5398: Track heartbeat listener goroutine in sgReplicateManager.closeWg by @bbrks in #8283
- Add RequireWaitForStat for delta sync tests by @torcolvin in #8264
- CBG-4649 remove TestServerlessConnectionLimitingOneShotFeed by @torcolvin in #8285
- RedactableError support for errors.Is/As/AsType by @torcolvin in #8182
- Improve/fix status assertions for BackgroundManager tests by @torcolvin in #8286
- CBG-5229: Fully acknowledged db config updates by @gregns1 in #8287
- Parametrize running distributed resync tests by @torcolvin in #8288
- CBG-5220: Freezable cluster compat version by @bbrks in #8236
- CBG-5177 allow stats to be collated for distributed background manager by @torcolvin in #8242
- bump golang x net and crypto by @gregns1 in #8292
- CBG-5212: Fix requests dropping context information for NonCancellableContext type by @RIT3shSapata in #8284
- Create closer functions for DCP clients by @torcolvin in #8293
- CBG-5366: set sync info to binary document when cluster compat v4.1+ by @gregns1 in #8291
- Rosmar Bootstrap
TouchMetadataDocumentCAS fix by @bbrks in #8289 - CBG-5378: Track older SG nodes for ClusterCompatVersion via cbgt-based side-channels by @bbrks in #8297
- CBG-5326: Function to handle document channel history compaction by @RIT3shSapata in #8218
- Bump to latest released gocb versions by @bbrks in #8298
- CI Fix: shellcheck by @bbrks in #8301
- CBG-5227: background metadata migration task by @gregns1 in #8299
- CBG-5411: Uptake Rosmar Incr fix by @bbrks in #8300
- CBG-5379 add resync stats for targeted/error by @torcolvin in #8294
- CBG-5375 fix FlushChannelCache test data races by @torcolvin in #8290
- Add --hide-summary=skipped to remove github noise by @torcolvin in #8303
- fix flake for TestMetadataMigrationStartsAfterAllNodesApplyConfig by @gregns1 in #8304
- Parametrize resync tests by @torcolvin in #8306
- CBG-5412 do not mark error in async init manager if stopping by @torcolvin in #8305
- CBG-5372 Move single node resync code into its own functions by @torcolvin in #8310
- CBG-5226: Opt-in use of
_system._mobilefor databases and bootstrap by @bbrks in #8309 - CBG-5176: add resync targeted and resync errors to prometheus stats by @gregns1 in #8313
- CBG-5228: implement background metadata migration task by @bbrks in #8311
- CBG-5184 use cbgt one shot mode for distributed resync by @torcolvin in #8266
- CBG-5357: removal of fast fail retry by default by @gregns1 in #8308
- CBG-5356 don't respond with Set-Cookie for one_time session by @torcolvin in #8315
- CBG-5331: Wire up User Channel History compaction to REST API by @RIT3shSapata in #8277
- CBG-5327: Wire up REST API to document channel history compaction by @RIT3shSapata in #8275
- CBG-5332: Add audit events for user access history compaction by @RIT3shSapata in #8312
- CBG-5328: Add audit events for document channel history compaction by @RIT3shSapata in #8276
- CBG-5345: Remove major and minor versions from checkpoint names by @RIT3shSapata in #8317
- CBG-5183 resync: integrate background manager and database state by @torcolvin in #8314
- Bump github.com/shirou/gopsutil/v4 from 4.26.4 to 4.26.5 by @dependabot[bot] in #8322
- Bump github.com/grafana/grafana-foundation-sdk/go from 0.0.12 to 0.0.13 by @dependabot[bot] in #8323
- CBG-5427: flake in TestSyncInfoUpgradeGate by @gregns1 in #8324
- CBG-5354 fix flake: TestDeltaReplicationWithBypassRevCacheAndInflightRevChanged by @torcolvin in #8302
- Support vBucket completed distributed by @torcolvin in #8321
- CBG-5183 Fix TestAttachmentCompactionRunTwice by @torcolvin in #8329
- CBG-5431: Update go version 1.26.4 by @RIT3shSapata in #8336
- CBG-5106: Incorrect history being sent for legacy revision cases in delta sync by @gregns1 in #8307
- CBG-5428: flaky test fixes relating to metadata migration by @gregns1 in #8325
- CBG-5433 make sure multi node background managers can restart by @torcolvin in #8337
- Don't error in views if no docs found by @torcolvin in #8339
- CBG-5426 drop duplicate lasterror field with separate locks by @torcolvin in #8338
- CBG-5434: Avoid calling ResyncManager.Resume for non distributed resync by @torcolvin in #8333
- Allow resync background manager Resume to round trip options by @torcolvin in #8331
- CBG-5359: Remove fatal panic handler calls from buildRevokedFeed and changesFeed by @RIT3shSapata in #8316
- Enable distributed resync if EE by @torcolvin in #8340
- Skip flaky tests for distributed resync until investigation by @torcolvin in #8341
- CBG-5413: supportability enhancements around metadata migration by @gregns1 in #8320
- CBG-5430: add system collection to purgeWithDCPFeed by @gregns1 in #8335
- CBG-5451: bootstrap xattr config migration fix by @gregns1 in #8347
- CBG-5442: sync function documents are not handled by migration process by @gregns1 in #8348
- CBG-5418 drop previous resync stats on restart by @torcolvin in #8344
- CBG-5424: check migration status before determining whether to set migration as complete by @gregns1 in #8343
- CBG-5418 Improve resync processed and changed stats when running across multiple nodes by @adamcfraser in #8350
- Bump github.com/grafana/grafana-foundation-sdk/go from 0.0.13 to 0.0.16 by @dependabot[bot] in #8346
- CBG-5438: make AttachmentMigrationManager.CollectionIDs race proof by @torcolvin in #8342
- mistake made using non existent bucket and was meant to use non exisent metadataID by @gregns1 in #8356
- CBG-5430 allow SG_TEST_USE_GSI=false by @torcolvin in #8354
- CBG-5432: metadata migration steals co-located sibling DB metadata when the default metadataID DB migrates by @gregns1 in #8352
- CBG-5397: On-demand import should consider mou when updating HLV by @RIT3shSapata in #8349
- CBG-5436: generate HLV.version from our own HLC for SGW actor writes by @gregns1 in #8355
- CBG-5444 Close terminator instead of stopProcess when polling detects StatusNotRunning by @adamcfraser in #8353
- CBG-5457 Use 64 partitions for resync by default by @adamcfraser in #8357
- CBG-5464 Test fix to TestResyncDCPInit by @adamcfraser in #8360
- Bump golang.org/x/sync from 0.20.0 to 0.21.0 by @dependabot[bot] in #8361
- Bump golang.org/x/net from 0.55.0 to 0.56.0 by @dependabot[bot] in #8362
- CBG-5457 fix test text assertion by @torcolvin in #8367
- CBG-5732 Principal invalidation and regen sequences for sharded resync by @adamcfraser in #8358
- CBG-5461: Support dropping _default._default after metadata migration, and make bootstrap migration-completion per-bucket by @gregns1 in #8365
- CBG-5441: fix resync tests for distributed resync by @torcolvin in #8368
- CBG-5467 when resuming via action=start preserve stats by @torcolvin in #8370
- [4.1.0 Backport] CBG-5339: do not send starting sequence greater than end sequence by @bbrks in #8378
- [4.1.0 Backport] CBG-5484: Support resync invalidate principals on both metadata collections by @bbrks in #8383
Full Changelog: 4.0.0...4.1.0