What's Changed
- feat(nightly): publish packages as assets of the rolling 'nightly' release (sync from release) by @majinghe in #7593
- fix(ecstore): stop pruning at nonempty directories by @marshawcoco in #7616
- fix(replication): close the pre-stable convergence gaps from backlog#2367 by @reatang in #7626
- feat(console): support a configurable console URL prefix by @overtrue in #7634
- chore(release): merge release into main for rc.6 by @overtrue in #7638
- feat: configure the console base path at build time by @cxymds in #7636
- chore(release): prepare 1.0.0-rc.6 by @overtrue in #7641
- fix(heal): preserve retryable batch failures during recovery by @overtrue in #7642
- fix(s3): reject oversize single PUT early and map body errors to 4xx by @reatang in #7635
- fix(ecstore): make directory mtime fixture portable by @marshawcoco in #7623
- fix(storage): prevent readiness after native migration failures by @rjregenold in #7652
- fix(admin): expose OIDC account display fields by @GatewayJ in #7654
- fix(replication): correct peer joins and remote-state reporting by @jkossis in #7650
- feat(ci): add fault-tolerance degradation suite to the functional chain by @majinghe in #7663
- fix(ci): repair functional defaults and chain regression checks by @overtrue in #7664
- "feat(ci): add fault-tolerance degradation suite to the functional chain" by @majinghe in #7667
- fix(ci): align security workflow tests with chain by @cxymds in #7679
- test(kms): cover non-default Vault Transit paths by @hkwi in #7657
- fix(s3): bound stalled UploadPart request bodies by @cxymds in #7659
- fix: enforce S3 permissions for recursive force deletion by @cxymds in #7661
- fix(tables): reject reserved warehouse locations by @GatewayJ in #7671
- fix(e2e): require a verified server binary for every e2e run by @overtrue in #7687
- fix(ci): bind nightly lanes to one resolved source by @overtrue in #7688
- feat(ci): measure queue and execution time by run attempt by @overtrue in #7689
- fix(ci): verify complete functional chain evidence by @overtrue in #7690
- fix(kms): classify KMS/SSE error contracts and SSE-S3 headers by @reatang in #7697
- Collect bounded Connect environment inventory by @overtrue in #7710
- Add Connect service license commands by @overtrue in #7711
- Add consent-bound diagnostic scheduling by @overtrue in #7713
- feat(connect): advertise environment diagnostics by @overtrue in #7714
- feat(connect): add consent-bound profile exports by @overtrue in #7716
- feat(connect): add bounded local log capture by @overtrue in #7718
- feat(connect): add bounded network performance producer by @overtrue in #7719
- Add bounded local telemetry export commands by @overtrue in #7720
- Add bounded drive performance command by @overtrue in #7721
- Add bounded top diagnostic captures by @overtrue in #7722
- Add client-to-deployment performance diagnostics by @overtrue in #7726
- Add a local environment inventory command by @overtrue in #7728
- feat(connect): add bounded object performance diagnostics by @overtrue in #7734
- Add authenticated inter-node network performance probes by @overtrue in #7739
- fix(site-replication): keep an operator's bucket-level target to a peer instead of taking it over by @reatang in #7709
- chore(deps): update flake.lock by @houseme in #7733
- feat(connect): support explicit enterprise proxies by @overtrue in #7745
- feat(connect): emit drive unavailable log events by @overtrue in #7747
- feat(connect): add local inspect export producer by @overtrue in #7750
- test(connect): cover nested allocator profile stats by @overtrue in #7717
- docs(security): add presigned copy advisory lesson by @overtrue in #7754
- fix(ecstore): refuse RMW and reads of unreadable bucket configs by @overtrue in #7759
- refactor(filemeta): own persisted metadata key authority by @overtrue in #7760
- Sync network performance protocol fixtures by @overtrue in #7761
- Sync site replication result fixtures by @overtrue in #7762
- Sync telemetry producer fixtures by @overtrue in #7763
- refactor(rio): own trailer source and drop s3s dependency by @overtrue in #7764
- Deliver diagnostic scheduler receipts to Connect by @overtrue in #7767
- fix(ecstore): refuse writes on unreadable bucket configs with 503 by @overtrue in #7768
- feat(connect): add site replication performance producer by @overtrue in #7769
- refactor(ecstore): read persisted object-metadata keys from the filemeta authority (A3b) by @overtrue in #7770
- feat(connect): add device license renewal client by @overtrue in #7771
- feat(connect): add approved artifact relay by @overtrue in #7772
- fix(connect): export relay CLI types by @overtrue in #7773
- feat(connect): add device report upload client by @overtrue in #7774
- feat(connect): add typed telemetry trace source by @overtrue in #7775
- fix(connect): avoid shadowing replication URL helper by @overtrue in #7777
- fix(connect): restore site replication test nonce by @overtrue in #7778
- fix(connect): restore rustfs build after site replication perf producer by @overtrue in #7779
- fix(rustfs): restore test compilation by @overtrue in #7780
- feat(connect): sign site replication target pair by @overtrue in #7781
- refactor(filemeta): own RestoreStatus and drop the s3s dependency (A3c) by @overtrue in #7782
- feat(connect): add service license relay import by @overtrue in #7784
- feat(admin): add a gateway key inventory for the S3 stack switch by @overtrue in #7785
- feat(server): add RUSTFS_S3_STACK with a gateway GetBucketLocation path by @overtrue in #7786
- revert: remove M1 gateway git dependency until CI can access rustfs/gateway by @overtrue in #7787
- fix: retry IAM migration quorum failures on startup by @overtrue in #7788
- fix: retry interrupted uploads through proxies by @overtrue in #7789
- fix(connect): capture telemetry from server runtime by @overtrue in #7790
- fix: classify explicit proxy failures by @overtrue in #7791
- fix: skip IAM migration when legacy volume is absent by @overtrue in #7792
- fix(release): include CLI in Linux artifacts by @overtrue in #7794
- fix(release): serialize Linux binary links by @overtrue in #7797
- feat(connect): expose live lock count snapshots by @overtrue in #7801
- feat(connect): capture live API activity by @overtrue in #7804
- feat(connect): collect native Linux thread states by @overtrue in #7806
- feat(connect): capture live RPC activity by @overtrue in #7807
- test(connect): verify top.disk release artifacts by @overtrue in #7808
- test(connect): require native top.disk runner by @overtrue in #7809
- feat(connect): capture bounded local CPU profiles by @overtrue in #7811
- ci: retain top disk acceptance archive by @overtrue in #7812
- fix(connect): observe host traffic in top net by @overtrue in #7814
- ci: enable CPU profiling in supported release builds by @overtrue in #7815
- test(connect): verify profile cpu release artifacts by @overtrue in #7818
- test(connect): retain CPU profile verification key by @overtrue in #7819
- test(connect): retain CPU profile import bundle by @overtrue in #7820
- feat(connect): expose object inspect CLI by @overtrue in #7821
- feat(connect): wrap diagnostic reports for upload by @overtrue in #7822
- fix(connect): parse inspect paths as paths by @overtrue in #7826
- feat(connect): verify typed diagnostic jobs by @overtrue in #7827
- fix(connect): accept KMS report upload authorization by @overtrue in #7828
- Run signed diagnostic jobs in the RustFS service by @overtrue in #7829
- fix(connect): emit canonical report manifest time by @overtrue in #7830
- Upload diagnostic job results through support bundles by @overtrue in #7831
- fix(connect): emit canonical top envelope time by @overtrue in #7836
- fix(connect): publish diagnostic producer capabilities by @overtrue in #7837
- fix(io-metrics): drop the rustfs-common edge by injecting the S3 telemetry observer by @overtrue in #7795
- fix(replication): count a bodiless 405 as a replicated delete marker by @reatang in #7756
- fix(kms): refuse key ids that leave the key prefix on the Vault backends by @reatang in #7727
- Preserve safe profile job failure reasons by @overtrue in #7860
- Freeze the heartbeat producer capability registry by @overtrue in #7861
- fix: resume GET body after peer short EOF by @houseme in #7852
- ci: file scheduled-failure issues in rustfs/backlog by @majinghe in #7847
- fix(admin): keep the gateway key inventory off the s3s surface by @overtrue in #7817
- fix(s3): honor presigned UploadPart checksum queries by @overtrue in #7748
- fix(auth): reject unsigned x-amz headers on header-signed SigV4 requests by @overtrue in #7796
- fix(table-catalog): map transient lock failures to unavailable by @marshawcoco in #7841
- Verify profile service jobs on native Linux by @overtrue in #7862
- Authorize the private Connect acceptance checkout by @overtrue in #7863
- Run profile service acceptance directly by @overtrue in #7864
- Retain profile service failure evidence by @overtrue in #7868
- fix: update dependencies and preserve transport errors by @dependabot[bot] in #7798
- ci: expect BACKLOG_ISSUE_TOKEN in scheduled alert wiring checks by @majinghe in #7867
- Pace diagnostic job result redelivery by @overtrue in #7869
- Execute authenticated top.api service jobs by @overtrue in #7872
- feat(connect): execute top.locks service jobs by @overtrue in #7874
- fix(ci): gate Connect acceptance on x86 build job by @overtrue in #7875
- fix(ci): repair E2E inventory and network CLI coverage by @overtrue in #7871
- feat(connect): execute performance network jobs by @overtrue in #7877
- feat(connect): execute bounded drive performance jobs by @overtrue in #7878
- Preserve the top API service job nonce by @overtrue in #7879
- feat(connect): execute thread profile service jobs by @overtrue in #7880
- Execute authenticated top.rpc service jobs by @overtrue in #7881
- ci: add service diagnostic acceptance workflows by @overtrue in #7882
- ci: add threads and RPC acceptance workflows by @overtrue in #7883
- fix(connect): deliver diagnostic results until expiry by @overtrue in #7886
- feat(connect): export signed environment inventory by @overtrue in #7887
- fix: recover interrupted GETs and heal operations by @overtrue in #7876
- fix: keep top locks within its capture window by @overtrue in #7888
- fix: recover heal after peer boot epoch changes by @overtrue in #7889
- ci: register the table suite workflow on the default branch by @majinghe in #7893
- test(ecstore): synchronize causal cleanup observations by @overtrue in #7894
- fix(ecstore): create markers for repeated versioned deletes by @GatewayJ in #7884
- Preserve top.locks signed job nonce by @overtrue in #7898
- fix(ecstore): roll back failed delete marker writes by @overtrue in #7899
- chore(deps): refresh RustFS tokio tar dependency by @houseme in #7907
- fix(ci): retain failed functional chain reports and check runners by @majinghe in #7906
- fix(ci): bound non-performance functional suites to one hour by @majinghe in #7911
- ci(build): run linux build lanes on sm-standard-4 runners by @majinghe in #7917
- fix(ecstore): admit transformed small objects inline by plaintext size by @reatang in #7916
- ci(chain): stop gating all suites on the performance runner by @majinghe in #7924
- perf(rustfs): skip redundant content-sha256 pass on signed PUTs by @reatang in #7928
- ci: register the fault-tolerance suite workflow on the default branch by @majinghe in #7929
- chore(release): merge release into main after 1.0.0 by @overtrue in #7935
- fix(ecstore): keep decommission multipart on reserved target by @cxymds in #7937
- fix(heal): match legacy null version during replacement readback by @cxymds in #7933
- fix(heal): certify metadata health and marker repair receipts by @cxymds in #7932
- ci(ft): upload the fault-tolerance report to the dashboard by @majinghe in #7939
- ci: drop dead references to the deleted release branch by @overtrue in #7945
- build(deps): update dependency versions by @houseme in #7942
- perf(s3select): accelerate ScanRange record scanning by @GatewayJ in #7934
- fix(ci): bound the fault-tolerance dashboard upload step by @overtrue in #7948
- chore(release): prepare 1.0.1 by @overtrue in #7946
- fix(ecstore): forward quota admission on CopyObject destination writes by @overtrue in #7947
- feat(tables): support staged table creation by @GatewayJ in #7919
- refactor(obs): depend on dial9 crate by @houseme in #7949
- fix(ecstore): reuse metadata read guards during writes by @jkossis in #7941
- fix(ilm): keep expiry pending gauge balanced and drain overwrite tails by @overtrue in #7944
- fix(ecstore): keep the single-block bound on every inline candidate by @overtrue in #7954
- Allow 127.0.0.0/8 as loopback addresses for binding by @aredridel in #7943
- fix(ecstore): hide and reclaim ancestors of delete residue in prefix listings by @overtrue in #7955
- fix(readiness): smooth pool metadata timeout flaps by @houseme in #7956
- fix(heal): prevent MRF starvation of integrity repairs by @houseme in #7963
- fix(lock): contain slow peer RPC admission storms by @houseme in #7970
- fix(rebalance): defer retryable source cleanup failures by @cxymds in #7977
- feat(release): add workspace cargo publish tooling by @houseme in #7973
- fix(ci): reject incomplete fault-tolerance runs by @GatewayJ in #7961
- feat(helm): add ingress support for both console and endpoint by @kokorousaki in #7972
- ci(performance): move the performance suite to its own concurrency group by @majinghe in #7984
- fix(decommission): keep scanner backlog handoff conflicts recoverable by @cxymds in #7979
- fix(notify): validate bucket notification config before saving by @cxymds in #7980
- ci(performance): drop stale shared-lock comment from the performance workflow by @overtrue in #7987
- fix(scanner): resume and persist checkpoints across leader handoff by @houseme in #7982
- build(deps): refresh workspace dependencies by @houseme in #7986
- fix(ecstore): preserve vectored bitrot writes by @houseme in #7981
- fix(helm): default the ingress backend port and refresh the nix cli hashes by @overtrue in #7990
- build(deps): bump dial9 to 0.5.1 by @houseme in #7991
- fix(replication): harden delete marker HEAD convergence by @houseme in #7993
- docs(operations): add cluster and erasure-coding lifecycle runbook by @overtrue in #7998
- fix(heal): fail admin heal with unhealthy drives by @cxymds in #7996
- fix(ecstore): preserve bounded listing completion reason by @houseme in #7994
- fix(heal): discharge absent durable partial writes by @houseme in #8000
- feat: expose subscriptions used by event destinations by @cxymds in #8001
- fix(tier): model R2 as unversioned storage by @cxymds in #8004
- fix(ecstore): repair buckets left with only an incarnation sidecar by @overtrue in #8008
- fix(heal): inspect stale members during deep scans by @cxymds in #8009
- fix(tier): gate opaque version recovery cleanup by @cxymds in #8006
- fix(release): sort pre-release packages below their final release by @overtrue in #8016
- fix(ecstore): retry fleet capability probe while the notification system boots by @overtrue in #8017
- fix(heal): close tail-truncation and stale current-marker gaps by @cxymds in #8019
- fix: serialize notify runtime module switch reconciliation by @cxymds in #8020
- fix(scanner): protect single-disk foreground latency by @houseme in #8022
- test(heal): cover stale current delete marker rejoin by @cxymds in #8021
- fix(package): preserve service state across upgrades by @majinghe in #8024
- ci(chain): fall back to auto-testing main HEAD when the pinned harness goes stale by @majinghe in #8026
- fix(ecstore): allow server-side copy at normal read quorum by @overtrue in #8029
- fix(get): skip futile resume for single-disk objects by @houseme in #8031
- chore(deps): update flake.lock by @houseme in #8033
- docs(security): add encrypted ETag advisory lesson by @overtrue in #8040
- ci(docker): sync the Docker Hub overview from README.md on release by @Marukome0743 in #8034
- fix(heal): preserve remote corruption and reject incomplete deep scans by @cxymds in #8032
- fix(ci): give the chain staleness probe a token that can read auto-testing by @majinghe in #8041
- fix(heal): restore bucket metadata before replacement completion by @overtrue in #8042
- fix(decommission): use owned data for source capacity by @cxymds in #8038
- fix(lifecycle): reject empty expiration actions by @cxymds in #8045
- fix(obs): default span events to none and gate span list by level by @cxymds in #8047
- fix: rename admin metrics endpoint to realtime by @cxymds in #8046
- fix(rebalance): retry fleet proof before start activation by @cxymds in #8049
- fix(ci): align FT evidence contract with scenario E (44 cases) by @majinghe in #8052
- fix(ecstore): bound decommission capacity gate waits by @cxymds in #8044
- test(ci): align FT workflow contract tests with scenario E (44 cases) by @majinghe in #8054
- fix(ci): accept the testing-sha staleness fallback in chain evidence by @majinghe in #8056
- fix(s3): emit x-amz-expiration as HTTP-date by @cxymds in #8057
- fix(obs): support custom OTLP CA bundles by @houseme in #8060
- feat(ci): on-demand fault-tolerance matrix sweep workflow by @majinghe in #8058
- fix(ecstore): bound decommission target gate contention by @cxymds in #8061
- feat(integrity): add inventory, audit, and protected migration by @cxymds in #8065
- fix(ftps): bound upload memory with multipart streaming by @bolero2 in #8064
- fix(amqp): emit S3 events directly in notification records by @bolero2 in #8066
- fix(ci): publish version-tagged preview Docker images by @overtrue in #8068
- fix(heal): preserve decode repair signals and retry startup quorum by @cxymds in #8067
- ci(package): build gnu and musl DEB/RPM variants with distinct file names by @majinghe in #8079
- fix(heal): recreate missing bucket volumes by @cxymds in #8082
- fix(heal): retry faulty storage disk errors by @cxymds in #8086
- chore(ci): refresh checkout pin in validated workflows by @houseme in #8083
- chore(ci): complete action pin and HAProxy upgrades by @houseme in #8090
- perf(ecstore): parallelize multipart I/O setup and metadata reads by @GatewayJ in #8085
- docs: update license copyright to RustFS, Inc. by @overtrue in #8097
- fix(s3): default CopyObject content-type to binary/octet-stream on REPLACE by @TylerHillery in #8073
- fix(heal): preserve retryable writer failures by @cxymds in #8089
- feat(connect): sample memory within the running service by @overtrue in #8091
- fix(connect): preserve diagnostic schedules across restart by @overtrue in #8092
- test(connect): add scheduler receipt acceptance workflow by @overtrue in #8078
- fix(ecstore): resume scan_dir past a dash-suffixed sibling directory by @gmelikov in #8071
- fix(heal): detect stale delete-marker metadata by @cxymds in #8102
New Contributors
- @aredridel made their first contribution in #7943
- @kokorousaki made their first contribution in #7972
- @Marukome0743 made their first contribution in #8034
- @bolero2 made their first contribution in #8064
- @TylerHillery made their first contribution in #8073
- @gmelikov made their first contribution in #8071
Full Changelog: 1.0.0...1.0.1-preview.11