RustFS 1.0.1-preview.9 (preview)
- feat(nightly): publish packages as assets of the rolling 'nightly' release (sync from release) by @majinghe in https://github.com/rustfs/rustfs/pull/7593
- fix(ecstore): stop pruning at nonempty directories by @marshawcoco in https://github.com/rustfs/rustfs/pull/7616
- fix(replication): close the pre-stable convergence gaps from backlog#2367 by @reatang in https://github.com/rustfs/rustfs/pull/7626
- feat(console): support a configurable console URL prefix by @overtrue in https://github.com/rustfs/rustfs/pull/7634
- chore(release): merge release into main for rc.6 by @overtrue in https://github.com/rustfs/rustfs/pull/7638
- feat: configure the console base path at build time by @cxymds in https://github.com/rustfs/rustfs/pull/7636
- chore(release): prepare 1.0.0-rc.6 by @overtrue in https://github.com/rustfs/rustfs/pull/7641
- fix(heal): preserve retryable batch failures during recovery by @overtrue in https://github.com/rustfs/rustfs/pull/7642
- fix(s3): reject oversize single PUT early and map body errors to 4xx by @reatang in https://github.com/rustfs/rustfs/pull/7635
- fix(ecstore): make directory mtime fixture portable by @marshawcoco in https://github.com/rustfs/rustfs/pull/7623
- fix(storage): prevent readiness after native migration failures by @rjregenold in https://github.com/rustfs/rustfs/pull/7652
- fix(admin): expose OIDC account display fields by @GatewayJ in https://github.com/rustfs/rustfs/pull/7654
- fix(replication): correct peer joins and remote-state reporting by @jkossis in https://github.com/rustfs/rustfs/pull/7650
- feat(ci): add fault-tolerance degradation suite to the functional chain by @majinghe in https://github.com/rustfs/rustfs/pull/7663
- fix(ci): repair functional defaults and chain regression checks by @overtrue in https://github.com/rustfs/rustfs/pull/7664
- "feat(ci): add fault-tolerance degradation suite to the functional chain" by @majinghe in https://github.com/rustfs/rustfs/pull/7667
- fix(ci): align security workflow tests with chain by @cxymds in https://github.com/rustfs/rustfs/pull/7679
- test(kms): cover non-default Vault Transit paths by @hkwi in https://github.com/rustfs/rustfs/pull/7657
- fix(s3): bound stalled UploadPart request bodies by @cxymds in https://github.com/rustfs/rustfs/pull/7659
- fix: enforce S3 permissions for recursive force deletion by @cxymds in https://github.com/rustfs/rustfs/pull/7661
- fix(tables): reject reserved warehouse locations by @GatewayJ in https://github.com/rustfs/rustfs/pull/7671
- fix(e2e): require a verified server binary for every e2e run by @overtrue in https://github.com/rustfs/rustfs/pull/7687
- fix(ci): bind nightly lanes to one resolved source by @overtrue in https://github.com/rustfs/rustfs/pull/7688
- feat(ci): measure queue and execution time by run attempt by @overtrue in https://github.com/rustfs/rustfs/pull/7689
- fix(ci): verify complete functional chain evidence by @overtrue in https://github.com/rustfs/rustfs/pull/7690
- fix(kms): classify KMS/SSE error contracts and SSE-S3 headers by @reatang in https://github.com/rustfs/rustfs/pull/7697
- Collect bounded Connect environment inventory by @overtrue in https://github.com/rustfs/rustfs/pull/7710
- Add Connect service license commands by @overtrue in https://github.com/rustfs/rustfs/pull/7711
- Add consent-bound diagnostic scheduling by @overtrue in https://github.com/rustfs/rustfs/pull/7713
- feat(connect): advertise environment diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7714
- feat(connect): add consent-bound profile exports by @overtrue in https://github.com/rustfs/rustfs/pull/7716
- feat(connect): add bounded local log capture by @overtrue in https://github.com/rustfs/rustfs/pull/7718
- feat(connect): add bounded network performance producer by @overtrue in https://github.com/rustfs/rustfs/pull/7719
- Add bounded local telemetry export commands by @overtrue in https://github.com/rustfs/rustfs/pull/7720
- Add bounded drive performance command by @overtrue in https://github.com/rustfs/rustfs/pull/7721
- Add bounded top diagnostic captures by @overtrue in https://github.com/rustfs/rustfs/pull/7722
- Add client-to-deployment performance diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7726
- Add a local environment inventory command by @overtrue in https://github.com/rustfs/rustfs/pull/7728
- feat(connect): add bounded object performance diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7734
- Add authenticated inter-node network performance probes by @overtrue in https://github.com/rustfs/rustfs/pull/7739
- fix(site-replication): keep an operator's bucket-level target to a peer instead of taking it over by @reatang in https://github.com/rustfs/rustfs/pull/7709
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/7733
- feat(connect): support explicit enterprise proxies by @overtrue in https://github.com/rustfs/rustfs/pull/7745
- feat(connect): emit drive unavailable log events by @overtrue in https://github.com/rustfs/rustfs/pull/7747
- feat(connect): add local inspect export producer by @overtrue in https://github.com/rustfs/rustfs/pull/7750
- test(connect): cover nested allocator profile stats by @overtrue in https://github.com/rustfs/rustfs/pull/7717
- docs(security): add presigned copy advisory lesson by @overtrue in https://github.com/rustfs/rustfs/pull/7754
- fix(ecstore): refuse RMW and reads of unreadable bucket configs by @overtrue in https://github.com/rustfs/rustfs/pull/7759
- refactor(filemeta): own persisted metadata key authority by @overtrue in https://github.com/rustfs/rustfs/pull/7760
- Sync network performance protocol fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7761
- Sync site replication result fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7762
- Sync telemetry producer fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7763
- refactor(rio): own trailer source and drop s3s dependency by @overtrue in https://github.com/rustfs/rustfs/pull/7764
- Deliver diagnostic scheduler receipts to Connect by @overtrue in https://github.com/rustfs/rustfs/pull/7767
- fix(ecstore): refuse writes on unreadable bucket configs with 503 by @overtrue in https://github.com/rustfs/rustfs/pull/7768
- feat(connect): add site replication performance producer by @overtrue in https://github.com/rustfs/rustfs/pull/7769
- refactor(ecstore): read persisted object-metadata keys from the filemeta authority (A3b) by @overtrue in https://github.com/rustfs/rustfs/pull/7770
- feat(connect): add device license renewal client by @overtrue in https://github.com/rustfs/rustfs/pull/7771
- feat(connect): add approved artifact relay by @overtrue in https://github.com/rustfs/rustfs/pull/7772
- fix(connect): export relay CLI types by @overtrue in https://github.com/rustfs/rustfs/pull/7773
- feat(connect): add device report upload client by @overtrue in https://github.com/rustfs/rustfs/pull/7774
- feat(connect): add typed telemetry trace source by @overtrue in https://github.com/rustfs/rustfs/pull/7775
- fix(connect): avoid shadowing replication URL helper by @overtrue in https://github.com/rustfs/rustfs/pull/7777
- fix(connect): restore site replication test nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7778
- fix(connect): restore rustfs build after site replication perf producer by @overtrue in https://github.com/rustfs/rustfs/pull/7779
- fix(rustfs): restore test compilation by @overtrue in https://github.com/rustfs/rustfs/pull/7780
- feat(connect): sign site replication target pair by @overtrue in https://github.com/rustfs/rustfs/pull/7781
- refactor(filemeta): own RestoreStatus and drop the s3s dependency (A3c) by @overtrue in https://github.com/rustfs/rustfs/pull/7782
- feat(connect): add service license relay import by @overtrue in https://github.com/rustfs/rustfs/pull/7784
- feat(admin): add a gateway key inventory for the S3 stack switch by @overtrue in https://github.com/rustfs/rustfs/pull/7785
- feat(server): add RUSTFS_S3_STACK with a gateway GetBucketLocation path by @overtrue in https://github.com/rustfs/rustfs/pull/7786
- revert: remove M1 gateway git dependency until CI can access rustfs/gateway by @overtrue in https://github.com/rustfs/rustfs/pull/7787
- fix: retry IAM migration quorum failures on startup by @overtrue in https://github.com/rustfs/rustfs/pull/7788
- fix: retry interrupted uploads through proxies by @overtrue in https://github.com/rustfs/rustfs/pull/7789
- fix(connect): capture telemetry from server runtime by @overtrue in https://github.com/rustfs/rustfs/pull/7790
- fix: classify explicit proxy failures by @overtrue in https://github.com/rustfs/rustfs/pull/7791
- fix: skip IAM migration when legacy volume is absent by @overtrue in https://github.com/rustfs/rustfs/pull/7792
- fix(release): include CLI in Linux artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7794
- fix(release): serialize Linux binary links by @overtrue in https://github.com/rustfs/rustfs/pull/7797
- feat(connect): expose live lock count snapshots by @overtrue in https://github.com/rustfs/rustfs/pull/7801
- feat(connect): capture live API activity by @overtrue in https://github.com/rustfs/rustfs/pull/7804
- feat(connect): collect native Linux thread states by @overtrue in https://github.com/rustfs/rustfs/pull/7806
- feat(connect): capture live RPC activity by @overtrue in https://github.com/rustfs/rustfs/pull/7807
- test(connect): verify top.disk release artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7808
- test(connect): require native top.disk runner by @overtrue in https://github.com/rustfs/rustfs/pull/7809
- feat(connect): capture bounded local CPU profiles by @overtrue in https://github.com/rustfs/rustfs/pull/7811
- ci: retain top disk acceptance archive by @overtrue in https://github.com/rustfs/rustfs/pull/7812
- fix(connect): observe host traffic in top net by @overtrue in https://github.com/rustfs/rustfs/pull/7814
- ci: enable CPU profiling in supported release builds by @overtrue in https://github.com/rustfs/rustfs/pull/7815
- test(connect): verify profile cpu release artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7818
- test(connect): retain CPU profile verification key by @overtrue in https://github.com/rustfs/rustfs/pull/7819
- test(connect): retain CPU profile import bundle by @overtrue in https://github.com/rustfs/rustfs/pull/7820
- feat(connect): expose object inspect CLI by @overtrue in https://github.com/rustfs/rustfs/pull/7821
- feat(connect): wrap diagnostic reports for upload by @overtrue in https://github.com/rustfs/rustfs/pull/7822
- fix(connect): parse inspect paths as paths by @overtrue in https://github.com/rustfs/rustfs/pull/7826
- feat(connect): verify typed diagnostic jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7827
- fix(connect): accept KMS report upload authorization by @overtrue in https://github.com/rustfs/rustfs/pull/7828
- Run signed diagnostic jobs in the RustFS service by @overtrue in https://github.com/rustfs/rustfs/pull/7829
- fix(connect): emit canonical report manifest time by @overtrue in https://github.com/rustfs/rustfs/pull/7830
- Upload diagnostic job results through support bundles by @overtrue in https://github.com/rustfs/rustfs/pull/7831
- fix(connect): emit canonical top envelope time by @overtrue in https://github.com/rustfs/rustfs/pull/7836
- fix(connect): publish diagnostic producer capabilities by @overtrue in https://github.com/rustfs/rustfs/pull/7837
- fix(io-metrics): drop the rustfs-common edge by injecting the S3 telemetry observer by @overtrue in https://github.com/rustfs/rustfs/pull/7795
- fix(replication): count a bodiless 405 as a replicated delete marker by @reatang in https://github.com/rustfs/rustfs/pull/7756
- fix(kms): refuse key ids that leave the key prefix on the Vault backends by @reatang in https://github.com/rustfs/rustfs/pull/7727
- Preserve safe profile job failure reasons by @overtrue in https://github.com/rustfs/rustfs/pull/7860
- Freeze the heartbeat producer capability registry by @overtrue in https://github.com/rustfs/rustfs/pull/7861
- fix: resume GET body after peer short EOF by @houseme in https://github.com/rustfs/rustfs/pull/7852
- ci: file scheduled-failure issues in rustfs/backlog by @majinghe in https://github.com/rustfs/rustfs/pull/7847
- fix(admin): keep the gateway key inventory off the s3s surface by @overtrue in https://github.com/rustfs/rustfs/pull/7817
- fix(s3): honor presigned UploadPart checksum queries by @overtrue in https://github.com/rustfs/rustfs/pull/7748
- fix(auth): reject unsigned x-amz headers on header-signed SigV4 requests by @overtrue in https://github.com/rustfs/rustfs/pull/7796
- fix(table-catalog): map transient lock failures to unavailable by @marshawcoco in https://github.com/rustfs/rustfs/pull/7841
- Verify profile service jobs on native Linux by @overtrue in https://github.com/rustfs/rustfs/pull/7862
- Authorize the private Connect acceptance checkout by @overtrue in https://github.com/rustfs/rustfs/pull/7863
- Run profile service acceptance directly by @overtrue in https://github.com/rustfs/rustfs/pull/7864
- Retain profile service failure evidence by @overtrue in https://github.com/rustfs/rustfs/pull/7868
- fix: update dependencies and preserve transport errors by @dependabot[bot] in https://github.com/rustfs/rustfs/pull/7798
- ci: expect BACKLOG_ISSUE_TOKEN in scheduled alert wiring checks by @majinghe in https://github.com/rustfs/rustfs/pull/7867
- Pace diagnostic job result redelivery by @overtrue in https://github.com/rustfs/rustfs/pull/7869
- Execute authenticated top.api service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7872
- feat(connect): execute top.locks service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7874
- fix(ci): gate Connect acceptance on x86 build job by @overtrue in https://github.com/rustfs/rustfs/pull/7875
- fix(ci): repair E2E inventory and network CLI coverage by @overtrue in https://github.com/rustfs/rustfs/pull/7871
- feat(connect): execute performance network jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7877
- feat(connect): execute bounded drive performance jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7878
- Preserve the top API service job nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7879
- feat(connect): execute thread profile service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7880
- Execute authenticated top.rpc service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7881
- ci: add service diagnostic acceptance workflows by @overtrue in https://github.com/rustfs/rustfs/pull/7882
- ci: add threads and RPC acceptance workflows by @overtrue in https://github.com/rustfs/rustfs/pull/7883
- fix(connect): deliver diagnostic results until expiry by @overtrue in https://github.com/rustfs/rustfs/pull/7886
- feat(connect): export signed environment inventory by @overtrue in https://github.com/rustfs/rustfs/pull/7887
- fix: recover interrupted GETs and heal operations by @overtrue in https://github.com/rustfs/rustfs/pull/7876
- fix: keep top locks within its capture window by @overtrue in https://github.com/rustfs/rustfs/pull/7888
- fix: recover heal after peer boot epoch changes by @overtrue in https://github.com/rustfs/rustfs/pull/7889
- ci: register the table suite workflow on the default branch by @majinghe in https://github.com/rustfs/rustfs/pull/7893
- test(ecstore): synchronize causal cleanup observations by @overtrue in https://github.com/rustfs/rustfs/pull/7894
- fix(ecstore): create markers for repeated versioned deletes by @GatewayJ in https://github.com/rustfs/rustfs/pull/7884
- Preserve top.locks signed job nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7898
- fix(ecstore): roll back failed delete marker writes by @overtrue in https://github.com/rustfs/rustfs/pull/7899
- chore(deps): refresh RustFS tokio tar dependency by @houseme in https://github.com/rustfs/rustfs/pull/7907
- fix(ci): retain failed functional chain reports and check runners by @majinghe in https://github.com/rustfs/rustfs/pull/7906
- fix(ci): bound non-performance functional suites to one hour by @majinghe in https://github.com/rustfs/rustfs/pull/7911
- ci(build): run linux build lanes on sm-standard-4 runners by @majinghe in https://github.com/rustfs/rustfs/pull/7917
- fix(ecstore): admit transformed small objects inline by plaintext size by @reatang in https://github.com/rustfs/rustfs/pull/7916
- ci(chain): stop gating all suites on the performance runner by @majinghe in https://github.com/rustfs/rustfs/pull/7924
- perf(rustfs): skip redundant content-sha256 pass on signed PUTs by @reatang in https://github.com/rustfs/rustfs/pull/7928
- ci: register the fault-tolerance suite workflow on the default branch by @majinghe in https://github.com/rustfs/rustfs/pull/7929
- chore(release): merge release into main after 1.0.0 by @overtrue in https://github.com/rustfs/rustfs/pull/7935
- fix(ecstore): keep decommission multipart on reserved target by @cxymds in https://github.com/rustfs/rustfs/pull/7937
- fix(heal): match legacy null version during replacement readback by @cxymds in https://github.com/rustfs/rustfs/pull/7933
- fix(heal): certify metadata health and marker repair receipts by @cxymds in https://github.com/rustfs/rustfs/pull/7932
- ci(ft): upload the fault-tolerance report to the dashboard by @majinghe in https://github.com/rustfs/rustfs/pull/7939
- ci: drop dead references to the deleted release branch by @overtrue in https://github.com/rustfs/rustfs/pull/7945
- build(deps): update dependency versions by @houseme in https://github.com/rustfs/rustfs/pull/7942
- perf(s3select): accelerate ScanRange record scanning by @GatewayJ in https://github.com/rustfs/rustfs/pull/7934
- fix(ci): bound the fault-tolerance dashboard upload step by @overtrue in https://github.com/rustfs/rustfs/pull/7948
- chore(release): prepare 1.0.1 by @overtrue in https://github.com/rustfs/rustfs/pull/7946
- fix(ecstore): forward quota admission on CopyObject destination writes by @overtrue in https://github.com/rustfs/rustfs/pull/7947
- feat(tables): support staged table creation by @GatewayJ in https://github.com/rustfs/rustfs/pull/7919
- refactor(obs): depend on dial9 crate by @houseme in https://github.com/rustfs/rustfs/pull/7949
- fix(ecstore): reuse metadata read guards during writes by @jkossis in https://github.com/rustfs/rustfs/pull/7941
- fix(ilm): keep expiry pending gauge balanced and drain overwrite tails by @overtrue in https://github.com/rustfs/rustfs/pull/7944
- fix(ecstore): keep the single-block bound on every inline candidate by @overtrue in https://github.com/rustfs/rustfs/pull/7954
- Allow 127.0.0.0/8 as loopback addresses for binding by @aredridel in https://github.com/rustfs/rustfs/pull/7943
- fix(ecstore): hide and reclaim ancestors of delete residue in prefix listings by @overtrue in https://github.com/rustfs/rustfs/pull/7955
- fix(readiness): smooth pool metadata timeout flaps by @houseme in https://github.com/rustfs/rustfs/pull/7956
- fix(heal): prevent MRF starvation of integrity repairs by @houseme in https://github.com/rustfs/rustfs/pull/7963
- fix(lock): contain slow peer RPC admission storms by @houseme in https://github.com/rustfs/rustfs/pull/7970
- fix(rebalance): defer retryable source cleanup failures by @cxymds in https://github.com/rustfs/rustfs/pull/7977
- feat(release): add workspace cargo publish tooling by @houseme in https://github.com/rustfs/rustfs/pull/7973
- fix(ci): reject incomplete fault-tolerance runs by @GatewayJ in https://github.com/rustfs/rustfs/pull/7961
- feat(helm): add ingress support for both console and endpoint by @kokorousaki in https://github.com/rustfs/rustfs/pull/7972
- ci(performance): move the performance suite to its own concurrency group by @majinghe in https://github.com/rustfs/rustfs/pull/7984
- fix(decommission): keep scanner backlog handoff conflicts recoverable by @cxymds in https://github.com/rustfs/rustfs/pull/7979
- fix(notify): validate bucket notification config before saving by @cxymds in https://github.com/rustfs/rustfs/pull/7980
- ci(performance): drop stale shared-lock comment from the performance workflow by @overtrue in https://github.com/rustfs/rustfs/pull/7987
- fix(scanner): resume and persist checkpoints across leader handoff by @houseme in https://github.com/rustfs/rustfs/pull/7982
- build(deps): refresh workspace dependencies by @houseme in https://github.com/rustfs/rustfs/pull/7986
- fix(ecstore): preserve vectored bitrot writes by @houseme in https://github.com/rustfs/rustfs/pull/7981
- fix(helm): default the ingress backend port and refresh the nix cli hashes by @overtrue in https://github.com/rustfs/rustfs/pull/7990
- build(deps): bump dial9 to 0.5.1 by @houseme in https://github.com/rustfs/rustfs/pull/7991
- fix(replication): harden delete marker HEAD convergence by @houseme in https://github.com/rustfs/rustfs/pull/7993
- docs(operations): add cluster and erasure-coding lifecycle runbook by @overtrue in https://github.com/rustfs/rustfs/pull/7998
- fix(heal): fail admin heal with unhealthy drives by @cxymds in https://github.com/rustfs/rustfs/pull/7996
- fix(ecstore): preserve bounded listing completion reason by @houseme in https://github.com/rustfs/rustfs/pull/7994
- fix(heal): discharge absent durable partial writes by @houseme in https://github.com/rustfs/rustfs/pull/8000
- feat: expose subscriptions used by event destinations by @cxymds in https://github.com/rustfs/rustfs/pull/8001
- fix(tier): model R2 as unversioned storage by @cxymds in https://github.com/rustfs/rustfs/pull/8004
- fix(ecstore): repair buckets left with only an incarnation sidecar by @overtrue in https://github.com/rustfs/rustfs/pull/8008
- fix(heal): inspect stale members during deep scans by @cxymds in https://github.com/rustfs/rustfs/pull/8009
- fix(tier): gate opaque version recovery cleanup by @cxymds in https://github.com/rustfs/rustfs/pull/8006
- fix(release): sort pre-release packages below their final release by @overtrue in https://github.com/rustfs/rustfs/pull/8016
- fix(ecstore): retry fleet capability probe while the notification system boots by @overtrue in https://github.com/rustfs/rustfs/pull/8017
- fix(heal): close tail-truncation and stale current-marker gaps by @cxymds in https://github.com/rustfs/rustfs/pull/8019
- fix: serialize notify runtime module switch reconciliation by @cxymds in https://github.com/rustfs/rustfs/pull/8020
- fix(scanner): protect single-disk foreground latency by @houseme in https://github.com/rustfs/rustfs/pull/8022
- test(heal): cover stale current delete marker rejoin by @cxymds in https://github.com/rustfs/rustfs/pull/8021
- fix(package): preserve service state across upgrades by @majinghe in https://github.com/rustfs/rustfs/pull/8024
- ci(chain): fall back to auto-testing main HEAD when the pinned harness goes stale by @majinghe in https://github.com/rustfs/rustfs/pull/8026
- fix(ecstore): allow server-side copy at normal read quorum by @overtrue in https://github.com/rustfs/rustfs/pull/8029
- fix(get): skip futile resume for single-disk objects by @houseme in https://github.com/rustfs/rustfs/pull/8031
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/8033
- docs(security): add encrypted ETag advisory lesson by @overtrue in https://github.com/rustfs/rustfs/pull/8040
- ci(docker): sync the Docker Hub overview from README.md on release by @Marukome0743 in https://github.com/rustfs/rustfs/pull/8034
- fix(heal): preserve remote corruption and reject incomplete deep scans by @cxymds in https://github.com/rustfs/rustfs/pull/8032
- fix(ci): give the chain staleness probe a token that can read auto-testing by @majinghe in https://github.com/rustfs/rustfs/pull/8041
- fix(heal): restore bucket metadata before replacement completion by @overtrue in https://github.com/rustfs/rustfs/pull/8042
- fix(decommission): use owned data for source capacity by @cxymds in https://github.com/rustfs/rustfs/pull/8038
- fix(lifecycle): reject empty expiration actions by @cxymds in https://github.com/rustfs/rustfs/pull/8045
- fix(obs): default span events to none and gate span list by level by @cxymds in https://github.com/rustfs/rustfs/pull/8047
- fix: rename admin metrics endpoint to realtime by @cxymds in https://github.com/rustfs/rustfs/pull/8046
- fix(rebalance): retry fleet proof before start activation by @cxymds in https://github.com/rustfs/rustfs/pull/8049
- fix(ci): align FT evidence contract with scenario E (44 cases) by @majinghe in https://github.com/rustfs/rustfs/pull/8052
- fix(ecstore): bound decommission capacity gate waits by @cxymds in https://github.com/rustfs/rustfs/pull/8044
- @aredridel made their first contribution in https://github.com/rustfs/rustfs/pull/7943
- @kokorousaki made their first contribution in https://github.com/rustfs/rustfs/pull/7972
- @Marukome0743 made their first contribution in https://github.com/rustfs/rustfs/pull/8034
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0...1.0.1-preview.9
3.3.0-RC
Nacos 3.3.0-RC is a release candidate for the Nacos 3.3 feature iteration. It builds on 3.3.0-BETA with expanded AI Registry capabilities, DNS service discovery, and further security and compatibility improvements.
This release focuses on:
- Protocol-neutral Agent management and RAD discovery, including transport negotiation and Watch/Push.
- Shared AI resource search and unified MCP lifecycle management.
- DNS-based service discovery and Config SDK improvements.
- Authentication enabled by default, migration safeguards, and runtime stability.
The main feature updates include:
- Agent registration, endpoint publication, discovery, Java SDKs, and Console management, with a migration path for historical A2A data.
- Search and discovery across Agent, AgentSpec, Skill, Prompt, and MCP resources, including shared indexes and artifact retrieval.
- MCP draft, review, publish, online/offline, and visibility management while retaining existing serving contracts.
- Optional DNS A-record queries over UDP and TCP.
The release also retains BETA's dynamic plugin management, distributed locks, Jackson 2/3 support, and Spring Boot 4 compatibility. It includes further fixes across Config, Naming, Console, clients, AI storage, and authorization.
These notes are cumulative for 3.3.0 and include the changes documented in 3.3.0-BETA.
Detailed changes in this release:
- #50 Add optional DNS service discovery with A-record queries over UDP and TCP.
- #14466 Add a neutral JSON adapter with Jackson 2 and Jackson 3 runtime support.
- #14804 Add protocol-neutral Agent lifecycle management, Console workflows, RAD discovery, runtime endpoints, transport negotiation, Watch/Push, and Java SDKs.
- #15279 Add distributed reentrant and non-reentrant locks with watchdog renewal, FIFO waiting, gRPC notifications, Raft consistency, and a Java Lock SDK.
- #15471 Support SkillSpector as an AI publish pipeline.
- #15475 Add unified dynamic plugin configuration, lifecycle management, runtime updates, deterministic discovery, and Console configuration workflows.
- #15476#15604 Add plugin-owned visibility grant and revoke APIs and Console management for Skill and AgentSpec resources.
- #15541 Add Agentic Resource Discovery with search, exploration, artifact retrieval, visibility filtering, persistent indexes, and hybrid keyword and vector retrieval.
- #15640 Support Nacos server deployments on Linux RISC-V with RocksDB.
- #15761 Add shared MCP lifecycle management with drafts, review, publish, online/offline operations, visibility, Java SDKs, and historical reconciliation while preserving existing Config/Naming serving data.
- #8354 Replace the mandatory Prometheus client dependency with a pluggable client metrics SPI and a no-op default.
- #12064 Support configuring the gRPC port offset through individual client properties.
- #12734 Add request/result-based Config SDK methods, encrypted Config CAS publishing, and conditional queries with local cache reuse.
- #13690 Log the resolved client logging configuration and include namespace IDs in subscription logs.
- #14804 Improve Agent detail, draft creation, version history, and legacy A2A Console workflows.
- #14817 Disable selected deprecated Pipeline and MCP import APIs by default and provide a shared temporary compatibility switch.
- #14932 Reduce read-path contention and improve index consistency in the legacy MCP cache.
- #14980 Support deregistering persistent Naming instances from Console v3.
- #15315#15561 Improve Skill upload precheck, conflict handling, and server-side ZIP validation.
- #15322 Remove obsolete Config migration compatibility code and retain only the current Config storage model.
- #15346 Manage the reserved
latestlabel for AI resources on the server. - #15357 Enable Client API authentication by default and validate standard integration scenarios with authentication enabled.
- #15432#15440#15441 Remove reviewed unused Java code while preserving required compatibility contracts.
- #15448 Improve English translations in Console UI Next.
- #15486 Include the Skill owner in upload permission-denied messages.
- #15606 Return a stable per-item result for every Skill batch upload candidate.
- #15661 Restrict distributed embedded database query results to supported scalar types and registered row mappers.
- #15678 Decouple the visibility plugin SPI from server runtime modules.
- #15686#15692 Align authorization method resolution with Spring MVC routing and expand controller-level authorization regression coverage.
- #15687 Authenticate native JRaft gRPC requests with server identity and a rolling-upgrade enforcement transition.
- #15695 Improve Config detail, edit, and history page layouts with larger content areas and full-screen reading.
- #15720 Automatically publish the first uploaded Skill version.
- #15746 Add operator-controlled outbound access policies for MCP tool imports.
- #15838 Clarify that rolling back the first inserted Config history record deletes the configuration.
- #15854 Remove untagged legacy Raft request parsing and preserve explicit errors for malformed log entries.
- #11122 Accept
healthCheckEnabledas a health-check switch entry while retaining the legacycheckalias. - #11890 Avoid removing metadata for instances that still exist after restart.
- #12557 Retry Config dump write-lock acquisition to prevent stale MD5 cache data.
- #14008 Fix native-image metadata required to establish gRPC client connections.
- #14804 Keep AI search available with partial results while indexes are being backfilled.
- #14981#15468 Fix concurrent Config publish duplicate-key handling through the datasource dialect SPI, including PostgreSQL
unique_violation. - #15410 Fix trailing separators when joining collections containing null elements.
- #15415 Prevent malformed config-plugin property names from discarding valid plugin configuration.
- #15420 Fix Skill ZIP uploads with invalid or unavailable version candidates.
- #15425 Prevent out-of-range batch indexes from causing
IndexOutOfBoundsException. - #15446 Fix page count calculation for empty and exactly divisible result sets.
- #15447 Prevent
NamingUtils.getServiceNamefrom failing on a trailing service separator. - #15466 Correct
@Sinceannotations for Skill upload APIs. - #15470 Prevent Naming connection cleanup from waiting for unrelated distributed-lock Raft writes.
- #15475 Fix standalone Console auth plugin initialization and forward the caller identity to downstream Server requests.
- #15476 Enforce Prompt visibility on list, detail, version, download, and Client read APIs.
- #15477 Wait for persistent service metadata before starting health checks.
- #15490 Fix Chinese text corruption in Skill Scanner pipeline reports on Windows.
- #15494 Restore complete MCP tool advanced-template support in Console UI Next.
- #15510 Reject explicitly supplied invalid Bearer tokens instead of falling back to anonymous access.
- #15534 Generate deterministic, ASCII-safe physical Config keys for AI resources.
- #15543 Restore case-sensitive collation for newly initialized MySQL Config schemas.
- #15557 Fix startup failures when plugin state snapshots are restored before unified plugin discovery.
- #15560 Preserve MCP tool passthrough authentication when editing and publishing runtime templates.
- #15603 Fix visibility query conversion when explicitly authorized resources are present.
- #15618 Try lower-priority explicit Skill upload versions before generating a version.
- #15620 Allow AI resource versions to be resubmitted after completed or stale review results.
- #15625 Fix gray Config cache null access and cross-thread visibility in Config disk services and client connections.
- #15634 Fix API authorization metadata, custom resource parser precedence, AgentSpec authorization, and Prometheus security path matching.
- #15642 Make AI resource deletion cleanup-first and retryable across all stored versions.
- #15658 Keep AI resource reads, updates, and deletion bound to the persisted storage provider.
- #15660 Fix standalone Console startup when the Config clone source-permission checker is unavailable.
- #15663 Preserve case-sensitive AI resource identities in MySQL search and task tables.
- #15675 Preserve nullable MCP tool output schemas during editing, display, and OpenAPI import.
- #15682 Prevent login responses from disclosing whether a username exists.
- #15689 Preserve string serialization of Config storage IDs with Jackson 3 to avoid numeric precision loss.
- #15701 Fix Config history next-record queries on Derby and preserve gray-version filtering.
- #15703 Migrate the legacy skills.sh importer state key without overriding canonical configuration.
- #15705 Clean removed Skill and AgentSpec draft files while retaining retry metadata after storage failures.
- #15710 Declare the required SQL LIKE escape clause for Derby, Oracle, and other affected dialects.
- #15712#15827 Reject unsafe instance addresses, HTTP targets, headers, and MySQL connection options in active health checks.
- #15714 Handle encoded context paths consistently in the legacy controller-method resolver.
- #15718 Escape all LIKE predicates when searching embedded roles with username filters.
- #15724 Forward the namespace when querying Config listeners by IP across cluster members.
- #15744 Align bootstrap and distribution configuration defaults.
- #15763 Reject invalid IPv6 mixed addresses with too many explicit address blocks.
- #15803 Reject unsafe AgentSpec and Skill ZIP layouts and enforce entry-count and decompression limits.
- #15804 Reject unsafe filesystem paths before Config, archive, and local rule-storage operations.
- #15821 Increase the embedded Derby connection timeout to prevent initialization failures on slow storage.
- #15844 Use the correct default gRPC protocol negotiator type.
- #15847 Restore public defaults for newly created Agent and MCP resources and preserve existing visibility scopes.
- #15850#15851 Select the default JDBC driver from the datasource dialect and clarify non-MySQL configuration examples.
- #15853 Return schema metadata in current, historical, and previous-version Config details.
- #15864 Resolve HEAD requests through their GET mapping in the legacy controller-method cache.
- #15866 Remove server-list event subscriptions on client shutdown and prevent callbacks from accessing a closed server-list provider.
- #14944 Upgrade Spring Boot from 3.5.14 to 4.0.6.
- #15470 Upgrade SOFA JRaft to 1.4.1 while preserving callback cache behavior and JRaft authentication.
- #15584 Upgrade Maven Compiler Plugin from 3.5.1 to 3.15.0 for JDK 25 build compatibility.
- #15645#15834 Upgrade compatible legacy and next Console dependencies, patch the sanitizer bundled with Monaco, and refresh packaged frontend assets.
- #15707 Upgrade Log4j API from 2.25.4 to 2.25.5.
- #15767 Upgrade gRPC to 1.81.0 to address CVE-2026-33871.
Nacos 3.3.0-RC changes authentication defaults, disables selected deprecated APIs, and introduces migration and compatibility boundaries that require attention before upgrading.
Affected users:
- Applications that connect without credentials and rely on the previous Client API authentication default.
- Integrations using deprecated Pipeline or Console MCP import endpoints.
- Deployments with legacy Config data, unsafe historical AI Config keys, or untagged Raft logs.
- Clusters migrating historical A2A or MCP resources, or planning a downgrade after migration or JRaft authentication enforcement.
- Applications relying on built-in Prometheus client metrics, private-network MCP tool imports, or implicit Agent/MCP visibility defaults.
Recommended upgrade path:
- Prepare Client API credentials. An absent
nacos.core.auth.enablednow meanstrue. Existing explicitfalsesettings remain effective. If credentials are not ready, explicitly retainfalseduring migration, provision identities and permissions, verify client access, and then enable authentication consistently on every member. Admin and Console authentication defaults are unchanged. - Migrate deprecated AI API calls. The deprecated Pipeline base-path list and path-variable detail endpoints, and the old Console MCP import endpoints, return HTTP
410withAPI_DEPRECATEDby default. Use Pipeline/listand/detailendpoints and the unified/v3/console/ai/import/validateand/executeendpoints.nacos.core.api.compatibility.enabled=truetemporarily reopens the selected endpoints; the oldnacos.ai.resource.import.legacy-mcp-api-enabledproperty is no longer recognized. - Complete legacy Config migrations. Upgrade pre-3.0 deployments through an earlier Nacos 3.x version. Migrate default-namespace data from the empty tenant to
public, and legacy beta/tag data fromconfig_info_betaandconfig_info_tagtoconfig_info_gray. For thenacos_configAI storage provider, explicitly migrate affected historical non-ASCII or overlength Config coordinates to the deterministic ASCII-safe mapping. - Check persisted Raft logs. Nacos 3.3 no longer replays untagged entries, including entries originally written by Nacos 2.0.x and retained across intermediate upgrades. Complete recovery and snapshot/log migration with a version that can read those entries before upgrading. Changing the running version alone does not convert persisted logs.
- Plan historical A2A migration explicitly. The default
nacos.ai.a2a.compatibility.mode=CANONICALdoes not scan historical data. For historical 3.0–3.2 A2A data, follow the migration runbook and configure new members withAUTOand a consistent migration policy. Early 3.3AUTOdeployments require the runbook's separate preflight. After permanent canonical cutover, a legacy-only server must not rejoin. MCP reconciliation also has a one-way managed-lifecycle transition; preserve its migration state and existing Config/Naming serving data. - Keep cluster server identities consistent. Native JRaft authentication becomes enforced once all members advertise support, and enforcement persists across restarts. A rolling downgrade to members without JRaft credential support is not guaranteed to remain available.
- Install a client metrics provider when needed. The mandatory Prometheus dependency has been removed from
nacos-client. Without an implementation ofNacosClientMetricsProvider, client metrics recording is a no-op, even whenenableClientMetricsis enabled. - Review MCP import access policy. Public MCP import targets remain available by default. Private or local targets must be explicitly allowed with
nacos.console.ai.mcp.import.allowed-private-addresses; HTTP redirects are not followed. - Set private resource scopes explicitly. The built-in visibility plugin defaults new Agent and MCP resources to
PUBLIC. Existing stored scopes and Prompt/Skill defaults are unchanged. Set the intended private scope for resources that should not be discoverable by other users. - Back up and rehearse the upgrade. Back up the database and relevant persisted data, then verify authentication, historical resource migration, discovery, and client behavior in staging before upgrading to Nacos 3.3.0-RC.
Deployments without the affected historical data do not require the data migrations above; the new authentication defaults and applicable API changes still need review.
| Module | Java Required |
|---|---|
| Nacos-Server / Nacos-Console | Java 17 |
| Nacos-Client | Java 8 |
| Nacos-Maintainer-Client | Java 8 |
- @Ayanami-Shinji made their first contribution in https://github.com/alibaba/nacos/pull/15286
- @Zhengcy05 made their first contribution in https://github.com/alibaba/nacos/pull/15318
- @a981008 made their first contribution in https://github.com/alibaba/nacos/pull/15280
- @thegoldenflow made their first contribution in https://github.com/alibaba/nacos/pull/15348
- @hutiefang76 made their first contribution in https://github.com/alibaba/nacos/pull/15413
- @vasiliy-mikhailov made their first contribution in https://github.com/alibaba/nacos/pull/15415
- @Funzhou000 made their first contribution in https://github.com/alibaba/nacos/pull/15448
- @cl421866707 made their first contribution in https://github.com/alibaba/nacos/pull/15491
- @sweat123 made their first contribution in https://github.com/alibaba/nacos/pull/15502
- @fudianchn made their first contribution in https://github.com/alibaba/nacos/pull/15646
- @cyforkk made their first contribution in https://github.com/alibaba/nacos/pull/15631
- @GerardGao made their first contribution in https://github.com/alibaba/nacos/pull/15764
- @lavyoung made their first contribution in https://github.com/alibaba/nacos/pull/15771
- @neoLsH made their first contribution in https://github.com/alibaba/nacos/pull/15792
- @TianHengZhuang made their first contribution in https://github.com/alibaba/nacos/pull/15822
- @ABin-Huang made their first contribution in https://github.com/alibaba/nacos/pull/15817
- @Ashfaqbs made their first contribution in https://github.com/alibaba/nacos/pull/15849
Full Changelog: https://github.com/alibaba/nacos/compare/3.2.2...3.3.0-RC
RustFS 1.0.1-preview.8 (preview)
- feat(nightly): publish packages as assets of the rolling 'nightly' release (sync from release) by @majinghe in https://github.com/rustfs/rustfs/pull/7593
- fix(ecstore): stop pruning at nonempty directories by @marshawcoco in https://github.com/rustfs/rustfs/pull/7616
- fix(replication): close the pre-stable convergence gaps from backlog#2367 by @reatang in https://github.com/rustfs/rustfs/pull/7626
- feat(console): support a configurable console URL prefix by @overtrue in https://github.com/rustfs/rustfs/pull/7634
- chore(release): merge release into main for rc.6 by @overtrue in https://github.com/rustfs/rustfs/pull/7638
- feat: configure the console base path at build time by @cxymds in https://github.com/rustfs/rustfs/pull/7636
- chore(release): prepare 1.0.0-rc.6 by @overtrue in https://github.com/rustfs/rustfs/pull/7641
- fix(heal): preserve retryable batch failures during recovery by @overtrue in https://github.com/rustfs/rustfs/pull/7642
- fix(s3): reject oversize single PUT early and map body errors to 4xx by @reatang in https://github.com/rustfs/rustfs/pull/7635
- fix(ecstore): make directory mtime fixture portable by @marshawcoco in https://github.com/rustfs/rustfs/pull/7623
- fix(storage): prevent readiness after native migration failures by @rjregenold in https://github.com/rustfs/rustfs/pull/7652
- fix(admin): expose OIDC account display fields by @GatewayJ in https://github.com/rustfs/rustfs/pull/7654
- fix(replication): correct peer joins and remote-state reporting by @jkossis in https://github.com/rustfs/rustfs/pull/7650
- feat(ci): add fault-tolerance degradation suite to the functional chain by @majinghe in https://github.com/rustfs/rustfs/pull/7663
- fix(ci): repair functional defaults and chain regression checks by @overtrue in https://github.com/rustfs/rustfs/pull/7664
- "feat(ci): add fault-tolerance degradation suite to the functional chain" by @majinghe in https://github.com/rustfs/rustfs/pull/7667
- fix(ci): align security workflow tests with chain by @cxymds in https://github.com/rustfs/rustfs/pull/7679
- test(kms): cover non-default Vault Transit paths by @hkwi in https://github.com/rustfs/rustfs/pull/7657
- fix(s3): bound stalled UploadPart request bodies by @cxymds in https://github.com/rustfs/rustfs/pull/7659
- fix: enforce S3 permissions for recursive force deletion by @cxymds in https://github.com/rustfs/rustfs/pull/7661
- fix(tables): reject reserved warehouse locations by @GatewayJ in https://github.com/rustfs/rustfs/pull/7671
- fix(e2e): require a verified server binary for every e2e run by @overtrue in https://github.com/rustfs/rustfs/pull/7687
- fix(ci): bind nightly lanes to one resolved source by @overtrue in https://github.com/rustfs/rustfs/pull/7688
- feat(ci): measure queue and execution time by run attempt by @overtrue in https://github.com/rustfs/rustfs/pull/7689
- fix(ci): verify complete functional chain evidence by @overtrue in https://github.com/rustfs/rustfs/pull/7690
- fix(kms): classify KMS/SSE error contracts and SSE-S3 headers by @reatang in https://github.com/rustfs/rustfs/pull/7697
- Collect bounded Connect environment inventory by @overtrue in https://github.com/rustfs/rustfs/pull/7710
- Add Connect service license commands by @overtrue in https://github.com/rustfs/rustfs/pull/7711
- Add consent-bound diagnostic scheduling by @overtrue in https://github.com/rustfs/rustfs/pull/7713
- feat(connect): advertise environment diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7714
- feat(connect): add consent-bound profile exports by @overtrue in https://github.com/rustfs/rustfs/pull/7716
- feat(connect): add bounded local log capture by @overtrue in https://github.com/rustfs/rustfs/pull/7718
- feat(connect): add bounded network performance producer by @overtrue in https://github.com/rustfs/rustfs/pull/7719
- Add bounded local telemetry export commands by @overtrue in https://github.com/rustfs/rustfs/pull/7720
- Add bounded drive performance command by @overtrue in https://github.com/rustfs/rustfs/pull/7721
- Add bounded top diagnostic captures by @overtrue in https://github.com/rustfs/rustfs/pull/7722
- Add client-to-deployment performance diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7726
- Add a local environment inventory command by @overtrue in https://github.com/rustfs/rustfs/pull/7728
- feat(connect): add bounded object performance diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7734
- Add authenticated inter-node network performance probes by @overtrue in https://github.com/rustfs/rustfs/pull/7739
- fix(site-replication): keep an operator's bucket-level target to a peer instead of taking it over by @reatang in https://github.com/rustfs/rustfs/pull/7709
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/7733
- feat(connect): support explicit enterprise proxies by @overtrue in https://github.com/rustfs/rustfs/pull/7745
- feat(connect): emit drive unavailable log events by @overtrue in https://github.com/rustfs/rustfs/pull/7747
- feat(connect): add local inspect export producer by @overtrue in https://github.com/rustfs/rustfs/pull/7750
- test(connect): cover nested allocator profile stats by @overtrue in https://github.com/rustfs/rustfs/pull/7717
- docs(security): add presigned copy advisory lesson by @overtrue in https://github.com/rustfs/rustfs/pull/7754
- fix(ecstore): refuse RMW and reads of unreadable bucket configs by @overtrue in https://github.com/rustfs/rustfs/pull/7759
- refactor(filemeta): own persisted metadata key authority by @overtrue in https://github.com/rustfs/rustfs/pull/7760
- Sync network performance protocol fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7761
- Sync site replication result fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7762
- Sync telemetry producer fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7763
- refactor(rio): own trailer source and drop s3s dependency by @overtrue in https://github.com/rustfs/rustfs/pull/7764
- Deliver diagnostic scheduler receipts to Connect by @overtrue in https://github.com/rustfs/rustfs/pull/7767
- fix(ecstore): refuse writes on unreadable bucket configs with 503 by @overtrue in https://github.com/rustfs/rustfs/pull/7768
- feat(connect): add site replication performance producer by @overtrue in https://github.com/rustfs/rustfs/pull/7769
- refactor(ecstore): read persisted object-metadata keys from the filemeta authority (A3b) by @overtrue in https://github.com/rustfs/rustfs/pull/7770
- feat(connect): add device license renewal client by @overtrue in https://github.com/rustfs/rustfs/pull/7771
- feat(connect): add approved artifact relay by @overtrue in https://github.com/rustfs/rustfs/pull/7772
- fix(connect): export relay CLI types by @overtrue in https://github.com/rustfs/rustfs/pull/7773
- feat(connect): add device report upload client by @overtrue in https://github.com/rustfs/rustfs/pull/7774
- feat(connect): add typed telemetry trace source by @overtrue in https://github.com/rustfs/rustfs/pull/7775
- fix(connect): avoid shadowing replication URL helper by @overtrue in https://github.com/rustfs/rustfs/pull/7777
- fix(connect): restore site replication test nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7778
- fix(connect): restore rustfs build after site replication perf producer by @overtrue in https://github.com/rustfs/rustfs/pull/7779
- fix(rustfs): restore test compilation by @overtrue in https://github.com/rustfs/rustfs/pull/7780
- feat(connect): sign site replication target pair by @overtrue in https://github.com/rustfs/rustfs/pull/7781
- refactor(filemeta): own RestoreStatus and drop the s3s dependency (A3c) by @overtrue in https://github.com/rustfs/rustfs/pull/7782
- feat(connect): add service license relay import by @overtrue in https://github.com/rustfs/rustfs/pull/7784
- feat(admin): add a gateway key inventory for the S3 stack switch by @overtrue in https://github.com/rustfs/rustfs/pull/7785
- feat(server): add RUSTFS_S3_STACK with a gateway GetBucketLocation path by @overtrue in https://github.com/rustfs/rustfs/pull/7786
- revert: remove M1 gateway git dependency until CI can access rustfs/gateway by @overtrue in https://github.com/rustfs/rustfs/pull/7787
- fix: retry IAM migration quorum failures on startup by @overtrue in https://github.com/rustfs/rustfs/pull/7788
- fix: retry interrupted uploads through proxies by @overtrue in https://github.com/rustfs/rustfs/pull/7789
- fix(connect): capture telemetry from server runtime by @overtrue in https://github.com/rustfs/rustfs/pull/7790
- fix: classify explicit proxy failures by @overtrue in https://github.com/rustfs/rustfs/pull/7791
- fix: skip IAM migration when legacy volume is absent by @overtrue in https://github.com/rustfs/rustfs/pull/7792
- fix(release): include CLI in Linux artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7794
- fix(release): serialize Linux binary links by @overtrue in https://github.com/rustfs/rustfs/pull/7797
- feat(connect): expose live lock count snapshots by @overtrue in https://github.com/rustfs/rustfs/pull/7801
- feat(connect): capture live API activity by @overtrue in https://github.com/rustfs/rustfs/pull/7804
- feat(connect): collect native Linux thread states by @overtrue in https://github.com/rustfs/rustfs/pull/7806
- feat(connect): capture live RPC activity by @overtrue in https://github.com/rustfs/rustfs/pull/7807
- test(connect): verify top.disk release artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7808
- test(connect): require native top.disk runner by @overtrue in https://github.com/rustfs/rustfs/pull/7809
- feat(connect): capture bounded local CPU profiles by @overtrue in https://github.com/rustfs/rustfs/pull/7811
- ci: retain top disk acceptance archive by @overtrue in https://github.com/rustfs/rustfs/pull/7812
- fix(connect): observe host traffic in top net by @overtrue in https://github.com/rustfs/rustfs/pull/7814
- ci: enable CPU profiling in supported release builds by @overtrue in https://github.com/rustfs/rustfs/pull/7815
- test(connect): verify profile cpu release artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7818
- test(connect): retain CPU profile verification key by @overtrue in https://github.com/rustfs/rustfs/pull/7819
- test(connect): retain CPU profile import bundle by @overtrue in https://github.com/rustfs/rustfs/pull/7820
- feat(connect): expose object inspect CLI by @overtrue in https://github.com/rustfs/rustfs/pull/7821
- feat(connect): wrap diagnostic reports for upload by @overtrue in https://github.com/rustfs/rustfs/pull/7822
- fix(connect): parse inspect paths as paths by @overtrue in https://github.com/rustfs/rustfs/pull/7826
- feat(connect): verify typed diagnostic jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7827
- fix(connect): accept KMS report upload authorization by @overtrue in https://github.com/rustfs/rustfs/pull/7828
- Run signed diagnostic jobs in the RustFS service by @overtrue in https://github.com/rustfs/rustfs/pull/7829
- fix(connect): emit canonical report manifest time by @overtrue in https://github.com/rustfs/rustfs/pull/7830
- Upload diagnostic job results through support bundles by @overtrue in https://github.com/rustfs/rustfs/pull/7831
- fix(connect): emit canonical top envelope time by @overtrue in https://github.com/rustfs/rustfs/pull/7836
- fix(connect): publish diagnostic producer capabilities by @overtrue in https://github.com/rustfs/rustfs/pull/7837
- fix(io-metrics): drop the rustfs-common edge by injecting the S3 telemetry observer by @overtrue in https://github.com/rustfs/rustfs/pull/7795
- fix(replication): count a bodiless 405 as a replicated delete marker by @reatang in https://github.com/rustfs/rustfs/pull/7756
- fix(kms): refuse key ids that leave the key prefix on the Vault backends by @reatang in https://github.com/rustfs/rustfs/pull/7727
- Preserve safe profile job failure reasons by @overtrue in https://github.com/rustfs/rustfs/pull/7860
- Freeze the heartbeat producer capability registry by @overtrue in https://github.com/rustfs/rustfs/pull/7861
- fix: resume GET body after peer short EOF by @houseme in https://github.com/rustfs/rustfs/pull/7852
- ci: file scheduled-failure issues in rustfs/backlog by @majinghe in https://github.com/rustfs/rustfs/pull/7847
- fix(admin): keep the gateway key inventory off the s3s surface by @overtrue in https://github.com/rustfs/rustfs/pull/7817
- fix(s3): honor presigned UploadPart checksum queries by @overtrue in https://github.com/rustfs/rustfs/pull/7748
- fix(auth): reject unsigned x-amz headers on header-signed SigV4 requests by @overtrue in https://github.com/rustfs/rustfs/pull/7796
- fix(table-catalog): map transient lock failures to unavailable by @marshawcoco in https://github.com/rustfs/rustfs/pull/7841
- Verify profile service jobs on native Linux by @overtrue in https://github.com/rustfs/rustfs/pull/7862
- Authorize the private Connect acceptance checkout by @overtrue in https://github.com/rustfs/rustfs/pull/7863
- Run profile service acceptance directly by @overtrue in https://github.com/rustfs/rustfs/pull/7864
- Retain profile service failure evidence by @overtrue in https://github.com/rustfs/rustfs/pull/7868
- fix: update dependencies and preserve transport errors by @dependabot[bot] in https://github.com/rustfs/rustfs/pull/7798
- ci: expect BACKLOG_ISSUE_TOKEN in scheduled alert wiring checks by @majinghe in https://github.com/rustfs/rustfs/pull/7867
- Pace diagnostic job result redelivery by @overtrue in https://github.com/rustfs/rustfs/pull/7869
- Execute authenticated top.api service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7872
- feat(connect): execute top.locks service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7874
- fix(ci): gate Connect acceptance on x86 build job by @overtrue in https://github.com/rustfs/rustfs/pull/7875
- fix(ci): repair E2E inventory and network CLI coverage by @overtrue in https://github.com/rustfs/rustfs/pull/7871
- feat(connect): execute performance network jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7877
- feat(connect): execute bounded drive performance jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7878
- Preserve the top API service job nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7879
- feat(connect): execute thread profile service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7880
- Execute authenticated top.rpc service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7881
- ci: add service diagnostic acceptance workflows by @overtrue in https://github.com/rustfs/rustfs/pull/7882
- ci: add threads and RPC acceptance workflows by @overtrue in https://github.com/rustfs/rustfs/pull/7883
- fix(connect): deliver diagnostic results until expiry by @overtrue in https://github.com/rustfs/rustfs/pull/7886
- feat(connect): export signed environment inventory by @overtrue in https://github.com/rustfs/rustfs/pull/7887
- fix: recover interrupted GETs and heal operations by @overtrue in https://github.com/rustfs/rustfs/pull/7876
- fix: keep top locks within its capture window by @overtrue in https://github.com/rustfs/rustfs/pull/7888
- fix: recover heal after peer boot epoch changes by @overtrue in https://github.com/rustfs/rustfs/pull/7889
- ci: register the table suite workflow on the default branch by @majinghe in https://github.com/rustfs/rustfs/pull/7893
- test(ecstore): synchronize causal cleanup observations by @overtrue in https://github.com/rustfs/rustfs/pull/7894
- fix(ecstore): create markers for repeated versioned deletes by @GatewayJ in https://github.com/rustfs/rustfs/pull/7884
- Preserve top.locks signed job nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7898
- fix(ecstore): roll back failed delete marker writes by @overtrue in https://github.com/rustfs/rustfs/pull/7899
- chore(deps): refresh RustFS tokio tar dependency by @houseme in https://github.com/rustfs/rustfs/pull/7907
- fix(ci): retain failed functional chain reports and check runners by @majinghe in https://github.com/rustfs/rustfs/pull/7906
- fix(ci): bound non-performance functional suites to one hour by @majinghe in https://github.com/rustfs/rustfs/pull/7911
- ci(build): run linux build lanes on sm-standard-4 runners by @majinghe in https://github.com/rustfs/rustfs/pull/7917
- fix(ecstore): admit transformed small objects inline by plaintext size by @reatang in https://github.com/rustfs/rustfs/pull/7916
- ci(chain): stop gating all suites on the performance runner by @majinghe in https://github.com/rustfs/rustfs/pull/7924
- perf(rustfs): skip redundant content-sha256 pass on signed PUTs by @reatang in https://github.com/rustfs/rustfs/pull/7928
- ci: register the fault-tolerance suite workflow on the default branch by @majinghe in https://github.com/rustfs/rustfs/pull/7929
- chore(release): merge release into main after 1.0.0 by @overtrue in https://github.com/rustfs/rustfs/pull/7935
- fix(ecstore): keep decommission multipart on reserved target by @cxymds in https://github.com/rustfs/rustfs/pull/7937
- fix(heal): match legacy null version during replacement readback by @cxymds in https://github.com/rustfs/rustfs/pull/7933
- fix(heal): certify metadata health and marker repair receipts by @cxymds in https://github.com/rustfs/rustfs/pull/7932
- ci(ft): upload the fault-tolerance report to the dashboard by @majinghe in https://github.com/rustfs/rustfs/pull/7939
- ci: drop dead references to the deleted release branch by @overtrue in https://github.com/rustfs/rustfs/pull/7945
- build(deps): update dependency versions by @houseme in https://github.com/rustfs/rustfs/pull/7942
- perf(s3select): accelerate ScanRange record scanning by @GatewayJ in https://github.com/rustfs/rustfs/pull/7934
- fix(ci): bound the fault-tolerance dashboard upload step by @overtrue in https://github.com/rustfs/rustfs/pull/7948
- chore(release): prepare 1.0.1 by @overtrue in https://github.com/rustfs/rustfs/pull/7946
- fix(ecstore): forward quota admission on CopyObject destination writes by @overtrue in https://github.com/rustfs/rustfs/pull/7947
- feat(tables): support staged table creation by @GatewayJ in https://github.com/rustfs/rustfs/pull/7919
- refactor(obs): depend on dial9 crate by @houseme in https://github.com/rustfs/rustfs/pull/7949
- fix(ecstore): reuse metadata read guards during writes by @jkossis in https://github.com/rustfs/rustfs/pull/7941
- fix(ilm): keep expiry pending gauge balanced and drain overwrite tails by @overtrue in https://github.com/rustfs/rustfs/pull/7944
- fix(ecstore): keep the single-block bound on every inline candidate by @overtrue in https://github.com/rustfs/rustfs/pull/7954
- Allow 127.0.0.0/8 as loopback addresses for binding by @aredridel in https://github.com/rustfs/rustfs/pull/7943
- fix(ecstore): hide and reclaim ancestors of delete residue in prefix listings by @overtrue in https://github.com/rustfs/rustfs/pull/7955
- fix(readiness): smooth pool metadata timeout flaps by @houseme in https://github.com/rustfs/rustfs/pull/7956
- fix(heal): prevent MRF starvation of integrity repairs by @houseme in https://github.com/rustfs/rustfs/pull/7963
- fix(lock): contain slow peer RPC admission storms by @houseme in https://github.com/rustfs/rustfs/pull/7970
- fix(rebalance): defer retryable source cleanup failures by @cxymds in https://github.com/rustfs/rustfs/pull/7977
- feat(release): add workspace cargo publish tooling by @houseme in https://github.com/rustfs/rustfs/pull/7973
- fix(ci): reject incomplete fault-tolerance runs by @GatewayJ in https://github.com/rustfs/rustfs/pull/7961
- feat(helm): add ingress support for both console and endpoint by @kokorousaki in https://github.com/rustfs/rustfs/pull/7972
- ci(performance): move the performance suite to its own concurrency group by @majinghe in https://github.com/rustfs/rustfs/pull/7984
- fix(decommission): keep scanner backlog handoff conflicts recoverable by @cxymds in https://github.com/rustfs/rustfs/pull/7979
- fix(notify): validate bucket notification config before saving by @cxymds in https://github.com/rustfs/rustfs/pull/7980
- ci(performance): drop stale shared-lock comment from the performance workflow by @overtrue in https://github.com/rustfs/rustfs/pull/7987
- fix(scanner): resume and persist checkpoints across leader handoff by @houseme in https://github.com/rustfs/rustfs/pull/7982
- build(deps): refresh workspace dependencies by @houseme in https://github.com/rustfs/rustfs/pull/7986
- fix(ecstore): preserve vectored bitrot writes by @houseme in https://github.com/rustfs/rustfs/pull/7981
- fix(helm): default the ingress backend port and refresh the nix cli hashes by @overtrue in https://github.com/rustfs/rustfs/pull/7990
- build(deps): bump dial9 to 0.5.1 by @houseme in https://github.com/rustfs/rustfs/pull/7991
- fix(replication): harden delete marker HEAD convergence by @houseme in https://github.com/rustfs/rustfs/pull/7993
- docs(operations): add cluster and erasure-coding lifecycle runbook by @overtrue in https://github.com/rustfs/rustfs/pull/7998
- fix(heal): fail admin heal with unhealthy drives by @cxymds in https://github.com/rustfs/rustfs/pull/7996
- fix(ecstore): preserve bounded listing completion reason by @houseme in https://github.com/rustfs/rustfs/pull/7994
- fix(heal): discharge absent durable partial writes by @houseme in https://github.com/rustfs/rustfs/pull/8000
- feat: expose subscriptions used by event destinations by @cxymds in https://github.com/rustfs/rustfs/pull/8001
- fix(tier): model R2 as unversioned storage by @cxymds in https://github.com/rustfs/rustfs/pull/8004
- fix(ecstore): repair buckets left with only an incarnation sidecar by @overtrue in https://github.com/rustfs/rustfs/pull/8008
- fix(heal): inspect stale members during deep scans by @cxymds in https://github.com/rustfs/rustfs/pull/8009
- fix(tier): gate opaque version recovery cleanup by @cxymds in https://github.com/rustfs/rustfs/pull/8006
- fix(release): sort pre-release packages below their final release by @overtrue in https://github.com/rustfs/rustfs/pull/8016
- fix(ecstore): retry fleet capability probe while the notification system boots by @overtrue in https://github.com/rustfs/rustfs/pull/8017
- fix(heal): close tail-truncation and stale current-marker gaps by @cxymds in https://github.com/rustfs/rustfs/pull/8019
- fix: serialize notify runtime module switch reconciliation by @cxymds in https://github.com/rustfs/rustfs/pull/8020
- fix(scanner): protect single-disk foreground latency by @houseme in https://github.com/rustfs/rustfs/pull/8022
- test(heal): cover stale current delete marker rejoin by @cxymds in https://github.com/rustfs/rustfs/pull/8021
- fix(package): preserve service state across upgrades by @majinghe in https://github.com/rustfs/rustfs/pull/8024
- ci(chain): fall back to auto-testing main HEAD when the pinned harness goes stale by @majinghe in https://github.com/rustfs/rustfs/pull/8026
- fix(ecstore): allow server-side copy at normal read quorum by @overtrue in https://github.com/rustfs/rustfs/pull/8029
- fix(get): skip futile resume for single-disk objects by @houseme in https://github.com/rustfs/rustfs/pull/8031
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/8033
- docs(security): add encrypted ETag advisory lesson by @overtrue in https://github.com/rustfs/rustfs/pull/8040
- ci(docker): sync the Docker Hub overview from README.md on release by @Marukome0743 in https://github.com/rustfs/rustfs/pull/8034
- @aredridel made their first contribution in https://github.com/rustfs/rustfs/pull/7943
- @kokorousaki made their first contribution in https://github.com/rustfs/rustfs/pull/7972
- @Marukome0743 made their first contribution in https://github.com/rustfs/rustfs/pull/8034
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0...1.0.1-preview.8
Release v3.4.1
LoongCollector v3.4.1 是继 v3.3.5 之后的功能与稳定性版本,覆盖约 48 个提交。本版本重点增强 LLM 可观测(AgentSight)、eBPF CPU Profiling、原生/Go 混合流水线 与 自监控闭环,并修复一批文件采集、Checkpoint、Kubernetes 与安全相关问题。
完整提交与 PR 列表见:v3.3.5...v3.4.1
升级前请确认运行环境满足以下要求:
- 源码构建要求 Go 1.25.9+。
- 容器运行时必须提供 CRI v1,建议使用 containerd 1.6+;不再兼容 CRI v1alpha2。
- Docker 客户端升级后,Docker Engine 最低要求为 19.03+(Docker API 1.40+)。Docker Engine 18.09 及更早版本不再兼容。
- 新增并持续增强 eBPF AgentSight 输入插件,用于采集 LLM / Agent 流量(会话增量、step/sequence、工具调用等)。
- 支持 DashScope 等域名识别、不可解析流量回退为 Raw HTTP,以及
tool_call名称保留。 - 优化 input messages delta / 哈希口径,避免 system prompt 抖动导致增量失效。
- 集成 coolbpf CPU Profiling,支持进程/容器发现、多配置、采集间隔与自定义应用名等能力。
- 支持将自监控数据发送到 Go Pipeline,并补齐 Go↔C++ 自监控 Protobuf 推送/接收协议。
- 新增一次性采集插件
input_internal_agent_logs_onetime,便于导出 Agent 自身日志。 - 原生 Input 默认允许与 Go 插件组合;补齐原生 Input 事件类型注册、v2 插件
PassThroughEvents,以及 Extended Flusher 的FlusherV2.Export。
input_fileWHOLE_FILE 覆盖写检测与按行/字符边界的分块输出。service_syslog支持自动配置 rsyslog 转发(AutoConfigRsyslog),实现开箱即用的主机 syslog 采集。- 新增
working_interface,用于指定主机 IP 解析网卡。 - Prometheus 插件支持 Windows;OTel Proto JSON 反序列化忽略未知字段。
- 构建/发布脚本识别 riscv64。
- 安全:升级 Go 1.25.9+ 及一批存在漏洞的依赖(含 gRPC
CVE-2026-84304等),修复 OSV 扫描问题。 - 稳定性:启动时安装 OpenSSL 线程锁回调,避免旧版 OpenSSL 多线程 SSL 场景崩溃。
- Kubernetes / 容器:修复大规模集群剧烈变更时的 k8s-meta 内存泄漏;修复 Pod 重建后静态容器 K8s label 陈旧 的问题。
- 文件采集 / Checkpoint:修复 dump 轮次误清 pending checkpoint、dump key 冲突导致活跃文件 checkpoint 丢失;配置目录扫描错误码与不完整 diff 处理更稳健。
- 指标与发送:热更后 reader 指标 gauge 不再掉零;SLS Flusher 跳过空 package list;Prometheus 启动 IP 回退链与 loopback 绑定修复。
- 其他:时间解析
timeStrCache不再被未匹配尾缀污染;ICMP RTT 精度提升;Windows ETW session 清理与命名加固;VM relabel 空指针、神农 profile 后缀匹配等边界问题。
| Filename | OS | Arch | SHA256 Checksum |
|---|---|---|---|
| loongcollector-3.4.1.linux-amd64.tar.gz | Linux | x86-64 | loongcollector-3.4.1.linux-amd64.tar.gz.sha256 |
| loongcollector-3.4.1.linux-arm64.tar.gz | Linux | arm64 | loongcollector-3.4.1.linux-arm64.tar.gz.sha256 |
| loongcollector-3.4.1.windows-amd64.zip | Windows | x86-64 | loongcollector-3.4.1.windows-amd64.zip.sha256 |
拉取命令
docker pull sls-opensource-registry.cn-shanghai.cr.aliyuncs.com/loongcollector-community-edition/loongcollector:3.4.1
docker pull ghcr.io/alibaba/loongcollector:3.4.1
docker pull ghcr.io/alibaba/loongcollector:latest
镜像标签
sls-opensource-registry.cn-shanghai.cr.aliyuncs.com/loongcollector-community-edition/loongcollector:3.4.1ghcr.io/alibaba/loongcollector:3.4.1ghcr.io/alibaba/loongcollector:latest
- @Snssn made their first contribution in https://github.com/alibaba/loongcollector/pull/2557
- @MrZhangL made their first contribution in https://github.com/alibaba/loongcollector/pull/2592
- @carlosqwqqwq made their first contribution in https://github.com/alibaba/loongcollector/pull/2591
- @byteharbor27 made their first contribution in https://github.com/alibaba/loongcollector/pull/2674
- @EvanLjp made their first contribution in https://github.com/alibaba/loongcollector/pull/2668
RustFS 1.0.1-preview.7 (preview)
- feat(nightly): publish packages as assets of the rolling 'nightly' release (sync from release) by @majinghe in https://github.com/rustfs/rustfs/pull/7593
- fix(ecstore): stop pruning at nonempty directories by @marshawcoco in https://github.com/rustfs/rustfs/pull/7616
- fix(replication): close the pre-stable convergence gaps from backlog#2367 by @reatang in https://github.com/rustfs/rustfs/pull/7626
- feat(console): support a configurable console URL prefix by @overtrue in https://github.com/rustfs/rustfs/pull/7634
- chore(release): merge release into main for rc.6 by @overtrue in https://github.com/rustfs/rustfs/pull/7638
- feat: configure the console base path at build time by @cxymds in https://github.com/rustfs/rustfs/pull/7636
- chore(release): prepare 1.0.0-rc.6 by @overtrue in https://github.com/rustfs/rustfs/pull/7641
- fix(heal): preserve retryable batch failures during recovery by @overtrue in https://github.com/rustfs/rustfs/pull/7642
- fix(s3): reject oversize single PUT early and map body errors to 4xx by @reatang in https://github.com/rustfs/rustfs/pull/7635
- fix(ecstore): make directory mtime fixture portable by @marshawcoco in https://github.com/rustfs/rustfs/pull/7623
- fix(storage): prevent readiness after native migration failures by @rjregenold in https://github.com/rustfs/rustfs/pull/7652
- fix(admin): expose OIDC account display fields by @GatewayJ in https://github.com/rustfs/rustfs/pull/7654
- fix(replication): correct peer joins and remote-state reporting by @jkossis in https://github.com/rustfs/rustfs/pull/7650
- feat(ci): add fault-tolerance degradation suite to the functional chain by @majinghe in https://github.com/rustfs/rustfs/pull/7663
- fix(ci): repair functional defaults and chain regression checks by @overtrue in https://github.com/rustfs/rustfs/pull/7664
- "feat(ci): add fault-tolerance degradation suite to the functional chain" by @majinghe in https://github.com/rustfs/rustfs/pull/7667
- fix(ci): align security workflow tests with chain by @cxymds in https://github.com/rustfs/rustfs/pull/7679
- test(kms): cover non-default Vault Transit paths by @hkwi in https://github.com/rustfs/rustfs/pull/7657
- fix(s3): bound stalled UploadPart request bodies by @cxymds in https://github.com/rustfs/rustfs/pull/7659
- fix: enforce S3 permissions for recursive force deletion by @cxymds in https://github.com/rustfs/rustfs/pull/7661
- fix(tables): reject reserved warehouse locations by @GatewayJ in https://github.com/rustfs/rustfs/pull/7671
- fix(e2e): require a verified server binary for every e2e run by @overtrue in https://github.com/rustfs/rustfs/pull/7687
- fix(ci): bind nightly lanes to one resolved source by @overtrue in https://github.com/rustfs/rustfs/pull/7688
- feat(ci): measure queue and execution time by run attempt by @overtrue in https://github.com/rustfs/rustfs/pull/7689
- fix(ci): verify complete functional chain evidence by @overtrue in https://github.com/rustfs/rustfs/pull/7690
- fix(kms): classify KMS/SSE error contracts and SSE-S3 headers by @reatang in https://github.com/rustfs/rustfs/pull/7697
- Collect bounded Connect environment inventory by @overtrue in https://github.com/rustfs/rustfs/pull/7710
- Add Connect service license commands by @overtrue in https://github.com/rustfs/rustfs/pull/7711
- Add consent-bound diagnostic scheduling by @overtrue in https://github.com/rustfs/rustfs/pull/7713
- feat(connect): advertise environment diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7714
- feat(connect): add consent-bound profile exports by @overtrue in https://github.com/rustfs/rustfs/pull/7716
- feat(connect): add bounded local log capture by @overtrue in https://github.com/rustfs/rustfs/pull/7718
- feat(connect): add bounded network performance producer by @overtrue in https://github.com/rustfs/rustfs/pull/7719
- Add bounded local telemetry export commands by @overtrue in https://github.com/rustfs/rustfs/pull/7720
- Add bounded drive performance command by @overtrue in https://github.com/rustfs/rustfs/pull/7721
- Add bounded top diagnostic captures by @overtrue in https://github.com/rustfs/rustfs/pull/7722
- Add client-to-deployment performance diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7726
- Add a local environment inventory command by @overtrue in https://github.com/rustfs/rustfs/pull/7728
- feat(connect): add bounded object performance diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7734
- Add authenticated inter-node network performance probes by @overtrue in https://github.com/rustfs/rustfs/pull/7739
- fix(site-replication): keep an operator's bucket-level target to a peer instead of taking it over by @reatang in https://github.com/rustfs/rustfs/pull/7709
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/7733
- feat(connect): support explicit enterprise proxies by @overtrue in https://github.com/rustfs/rustfs/pull/7745
- feat(connect): emit drive unavailable log events by @overtrue in https://github.com/rustfs/rustfs/pull/7747
- feat(connect): add local inspect export producer by @overtrue in https://github.com/rustfs/rustfs/pull/7750
- test(connect): cover nested allocator profile stats by @overtrue in https://github.com/rustfs/rustfs/pull/7717
- docs(security): add presigned copy advisory lesson by @overtrue in https://github.com/rustfs/rustfs/pull/7754
- fix(ecstore): refuse RMW and reads of unreadable bucket configs by @overtrue in https://github.com/rustfs/rustfs/pull/7759
- refactor(filemeta): own persisted metadata key authority by @overtrue in https://github.com/rustfs/rustfs/pull/7760
- Sync network performance protocol fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7761
- Sync site replication result fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7762
- Sync telemetry producer fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7763
- refactor(rio): own trailer source and drop s3s dependency by @overtrue in https://github.com/rustfs/rustfs/pull/7764
- Deliver diagnostic scheduler receipts to Connect by @overtrue in https://github.com/rustfs/rustfs/pull/7767
- fix(ecstore): refuse writes on unreadable bucket configs with 503 by @overtrue in https://github.com/rustfs/rustfs/pull/7768
- feat(connect): add site replication performance producer by @overtrue in https://github.com/rustfs/rustfs/pull/7769
- refactor(ecstore): read persisted object-metadata keys from the filemeta authority (A3b) by @overtrue in https://github.com/rustfs/rustfs/pull/7770
- feat(connect): add device license renewal client by @overtrue in https://github.com/rustfs/rustfs/pull/7771
- feat(connect): add approved artifact relay by @overtrue in https://github.com/rustfs/rustfs/pull/7772
- fix(connect): export relay CLI types by @overtrue in https://github.com/rustfs/rustfs/pull/7773
- feat(connect): add device report upload client by @overtrue in https://github.com/rustfs/rustfs/pull/7774
- feat(connect): add typed telemetry trace source by @overtrue in https://github.com/rustfs/rustfs/pull/7775
- fix(connect): avoid shadowing replication URL helper by @overtrue in https://github.com/rustfs/rustfs/pull/7777
- fix(connect): restore site replication test nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7778
- fix(connect): restore rustfs build after site replication perf producer by @overtrue in https://github.com/rustfs/rustfs/pull/7779
- fix(rustfs): restore test compilation by @overtrue in https://github.com/rustfs/rustfs/pull/7780
- feat(connect): sign site replication target pair by @overtrue in https://github.com/rustfs/rustfs/pull/7781
- refactor(filemeta): own RestoreStatus and drop the s3s dependency (A3c) by @overtrue in https://github.com/rustfs/rustfs/pull/7782
- feat(connect): add service license relay import by @overtrue in https://github.com/rustfs/rustfs/pull/7784
- feat(admin): add a gateway key inventory for the S3 stack switch by @overtrue in https://github.com/rustfs/rustfs/pull/7785
- feat(server): add RUSTFS_S3_STACK with a gateway GetBucketLocation path by @overtrue in https://github.com/rustfs/rustfs/pull/7786
- revert: remove M1 gateway git dependency until CI can access rustfs/gateway by @overtrue in https://github.com/rustfs/rustfs/pull/7787
- fix: retry IAM migration quorum failures on startup by @overtrue in https://github.com/rustfs/rustfs/pull/7788
- fix: retry interrupted uploads through proxies by @overtrue in https://github.com/rustfs/rustfs/pull/7789
- fix(connect): capture telemetry from server runtime by @overtrue in https://github.com/rustfs/rustfs/pull/7790
- fix: classify explicit proxy failures by @overtrue in https://github.com/rustfs/rustfs/pull/7791
- fix: skip IAM migration when legacy volume is absent by @overtrue in https://github.com/rustfs/rustfs/pull/7792
- fix(release): include CLI in Linux artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7794
- fix(release): serialize Linux binary links by @overtrue in https://github.com/rustfs/rustfs/pull/7797
- feat(connect): expose live lock count snapshots by @overtrue in https://github.com/rustfs/rustfs/pull/7801
- feat(connect): capture live API activity by @overtrue in https://github.com/rustfs/rustfs/pull/7804
- feat(connect): collect native Linux thread states by @overtrue in https://github.com/rustfs/rustfs/pull/7806
- feat(connect): capture live RPC activity by @overtrue in https://github.com/rustfs/rustfs/pull/7807
- test(connect): verify top.disk release artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7808
- test(connect): require native top.disk runner by @overtrue in https://github.com/rustfs/rustfs/pull/7809
- feat(connect): capture bounded local CPU profiles by @overtrue in https://github.com/rustfs/rustfs/pull/7811
- ci: retain top disk acceptance archive by @overtrue in https://github.com/rustfs/rustfs/pull/7812
- fix(connect): observe host traffic in top net by @overtrue in https://github.com/rustfs/rustfs/pull/7814
- ci: enable CPU profiling in supported release builds by @overtrue in https://github.com/rustfs/rustfs/pull/7815
- test(connect): verify profile cpu release artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7818
- test(connect): retain CPU profile verification key by @overtrue in https://github.com/rustfs/rustfs/pull/7819
- test(connect): retain CPU profile import bundle by @overtrue in https://github.com/rustfs/rustfs/pull/7820
- feat(connect): expose object inspect CLI by @overtrue in https://github.com/rustfs/rustfs/pull/7821
- feat(connect): wrap diagnostic reports for upload by @overtrue in https://github.com/rustfs/rustfs/pull/7822
- fix(connect): parse inspect paths as paths by @overtrue in https://github.com/rustfs/rustfs/pull/7826
- feat(connect): verify typed diagnostic jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7827
- fix(connect): accept KMS report upload authorization by @overtrue in https://github.com/rustfs/rustfs/pull/7828
- Run signed diagnostic jobs in the RustFS service by @overtrue in https://github.com/rustfs/rustfs/pull/7829
- fix(connect): emit canonical report manifest time by @overtrue in https://github.com/rustfs/rustfs/pull/7830
- Upload diagnostic job results through support bundles by @overtrue in https://github.com/rustfs/rustfs/pull/7831
- fix(connect): emit canonical top envelope time by @overtrue in https://github.com/rustfs/rustfs/pull/7836
- fix(connect): publish diagnostic producer capabilities by @overtrue in https://github.com/rustfs/rustfs/pull/7837
- fix(io-metrics): drop the rustfs-common edge by injecting the S3 telemetry observer by @overtrue in https://github.com/rustfs/rustfs/pull/7795
- fix(replication): count a bodiless 405 as a replicated delete marker by @reatang in https://github.com/rustfs/rustfs/pull/7756
- fix(kms): refuse key ids that leave the key prefix on the Vault backends by @reatang in https://github.com/rustfs/rustfs/pull/7727
- Preserve safe profile job failure reasons by @overtrue in https://github.com/rustfs/rustfs/pull/7860
- Freeze the heartbeat producer capability registry by @overtrue in https://github.com/rustfs/rustfs/pull/7861
- fix: resume GET body after peer short EOF by @houseme in https://github.com/rustfs/rustfs/pull/7852
- ci: file scheduled-failure issues in rustfs/backlog by @majinghe in https://github.com/rustfs/rustfs/pull/7847
- fix(admin): keep the gateway key inventory off the s3s surface by @overtrue in https://github.com/rustfs/rustfs/pull/7817
- fix(s3): honor presigned UploadPart checksum queries by @overtrue in https://github.com/rustfs/rustfs/pull/7748
- fix(auth): reject unsigned x-amz headers on header-signed SigV4 requests by @overtrue in https://github.com/rustfs/rustfs/pull/7796
- fix(table-catalog): map transient lock failures to unavailable by @marshawcoco in https://github.com/rustfs/rustfs/pull/7841
- Verify profile service jobs on native Linux by @overtrue in https://github.com/rustfs/rustfs/pull/7862
- Authorize the private Connect acceptance checkout by @overtrue in https://github.com/rustfs/rustfs/pull/7863
- Run profile service acceptance directly by @overtrue in https://github.com/rustfs/rustfs/pull/7864
- Retain profile service failure evidence by @overtrue in https://github.com/rustfs/rustfs/pull/7868
- fix: update dependencies and preserve transport errors by @dependabot[bot] in https://github.com/rustfs/rustfs/pull/7798
- ci: expect BACKLOG_ISSUE_TOKEN in scheduled alert wiring checks by @majinghe in https://github.com/rustfs/rustfs/pull/7867
- Pace diagnostic job result redelivery by @overtrue in https://github.com/rustfs/rustfs/pull/7869
- Execute authenticated top.api service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7872
- feat(connect): execute top.locks service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7874
- fix(ci): gate Connect acceptance on x86 build job by @overtrue in https://github.com/rustfs/rustfs/pull/7875
- fix(ci): repair E2E inventory and network CLI coverage by @overtrue in https://github.com/rustfs/rustfs/pull/7871
- feat(connect): execute performance network jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7877
- feat(connect): execute bounded drive performance jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7878
- Preserve the top API service job nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7879
- feat(connect): execute thread profile service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7880
- Execute authenticated top.rpc service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7881
- ci: add service diagnostic acceptance workflows by @overtrue in https://github.com/rustfs/rustfs/pull/7882
- ci: add threads and RPC acceptance workflows by @overtrue in https://github.com/rustfs/rustfs/pull/7883
- fix(connect): deliver diagnostic results until expiry by @overtrue in https://github.com/rustfs/rustfs/pull/7886
- feat(connect): export signed environment inventory by @overtrue in https://github.com/rustfs/rustfs/pull/7887
- fix: recover interrupted GETs and heal operations by @overtrue in https://github.com/rustfs/rustfs/pull/7876
- fix: keep top locks within its capture window by @overtrue in https://github.com/rustfs/rustfs/pull/7888
- fix: recover heal after peer boot epoch changes by @overtrue in https://github.com/rustfs/rustfs/pull/7889
- ci: register the table suite workflow on the default branch by @majinghe in https://github.com/rustfs/rustfs/pull/7893
- test(ecstore): synchronize causal cleanup observations by @overtrue in https://github.com/rustfs/rustfs/pull/7894
- fix(ecstore): create markers for repeated versioned deletes by @GatewayJ in https://github.com/rustfs/rustfs/pull/7884
- Preserve top.locks signed job nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7898
- fix(ecstore): roll back failed delete marker writes by @overtrue in https://github.com/rustfs/rustfs/pull/7899
- chore(deps): refresh RustFS tokio tar dependency by @houseme in https://github.com/rustfs/rustfs/pull/7907
- fix(ci): retain failed functional chain reports and check runners by @majinghe in https://github.com/rustfs/rustfs/pull/7906
- fix(ci): bound non-performance functional suites to one hour by @majinghe in https://github.com/rustfs/rustfs/pull/7911
- ci(build): run linux build lanes on sm-standard-4 runners by @majinghe in https://github.com/rustfs/rustfs/pull/7917
- fix(ecstore): admit transformed small objects inline by plaintext size by @reatang in https://github.com/rustfs/rustfs/pull/7916
- ci(chain): stop gating all suites on the performance runner by @majinghe in https://github.com/rustfs/rustfs/pull/7924
- perf(rustfs): skip redundant content-sha256 pass on signed PUTs by @reatang in https://github.com/rustfs/rustfs/pull/7928
- ci: register the fault-tolerance suite workflow on the default branch by @majinghe in https://github.com/rustfs/rustfs/pull/7929
- chore(release): merge release into main after 1.0.0 by @overtrue in https://github.com/rustfs/rustfs/pull/7935
- fix(ecstore): keep decommission multipart on reserved target by @cxymds in https://github.com/rustfs/rustfs/pull/7937
- fix(heal): match legacy null version during replacement readback by @cxymds in https://github.com/rustfs/rustfs/pull/7933
- fix(heal): certify metadata health and marker repair receipts by @cxymds in https://github.com/rustfs/rustfs/pull/7932
- ci(ft): upload the fault-tolerance report to the dashboard by @majinghe in https://github.com/rustfs/rustfs/pull/7939
- ci: drop dead references to the deleted release branch by @overtrue in https://github.com/rustfs/rustfs/pull/7945
- build(deps): update dependency versions by @houseme in https://github.com/rustfs/rustfs/pull/7942
- perf(s3select): accelerate ScanRange record scanning by @GatewayJ in https://github.com/rustfs/rustfs/pull/7934
- fix(ci): bound the fault-tolerance dashboard upload step by @overtrue in https://github.com/rustfs/rustfs/pull/7948
- chore(release): prepare 1.0.1 by @overtrue in https://github.com/rustfs/rustfs/pull/7946
- fix(ecstore): forward quota admission on CopyObject destination writes by @overtrue in https://github.com/rustfs/rustfs/pull/7947
- feat(tables): support staged table creation by @GatewayJ in https://github.com/rustfs/rustfs/pull/7919
- refactor(obs): depend on dial9 crate by @houseme in https://github.com/rustfs/rustfs/pull/7949
- fix(ecstore): reuse metadata read guards during writes by @jkossis in https://github.com/rustfs/rustfs/pull/7941
- fix(ilm): keep expiry pending gauge balanced and drain overwrite tails by @overtrue in https://github.com/rustfs/rustfs/pull/7944
- fix(ecstore): keep the single-block bound on every inline candidate by @overtrue in https://github.com/rustfs/rustfs/pull/7954
- Allow 127.0.0.0/8 as loopback addresses for binding by @aredridel in https://github.com/rustfs/rustfs/pull/7943
- fix(ecstore): hide and reclaim ancestors of delete residue in prefix listings by @overtrue in https://github.com/rustfs/rustfs/pull/7955
- fix(readiness): smooth pool metadata timeout flaps by @houseme in https://github.com/rustfs/rustfs/pull/7956
- fix(heal): prevent MRF starvation of integrity repairs by @houseme in https://github.com/rustfs/rustfs/pull/7963
- fix(lock): contain slow peer RPC admission storms by @houseme in https://github.com/rustfs/rustfs/pull/7970
- fix(rebalance): defer retryable source cleanup failures by @cxymds in https://github.com/rustfs/rustfs/pull/7977
- feat(release): add workspace cargo publish tooling by @houseme in https://github.com/rustfs/rustfs/pull/7973
- fix(ci): reject incomplete fault-tolerance runs by @GatewayJ in https://github.com/rustfs/rustfs/pull/7961
- feat(helm): add ingress support for both console and endpoint by @kokorousaki in https://github.com/rustfs/rustfs/pull/7972
- ci(performance): move the performance suite to its own concurrency group by @majinghe in https://github.com/rustfs/rustfs/pull/7984
- fix(decommission): keep scanner backlog handoff conflicts recoverable by @cxymds in https://github.com/rustfs/rustfs/pull/7979
- fix(notify): validate bucket notification config before saving by @cxymds in https://github.com/rustfs/rustfs/pull/7980
- ci(performance): drop stale shared-lock comment from the performance workflow by @overtrue in https://github.com/rustfs/rustfs/pull/7987
- fix(scanner): resume and persist checkpoints across leader handoff by @houseme in https://github.com/rustfs/rustfs/pull/7982
- build(deps): refresh workspace dependencies by @houseme in https://github.com/rustfs/rustfs/pull/7986
- fix(ecstore): preserve vectored bitrot writes by @houseme in https://github.com/rustfs/rustfs/pull/7981
- fix(helm): default the ingress backend port and refresh the nix cli hashes by @overtrue in https://github.com/rustfs/rustfs/pull/7990
- build(deps): bump dial9 to 0.5.1 by @houseme in https://github.com/rustfs/rustfs/pull/7991
- fix(replication): harden delete marker HEAD convergence by @houseme in https://github.com/rustfs/rustfs/pull/7993
- docs(operations): add cluster and erasure-coding lifecycle runbook by @overtrue in https://github.com/rustfs/rustfs/pull/7998
- fix(heal): fail admin heal with unhealthy drives by @cxymds in https://github.com/rustfs/rustfs/pull/7996
- fix(ecstore): preserve bounded listing completion reason by @houseme in https://github.com/rustfs/rustfs/pull/7994
- fix(heal): discharge absent durable partial writes by @houseme in https://github.com/rustfs/rustfs/pull/8000
- feat: expose subscriptions used by event destinations by @cxymds in https://github.com/rustfs/rustfs/pull/8001
- fix(tier): model R2 as unversioned storage by @cxymds in https://github.com/rustfs/rustfs/pull/8004
- fix(ecstore): repair buckets left with only an incarnation sidecar by @overtrue in https://github.com/rustfs/rustfs/pull/8008
- fix(heal): inspect stale members during deep scans by @cxymds in https://github.com/rustfs/rustfs/pull/8009
- fix(tier): gate opaque version recovery cleanup by @cxymds in https://github.com/rustfs/rustfs/pull/8006
- fix(release): sort pre-release packages below their final release by @overtrue in https://github.com/rustfs/rustfs/pull/8016
- fix(ecstore): retry fleet capability probe while the notification system boots by @overtrue in https://github.com/rustfs/rustfs/pull/8017
- fix(heal): close tail-truncation and stale current-marker gaps by @cxymds in https://github.com/rustfs/rustfs/pull/8019
- fix: serialize notify runtime module switch reconciliation by @cxymds in https://github.com/rustfs/rustfs/pull/8020
- fix(scanner): protect single-disk foreground latency by @houseme in https://github.com/rustfs/rustfs/pull/8022
- test(heal): cover stale current delete marker rejoin by @cxymds in https://github.com/rustfs/rustfs/pull/8021
- @aredridel made their first contribution in https://github.com/rustfs/rustfs/pull/7943
- @kokorousaki made their first contribution in https://github.com/rustfs/rustfs/pull/7972
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0...1.0.1-preview.7