RustFS 1.0.0-rc.4 (rc)
- fix: make DeleteObjects idempotent for raw not-found errors by @cxymds in https://github.com/rustfs/rustfs/pull/6323
- feat(ecstore): tune fdatasync group wait budget by @houseme in https://github.com/rustfs/rustfs/pull/6327
- fix(ci): update package checksums safely by @overtrue in https://github.com/rustfs/rustfs/pull/6329
- fix(iam): preserve MinIO permanent credentials in migration by @GatewayJ in https://github.com/rustfs/rustfs/pull/6328
- perf(server): trim internode REST compat stack by @houseme in https://github.com/rustfs/rustfs/pull/6330
- fix(ecstore): avoid decommission walk deadline on backpressure by @cxymds in https://github.com/rustfs/rustfs/pull/6332
- fix(scanner): defer usage publication during pool recovery by @cxymds in https://github.com/rustfs/rustfs/pull/6333
- feat(connect): answer offline enrolment challenges without a network by @overtrue in https://github.com/rustfs/rustfs/pull/6335
- ci: harden test selection and nightly coverage by @overtrue in https://github.com/rustfs/rustfs/pull/6341
- feat(connect): add registration and credential rotation by @overtrue in https://github.com/rustfs/rustfs/pull/6353
- chore(ecstore): standardize 24 bare TODO/FIXME to tracked format by @overtrue in https://github.com/rustfs/rustfs/pull/6346
- docs(agents): streamline instruction routing by @overtrue in https://github.com/rustfs/rustfs/pull/6358
- chore(obs): rename ReplicationStats to ReplicationMetricsSnapshot by @overtrue in https://github.com/rustfs/rustfs/pull/6344
- chore(madmin): remove dead trace structs, keep TraceType only by @overtrue in https://github.com/rustfs/rustfs/pull/6343
- refactor(e2e): consolidate duplicated helper functions into common.rs by @overtrue in https://github.com/rustfs/rustfs/pull/6355
- test(ci): bound s3-tests failure logs by @overtrue in https://github.com/rustfs/rustfs/pull/6361
- feat(disk): fsync dedicated blocking pool (default-off) by @houseme in https://github.com/rustfs/rustfs/pull/6366
- ci: let feature validation jobs finish by @overtrue in https://github.com/rustfs/rustfs/pull/6364
- perf(ecstore): throttle decommission checkpoints by @cxymds in https://github.com/rustfs/rustfs/pull/6356
- fix(ecstore): fail closed on unresolved decommission entries by @cxymds in https://github.com/rustfs/rustfs/pull/6367
- fix(rpc): bound internode concurrency under multipart load by @overtrue in https://github.com/rustfs/rustfs/pull/6368
- fix(heal): retain displaced task status by @cxymds in https://github.com/rustfs/rustfs/pull/6370
- fix(ecstore): preserve remote delete error types by @overtrue in https://github.com/rustfs/rustfs/pull/6371
- fix(scanner): isolate corrupt cycle state by @cxymds in https://github.com/rustfs/rustfs/pull/6354
- fix(quota): account compressed deletes by committed size by @cxymds in https://github.com/rustfs/rustfs/pull/6365
- fix(admin): expose per-target disableProxy through remote target admin API by @reatang in https://github.com/rustfs/rustfs/pull/6376
- test(ecstore): cover suspended-owner heal semantics by @cxymds in https://github.com/rustfs/rustfs/pull/6348
- test(e2e): wait for heal peers after node rejoin by @overtrue in https://github.com/rustfs/rustfs/pull/6359
- refactor(data-usage): rename ReplicationStats to ReplicationTargetUsage by @overtrue in https://github.com/rustfs/rustfs/pull/6345
- fix(storageclass): use div_ceil for inline threshold to match shard size calc by @houseme in https://github.com/rustfs/rustfs/pull/6390
- fix(ecstore): supervise decommission worker cleanup by @overtrue in https://github.com/rustfs/rustfs/pull/6372
- fix(scanner): fence timed out scan cycles by @cxymds in https://github.com/rustfs/rustfs/pull/6352
- feat(connect): emit durable heartbeats by @overtrue in https://github.com/rustfs/rustfs/pull/6383
- test(kms): replace 33 hard-coded startup sleeps with readiness probe by @overtrue in https://github.com/rustfs/rustfs/pull/6349
- fix(ecstore): fence deletes against decommission commits by @overtrue in https://github.com/rustfs/rustfs/pull/6363
- feat(ecstore): coalesce GET ReadVersion RPCs by @houseme in https://github.com/rustfs/rustfs/pull/6395
- fix(heal): supervise scheduler task panics by @cxymds in https://github.com/rustfs/rustfs/pull/6351
- perf(ecstore): bound decommission entry workers by @cxymds in https://github.com/rustfs/rustfs/pull/6360
- ci: detect incomplete and stale scheduled validations by @overtrue in https://github.com/rustfs/rustfs/pull/6357
- fix(policy): accept legacy bucket policy ID field by @GatewayJ in https://github.com/rustfs/rustfs/pull/6362
- fix(ecstore): reject equal-time latest identity conflicts before index fallback by @overtrue in https://github.com/rustfs/rustfs/pull/6374
- ci(s3tests): stabilize HAProxy request handling by @overtrue in https://github.com/rustfs/rustfs/pull/6386
- ci(mint): pin manual image default by @overtrue in https://github.com/rustfs/rustfs/pull/6387
- ci(perf): fix nightly regression baseline by @overtrue in https://github.com/rustfs/rustfs/pull/6389
- test(e2e): fix nightly validation oracles by @overtrue in https://github.com/rustfs/rustfs/pull/6397
- ci: align cache writer and reader keys by @overtrue in https://github.com/rustfs/rustfs/pull/6398
- test(e2e): remove fake KMS suite results by @overtrue in https://github.com/rustfs/rustfs/pull/6401
- fix(admin): four site-replication interop correctness fixes (B5-rc T2) by @reatang in https://github.com/rustfs/rustfs/pull/6399
- fix(heal): fence format repair during pool transitions by @cxymds in https://github.com/rustfs/rustfs/pull/6342
- fix(ecstore): remove inline write debug noise by @houseme in https://github.com/rustfs/rustfs/pull/6408
- feat(allocator): replace mimalloc/libmimalloc-sys with rustfs-mimalloc/rustfs-mimalloc-sys by @houseme in https://github.com/rustfs/rustfs/pull/6404
- docs(testing): document CI gate matrix by @overtrue in https://github.com/rustfs/rustfs/pull/6412
- fix(ecstore): keep unknown-size sentinel in create_bitrot_writer by @reatang in https://github.com/rustfs/rustfs/pull/6380
- test(kms): stabilize Vault failover validation by @overtrue in https://github.com/rustfs/rustfs/pull/6385
- test(scripts): add reset-safe internode metric sampling by @houseme in https://github.com/rustfs/rustfs/pull/6437
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/6436
- perf(runtime): enable fsync thread isolation by default by @houseme in https://github.com/rustfs/rustfs/pull/6438
- fix(ecstore): default rename fanout to parallel early-ack path by @houseme in https://github.com/rustfs/rustfs/pull/6443
- perf(ecstore): reduce batch read identity cloning by @houseme in https://github.com/rustfs/rustfs/pull/6441
- fix(ecstore): merge peer pool meta reload monotonically by @overtrue in https://github.com/rustfs/rustfs/pull/6392
- fix(heal): make resume checkpoints crash consistent by @cxymds in https://github.com/rustfs/rustfs/pull/6340
- fix(replication): deny non-owner replication config edits under site replication by @reatang in https://github.com/rustfs/rustfs/pull/6375
- fix(admin): bound site replication lifecycle lock and parallelize add preflight by @reatang in https://github.com/rustfs/rustfs/pull/6378
- fix(ecstore): preserve ILM state during pool decommission by @overtrue in https://github.com/rustfs/rustfs/pull/6369
- fix(app): wait for peer bucket metadata reload by @overtrue in https://github.com/rustfs/rustfs/pull/6381
- fix(scanner): publish per-set usage freshness by @cxymds in https://github.com/rustfs/rustfs/pull/6432
- docs(scanner): baseline scanner heal admission by @cxymds in https://github.com/rustfs/rustfs/pull/6426
- fix(heal): coalesce duplicate MRF intents by @cxymds in https://github.com/rustfs/rustfs/pull/6425
- fix(heal): add bounded resume artifact inspection by @cxymds in https://github.com/rustfs/rustfs/pull/6420
- fix(scanner): discover sub-quorum heal candidates by @cxymds in https://github.com/rustfs/rustfs/pull/6384
- fix(scanner): fence system metadata publication by @cxymds in https://github.com/rustfs/rustfs/pull/6444
- fix(scanner): unify unknown metadata size accounting by @cxymds in https://github.com/rustfs/rustfs/pull/6394
- fix(heal): correct progress accounting by @cxymds in https://github.com/rustfs/rustfs/pull/6382
- fix(scanner): fence unknown tier accounting by @cxymds in https://github.com/rustfs/rustfs/pull/6396
- feat(metrics): expose deferred usage freshness by @cxymds in https://github.com/rustfs/rustfs/pull/6449
- perf(ecstore): attribute batch read version wait stages by @houseme in https://github.com/rustfs/rustfs/pull/6456
- test(e2e): activate group management regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6405
- fix(admin): advertise IAM admin capabilities in runtime capabilities by @reatang in https://github.com/rustfs/rustfs/pull/6336
- fix(admin): use madmin key names in list-remote-targets response by @reatang in https://github.com/rustfs/rustfs/pull/6377
- fix(replication): apply receiver-side LWW to inbound metadata categories by @reatang in https://github.com/rustfs/rustfs/pull/6379
- ci(coverage): add security ratchet calibration by @overtrue in https://github.com/rustfs/rustfs/pull/6388
- test(e2e): enforce external client prerequisites by @overtrue in https://github.com/rustfs/rustfs/pull/6402
- ci: pin s3tests Python tools by @overtrue in https://github.com/rustfs/rustfs/pull/6407
- ci: add s3tests upstream HEAD canary by @overtrue in https://github.com/rustfs/rustfs/pull/6409
- fix(ci): make Warp ABBA evidence bounded and complete by @overtrue in https://github.com/rustfs/rustfs/pull/6417
- test(e2e): fail incomplete conditional PUT races by @overtrue in https://github.com/rustfs/rustfs/pull/6421
- test(e2e): add platform-safe selection updates by @overtrue in https://github.com/rustfs/rustfs/pull/6424
- fix(ecstore): tolerate migration identity rewrites by @overtrue in https://github.com/rustfs/rustfs/pull/6447
- feat(connect): add registration bootstrap command by @overtrue in https://github.com/rustfs/rustfs/pull/6452
- fix(server): adapt quick-xml name handling by @houseme in https://github.com/rustfs/rustfs/pull/6458
- fix(ecstore): terminate walk directory streams by @overtrue in https://github.com/rustfs/rustfs/pull/6462
- feat(connect): collect bounded offline diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/6450
- fix(ecstore): retry decommission entries safely on source changes by @overtrue in https://github.com/rustfs/rustfs/pull/6419
- feat(connect): emit low-frequency inventory by @overtrue in https://github.com/rustfs/rustfs/pull/6418
- ci: install protocol socket oracle by @overtrue in https://github.com/rustfs/rustfs/pull/6411
- fix(object-lock): unblock authorized replication writes on locked versions and tolerate cleared lock metadata by @reatang in https://github.com/rustfs/rustfs/pull/6413
- fix(ci): restore workspace lint compatibility by @houseme in https://github.com/rustfs/rustfs/pull/6460
- fix(ecstore): drain multipart uploads before decommission by @overtrue in https://github.com/rustfs/rustfs/pull/6414
- fix(ecstore): persist cancel before signaling by @overtrue in https://github.com/rustfs/rustfs/pull/6423
- fix(ecstore): recover pool metadata from replicas by @overtrue in https://github.com/rustfs/rustfs/pull/6457
- test: add coalescer delay cost report by @houseme in https://github.com/rustfs/rustfs/pull/6464
- fix(ci): restore main branch checks by @overtrue in https://github.com/rustfs/rustfs/pull/6465
- test(e2e): activate conditional write regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6454
- fix(ecstore): fence bucket heal during decommission by @overtrue in https://github.com/rustfs/rustfs/pull/6416
- fix(ecstore): unify decommission resume queue by @overtrue in https://github.com/rustfs/rustfs/pull/6403
- fix(ci): restore main checks by @overtrue in https://github.com/rustfs/rustfs/pull/6467
- fix(ecstore): run metadata decommission before buckets by @overtrue in https://github.com/rustfs/rustfs/pull/6410
- style: rustfmt decommission import groups on main by @overtrue in https://github.com/rustfs/rustfs/pull/6474
- fix(ecstore): migrate tier free versions during decommission by @overtrue in https://github.com/rustfs/rustfs/pull/6393
- fix(connect): make registration bootstrap retry durable by @overtrue in https://github.com/rustfs/rustfs/pull/6468
- fix(ci): restore main checks by @overtrue in https://github.com/rustfs/rustfs/pull/6469
- fix(ecstore): drop unused decommission bucket runner and refresh e2e linux digest by @overtrue in https://github.com/rustfs/rustfs/pull/6476
- fix(scanner): preserve default usage cache wire format by @overtrue in https://github.com/rustfs/rustfs/pull/6477
- test(scanner): repair post-fence fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6478
- test(app): distinguish usage overlay from quota floor by @overtrue in https://github.com/rustfs/rustfs/pull/6479
- fix(ecstore): prefer active pool reads during decommission by @overtrue in https://github.com/rustfs/rustfs/pull/6475
- fix(ecstore): fence rebalance and decommission activation by @overtrue in https://github.com/rustfs/rustfs/pull/6400
- fix(ecstore): persist unresolved decommission entries by @overtrue in https://github.com/rustfs/rustfs/pull/6415
- test(e2e): activate policy variable coverage by @overtrue in https://github.com/rustfs/rustfs/pull/6427
- test(e2e): require zero KMS concurrency failures by @overtrue in https://github.com/rustfs/rustfs/pull/6428
- test(e2e): activate data usage regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6429
- test(e2e): activate configured Vault coverage by @overtrue in https://github.com/rustfs/rustfs/pull/6430
- fix(e2e): honor custom Cargo target directory by @overtrue in https://github.com/rustfs/rustfs/pull/6434
- test(e2e): activate S3 Select regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6442
- fix(scanner): reject duplicate usage updates by @cxymds in https://github.com/rustfs/rustfs/pull/6445
- fix(scanner): fence movement generation publication by @cxymds in https://github.com/rustfs/rustfs/pull/6461
- fix(ecstore): fence pool metadata replica updates by @overtrue in https://github.com/rustfs/rustfs/pull/6466
- fix(replication): tolerate orphaned resync intents at startup by @reatang in https://github.com/rustfs/rustfs/pull/6470
- fix(scanner): bootstrap pristine usage baseline by @overtrue in https://github.com/rustfs/rustfs/pull/6471
- fix(ecstore): avoid nested prefix listing amplification by @marshawcoco in https://github.com/rustfs/rustfs/pull/6473
- chore(deps): bump p256 from 0.13.2 to 0.14.0 in the dependencies group by @dependabot[bot] in https://github.com/rustfs/rustfs/pull/6481
- test(e2e): require 404 absence oracles by @overtrue in https://github.com/rustfs/rustfs/pull/6485
- fix(scanner): restore s3s footprint baseline by @overtrue in https://github.com/rustfs/rustfs/pull/6486
- fix(app): restore stable Rust 1.98 builds by @overtrue in https://github.com/rustfs/rustfs/pull/6487
- fix(ecstore): complete rename tails after quorum ack by @overtrue in https://github.com/rustfs/rustfs/pull/6489
- test(e2e): fail closed on runner readiness by @overtrue in https://github.com/rustfs/rustfs/pull/6490
- test(ci): require dependency-aware readiness by @overtrue in https://github.com/rustfs/rustfs/pull/6491
- test(e2e): fail closed on compression disk probes by @overtrue in https://github.com/rustfs/rustfs/pull/6492
- test(e2e): fail closed on missing socket oracle by @overtrue in https://github.com/rustfs/rustfs/pull/6493
- test(e2e): refresh Linux full-suite selection by @overtrue in https://github.com/rustfs/rustfs/pull/6495
- perf(ecstore): add bucket existence cache and allocator feature flags by @houseme in https://github.com/rustfs/rustfs/pull/6496
- test(e2e): require authorization denial codes by @overtrue in https://github.com/rustfs/rustfs/pull/6497
- fix(ci): repair post-merge build gates by @overtrue in https://github.com/rustfs/rustfs/pull/6508
- test(ilm): isolate multipart compensation stack by @cxymds in https://github.com/rustfs/rustfs/pull/6499
- fix(scanner): clarify follower status by @marshawcoco in https://github.com/rustfs/rustfs/pull/6503
- fix(table-catalog): return 503 when commit authority is unavailable by @marshawcoco in https://github.com/rustfs/rustfs/pull/6506
- fix(ci): restore post-merge test gates by @overtrue in https://github.com/rustfs/rustfs/pull/6509
- docs(operations): document rebalance impact assessment by @overtrue in https://github.com/rustfs/rustfs/pull/6510
- fix(ci): repair post-merge test gates by @cxymds in https://github.com/rustfs/rustfs/pull/6511
- fix(ci): refresh e2e full selection by @overtrue in https://github.com/rustfs/rustfs/pull/6512
- fix(build): restore mimalloc workspace dependency by @overtrue in https://github.com/rustfs/rustfs/pull/6500
- docs: remove ROSS Index badge from README by @loverustfs in https://github.com/rustfs/rustfs/pull/6514
- fix(tests): raise recursion limit for rustfs e2e crates by @houseme in https://github.com/rustfs/rustfs/pull/6513
- test(connect): use protected home for bootstrap fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6515
- test(scanner): align pristine startup fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6516
- test(iam): create legacy migration bucket through store by @overtrue in https://github.com/rustfs/rustfs/pull/6517
- fix(ci): repair main test regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6519
- fix(test-utils): raise recursion limit for lib tests by @houseme in https://github.com/rustfs/rustfs/pull/6518
- fix(health): reflect node readiness in /health response body by @houseme in https://github.com/rustfs/rustfs/pull/6520
- fix(quota): reconcile matching scanner usage by @overtrue in https://github.com/rustfs/rustfs/pull/6521
- fix(ecstore): enforce monotonic transition cursors by @overtrue in https://github.com/rustfs/rustfs/pull/6522
- test(ci): stabilize main fixture paths by @overtrue in https://github.com/rustfs/rustfs/pull/6523
- fix(iam): raise recursion limit for migration test by @houseme in https://github.com/rustfs/rustfs/pull/6524
- fix(storage): stabilize main regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6525
- fix(quota): release reconciled delete holds by @overtrue in https://github.com/rustfs/rustfs/pull/6526
- fix(ecstore): heap-allocate durable ILM receipt futures by @reatang in https://github.com/rustfs/rustfs/pull/6527
- fix(multipart): enforce complete part number limit by @overtrue in https://github.com/rustfs/rustfs/pull/6528
- test(ci): stabilize Connect and health fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6529
- test(e2e): require remaining 404 absence oracles by @overtrue in https://github.com/rustfs/rustfs/pull/6530
- fix(table-catalog): classify storage quorum as unavailable by @marshawcoco in https://github.com/rustfs/rustfs/pull/6531
- test(e2e): require exact object lock errors by @overtrue in https://github.com/rustfs/rustfs/pull/6532
- test(ilm): isolate suspended restore stack by @overtrue in https://github.com/rustfs/rustfs/pull/6533
- fix(e2e): box delete object errors by @overtrue in https://github.com/rustfs/rustfs/pull/6534
- fix(storage): stabilize nextest regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6543
- fix(memory): cgroup-aware resource detection for container environments by @houseme in https://github.com/rustfs/rustfs/pull/6536
- feat(connect): persist sanitized inventory snapshot by @overtrue in https://github.com/rustfs/rustfs/pull/6537
- perf: optimize cgroup resource detection with single System instance by @houseme in https://github.com/rustfs/rustfs/pull/6550
- test(e2e): require exact retention errors by @overtrue in https://github.com/rustfs/rustfs/pull/6535
- test(e2e): require exact bucket compatibility errors by @overtrue in https://github.com/rustfs/rustfs/pull/6540
- test(e2e): require exact quota errors by @overtrue in https://github.com/rustfs/rustfs/pull/6544
- test(e2e): require exact SSE-C errors by @overtrue in https://github.com/rustfs/rustfs/pull/6546
- test(fuzz): record reproducible run seeds by @overtrue in https://github.com/rustfs/rustfs/pull/6547
- test(e2e): require exact checksum errors by @overtrue in https://github.com/rustfs/rustfs/pull/6548
- test(heal): wait for fixture writes before corruption by @overtrue in https://github.com/rustfs/rustfs/pull/6549
- ci: preserve failure verdict before early stop by @overtrue in https://github.com/rustfs/rustfs/pull/6552
- test(kms): require exact fault recovery errors by @overtrue in https://github.com/rustfs/rustfs/pull/6553
- test(e2e): add pinned direct upgrade gate by @overtrue in https://github.com/rustfs/rustfs/pull/6555
- test(e2e): require exact versioning oracles by @overtrue in https://github.com/rustfs/rustfs/pull/6556
- test(e2e): require bucket policy denial code by @overtrue in https://github.com/rustfs/rustfs/pull/6557
- test(e2e): fail closed on tampered payloads by @overtrue in https://github.com/rustfs/rustfs/pull/6558
- test(iam): verify JWKS rotation refresh by @overtrue in https://github.com/rustfs/rustfs/pull/6559
- test(e2e): tighten control character rejection oracle by @overtrue in https://github.com/rustfs/rustfs/pull/6561
- test: add live Keycloak OIDC gate by @overtrue in https://github.com/rustfs/rustfs/pull/6562
- fix(config): enable allocator reclaim by default by @houseme in https://github.com/rustfs/rustfs/pull/6566
- perf(ecstore): add Vec buffer pool for EC operations by @houseme in https://github.com/rustfs/rustfs/pull/6538
- chore(deps): update s3s revision by @houseme in https://github.com/rustfs/rustfs/pull/6545
- fix(health): align ready with lock quorum by @houseme in https://github.com/rustfs/rustfs/pull/6554
- fix(capacity): skip idle scheduled disk scans by @marshawcoco in https://github.com/rustfs/rustfs/pull/6541
- test(ecstore): avoid virtual timeout for sync batch by @overtrue in https://github.com/rustfs/rustfs/pull/6551
- fix(health): keep liveness peer independent by @houseme in https://github.com/rustfs/rustfs/pull/6576
- test(e2e): make security boundary oracles fail closed by @overtrue in https://github.com/rustfs/rustfs/pull/6542
- fix(connect): use persisted inventory for offline collectors by @overtrue in https://github.com/rustfs/rustfs/pull/6560
- test(keycloak): fix Keycloak OIDC live fixture by @overtrue in https://github.com/rustfs/rustfs/pull/6563
- fix(api): preserve typed upload digest errors by @overtrue in https://github.com/rustfs/rustfs/pull/6564
- fix(heal): reconcile dangling objects after node reconnect by @marshawcoco in https://github.com/rustfs/rustfs/pull/6567
- fix(put): reap cancelled eager commit owners by @GatewayJ in https://github.com/rustfs/rustfs/pull/6569
- fix(replication): retry startup resync lock failures by @GatewayJ in https://github.com/rustfs/rustfs/pull/6570
- test(heal): wait for versioned fixture copies by @overtrue in https://github.com/rustfs/rustfs/pull/6571
- fix(s3): reject tampered multipart payloads cleanly by @overtrue in https://github.com/rustfs/rustfs/pull/6578
- feat(connect): build signed offline bundles by @overtrue in https://github.com/rustfs/rustfs/pull/6579
- fix(ecstore): handle metadata-less bucket residue by @houseme in https://github.com/rustfs/rustfs/pull/6591
- fix(connect): adapt offline array predicate by @overtrue in https://github.com/rustfs/rustfs/pull/6581
- test(e2e): update smoke selection baseline by @overtrue in https://github.com/rustfs/rustfs/pull/6582
- test(get): stage relocated fixture after reader opens by @overtrue in https://github.com/rustfs/rustfs/pull/6584
- ci: bound feature test link concurrency by @overtrue in https://github.com/rustfs/rustfs/pull/6594
- test(ci): give lifecycle transitions a larger stack by @overtrue in https://github.com/rustfs/rustfs/pull/6595
- ci: preserve ILM timeout diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/6602
- fix(ecstore): version pool metadata transactions by @overtrue in https://github.com/rustfs/rustfs/pull/6604
- test(e2e): require exact object lock rejection oracles by @overtrue in https://github.com/rustfs/rustfs/pull/6580
- ci: run live target backend tests by @overtrue in https://github.com/rustfs/rustfs/pull/6603
- test(diagnose): run binary smoke in CI by @overtrue in https://github.com/rustfs/rustfs/pull/6605
- feat(connect): rotate device credentials at runtime by @overtrue in https://github.com/rustfs/rustfs/pull/6586
- fix(audit): include deleted objects in bulk audit entries by @rjregenold in https://github.com/rustfs/rustfs/pull/6592
- perf(ecstore): optimize opts.clone() and FileInfo clone patterns by @houseme in https://github.com/rustfs/rustfs/pull/6587
- fix(startup): avoid blocking on resync reconcile by @houseme in https://github.com/rustfs/rustfs/pull/6593
- feat(admin): self-service account management and TOTP two-factor authentication by @sineld in https://github.com/rustfs/rustfs/pull/6596
- perf(sse): drop the second KMS decrypt from encrypted GET responses by @reatang in https://github.com/rustfs/rustfs/pull/6597
- perf(ecstore): enable encrypted range part-seek by default by @reatang in https://github.com/rustfs/rustfs/pull/6598
- feat(kms): seal persisted config secrets with RUSTFS_KMS_CONFIG_SECRET by @reatang in https://github.com/rustfs/rustfs/pull/6599
- feat(rio): authenticated fixed-frame v2 encryption layout behind a write switch by @reatang in https://github.com/rustfs/rustfs/pull/6600
- feat(ecstore): closed-form range seek for single-part v2 encrypted objects by @reatang in https://github.com/rustfs/rustfs/pull/6601
- docs(release): require confirmation after preview validation by @overtrue in https://github.com/rustfs/rustfs/pull/6607
- ci: stop daily freshness false alarms for dormant scheduled workflows by @overtrue in https://github.com/rustfs/rustfs/pull/6608
- fix(ci): restore merged main static gates by @overtrue in https://github.com/rustfs/rustfs/pull/6609
- test(obs): move source-text logging tests into the logging guardrail script by @overtrue in https://github.com/rustfs/rustfs/pull/6610
- fix(capacity): honor high-latency timeout profile by @marshawcoco in https://github.com/rustfs/rustfs/pull/6611
- fix(ci): restore merged main Clippy lanes by @overtrue in https://github.com/rustfs/rustfs/pull/6612
- ci: ratchet ecstore ::other(format!) error construction shrink-only by @overtrue in https://github.com/rustfs/rustfs/pull/6614
- test(ecstore): pin error conversion round-trips for heal-matched variants by @overtrue in https://github.com/rustfs/rustfs/pull/6613
- refactor(common): move scanner/heal contracts into dedicated crates by @overtrue in https://github.com/rustfs/rustfs/pull/6615
- fix(ci): clear remaining merged main Clippy lints by @overtrue in https://github.com/rustfs/rustfs/pull/6616
- fix(ci): keep Connect integration fixtures public-only by @overtrue in https://github.com/rustfs/rustfs/pull/6617
- refactor(protos): move compat manifest send-site assertions into owning crates by @overtrue in https://github.com/rustfs/rustfs/pull/6618
- feat(ecstore): type internode client-acquisition failures for quorum buckets by @overtrue in https://github.com/rustfs/rustfs/pull/6619
- fix(ci): release Connect test locks before await by @overtrue in https://github.com/rustfs/rustfs/pull/6620
- fix(ci): refresh Linux e2e full selection by @overtrue in https://github.com/rustfs/rustfs/pull/6625
- docs(ecstore): correct get_lock_acquire_timeout doc comment by @stevapple in https://github.com/rustfs/rustfs/pull/6622
- fix(scanner): rebuild missing usage floor after upgrade by @marshawcoco in https://github.com/rustfs/rustfs/pull/6624
- refactor(ecstore): make store-to-disk error narrowing named and fallible by @overtrue in https://github.com/rustfs/rustfs/pull/6626
- refactor(replication): name the resync state error and keep io failures typed by @overtrue in https://github.com/rustfs/rustfs/pull/6628
- refactor(ecstore): extract the embedded S3 client into rustfs-s3-client by @overtrue in https://github.com/rustfs/rustfs/pull/6627
- fix(policy): remove six dead error variants by @overtrue in https://github.com/rustfs/rustfs/pull/6631
- refactor(heal): classify recoverability typed-first with documented fallback by @overtrue in https://github.com/rustfs/rustfs/pull/6629
- fix(rio): prevent h2 keepalive from aborting active streams by @marshawcoco in https://github.com/rustfs/rustfs/pull/6630
- ci(nightly): build and upload a nightly deb package by @majinghe in https://github.com/rustfs/rustfs/pull/6632
- feat(kms): surface non-production backend positioning at runtime by @reatang in https://github.com/rustfs/rustfs/pull/6633
- test(ilm): cover restore failure expiry and retry by @cxymds in https://github.com/rustfs/rustfs/pull/6637
- test(iam): pin the policy-to-iam error mapping and record the fold verdict by @overtrue in https://github.com/rustfs/rustfs/pull/6635
- feat(kms): wire Vault custom CA and mTLS client identity by @reatang in https://github.com/rustfs/rustfs/pull/6638
- fix(tests): repair main CI fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6636
- feat(kms): bind encryption context into DEK envelopes as AAD by @reatang in https://github.com/rustfs/rustfs/pull/6639
- fix(tests): restrict Connect state tempdirs by @overtrue in https://github.com/rustfs/rustfs/pull/6642
- fix(tests): stabilize Connect inventory fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6645
- ci(nightly): persist the nightly deb on Cloudflare R2 by @majinghe in https://github.com/rustfs/rustfs/pull/6643
- fix(ci): suppress macOS-only dead-code warning for INVENTORY_UID by @overtrue in https://github.com/rustfs/rustfs/pull/6641
- feat(kms): object-level DEK rewrap adapter and Transit context-bound rewrap by @reatang in https://github.com/rustfs/rustfs/pull/6644
- fix(ci): refresh Linux full E2E selection by @overtrue in https://github.com/rustfs/rustfs/pull/6649
- perf(runtime): mark Tokio threads as mimalloc threadpool by @houseme in https://github.com/rustfs/rustfs/pull/6646
- ci(nightly): build on sm-standard-4 by @majinghe in https://github.com/rustfs/rustfs/pull/6652
- fix(tests): tolerate sparse resume shard fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6653
- perf(signer,ecstore): signing key cache + ahash by @houseme in https://github.com/rustfs/rustfs/pull/6651
- fix(tests): stabilize main CI concurrency fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6655
- feat(kms): bulk DEK rekey sweep with admin API and kms:Rekey action by @reatang in https://github.com/rustfs/rustfs/pull/6654
- fix(connect): ignore directory link-count churn by @overtrue in https://github.com/rustfs/rustfs/pull/6658
- test(connect): isolate offline enrollment e2e root by @overtrue in https://github.com/rustfs/rustfs/pull/6659
- chore(build): tune release profile and QR dependency by @houseme in https://github.com/rustfs/rustfs/pull/6660
- test(ci): stabilize main verification gates by @overtrue in https://github.com/rustfs/rustfs/pull/6661
- refactor: migrate consumers off rustfs-common heal/scanner shims by @overtrue in https://github.com/rustfs/rustfs/pull/6623
- fix(ecstore): bound copy-source shard read-ahead by @cxymds in https://github.com/rustfs/rustfs/pull/6663
- test(connect): add short credential E2E profile by @overtrue in https://github.com/rustfs/rustfs/pull/6664
- chore(deps): refresh s3s and dependencies by @houseme in https://github.com/rustfs/rustfs/pull/6665
- refactor(ecstore): move object_lock WORM evaluation onto storage-level types by @overtrue in https://github.com/rustfs/rustfs/pull/6666
- feat(startup): expose resync reconcile observability by @houseme in https://github.com/rustfs/rustfs/pull/6667
- refactor(rustfs): split object_usecase.rs into per-operation app/object modules by @overtrue in https://github.com/rustfs/rustfs/pull/6670
- refactor(ecstore): drop the client shim, import rustfs-s3-client directly by @overtrue in https://github.com/rustfs/rustfs/pull/6668
- test(ci): serialize rekey Vault e2e by @overtrue in https://github.com/rustfs/rustfs/pull/6673
- test(connect): match offline enrollment rejection by @overtrue in https://github.com/rustfs/rustfs/pull/6675
- style(rustfs): format object split guard by @overtrue in https://github.com/rustfs/rustfs/pull/6676
- fix(ecstore): migrate test-only client import by @overtrue in https://github.com/rustfs/rustfs/pull/6678
- refactor(common): drop transitional heal/scanner contract shims by @overtrue in https://github.com/rustfs/rustfs/pull/6680
- fix(ci): make s3s footprint ratchet count the tree, not stdin by @overtrue in https://github.com/rustfs/rustfs/pull/6681
- chore(deps): clean up cargo shear findings by @houseme in https://github.com/rustfs/rustfs/pull/6679
- chore(deps): finish cargo shear cleanup by @houseme in https://github.com/rustfs/rustfs/pull/6682
- docs(architecture): adjudicate the io-metrics leaf dependency on the s3-ops contract crate by @overtrue in https://github.com/rustfs/rustfs/pull/6683
- feat(rpc): dual-write a typed not-initialized code on control-plane responses by @overtrue in https://github.com/rustfs/rustfs/pull/6684
- refactor(admin): route IAM policy and group auth through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6685
- refactor(admin): route user management authorization through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6686
- refactor(admin): route pool, rebalance, and system authorization through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6687
- refactor(admin): route tier, bucket metadata, archive, transition, and oidc auth through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6688
- fix(ci): bound cold ILM compilation by @overtrue in https://github.com/rustfs/rustfs/pull/6689
- chore(deps): migrate direct encoding deps to simd by @houseme in https://github.com/rustfs/rustfs/pull/6690
- fix(config): tolerate legacy scalar heal/scanner config sections by @reatang in https://github.com/rustfs/rustfs/pull/6691
- fix(guards): catch dotted-form leaf deps, pin madmin to rustfs-signer by @overtrue in https://github.com/rustfs/rustfs/pull/6692
- fix(e2e): implement scanner lease RPC stubs by @overtrue in https://github.com/rustfs/rustfs/pull/6693
- refactor(admin): consolidate json_response, empty_response, and extract_query_params into admin utils by @overtrue in https://github.com/rustfs/rustfs/pull/6694
- chore(release): prepare 1.0.0-rc.4 by @overtrue in https://github.com/rustfs/rustfs/pull/6698
- refactor(checksums): unify s3-client checksum dispatch in one registry by @overtrue in https://github.com/rustfs/rustfs/pull/6696
- refactor(ecstore): retire set_disk lint blankets via explicit imports by @overtrue in https://github.com/rustfs/rustfs/pull/6697
- ci(pool-test): fix scheduled runs and env source by @majinghe in https://github.com/rustfs/rustfs/pull/6702
- refactor(admin): move site-replication service core out of handlers by @overtrue in https://github.com/rustfs/rustfs/pull/6699
- refactor(s3-client): drop superseded per-algorithm checksum plumbing by @overtrue in https://github.com/rustfs/rustfs/pull/6700
- test(ci): quarantine the relocated-pool GET resume fixture flake by @overtrue in https://github.com/rustfs/rustfs/pull/6704
- refactor(site-replication): converge send_peer_* into one request builder by @overtrue in https://github.com/rustfs/rustfs/pull/6705
- docs(rio): record the checksum hasher verdict and pin shared vectors by @overtrue in https://github.com/rustfs/rustfs/pull/6706
- test(get): tolerate quorum-tolerated disk gaps in relocated-pool test by @overtrue in https://github.com/rustfs/rustfs/pull/6707
- fix(ecstore): tighten decommission test-helper cfg gates to test-util by @overtrue in https://github.com/rustfs/rustfs/pull/6708
- test(pool): tolerate a stopped cluster in preflight by @majinghe in https://github.com/rustfs/rustfs/pull/6709
- test(pool): clean install via dpkg purge and split install/test phases by @majinghe in https://github.com/rustfs/rustfs/pull/6710
- test(rustfs): move manual bench tools to examples, gate Swift suites by @overtrue in https://github.com/rustfs/rustfs/pull/6712
- refactor(site-replication): migrate call sites to PeerAdminRequest, drop wrappers by @overtrue in https://github.com/rustfs/rustfs/pull/6713
- test(ci): point quarantine machinery at the legs it must protect by @overtrue in https://github.com/rustfs/rustfs/pull/6714
- chore(rustfs): remove stale manual-test-runners feature and README by @overtrue in https://github.com/rustfs/rustfs/pull/6715
- fix(test): wait for EC materialization in relocated-pool resume fixture by @overtrue in https://github.com/rustfs/rustfs/pull/6718
- test(targets,notify,audit): share a builder MockTarget testkit by @overtrue in https://github.com/rustfs/rustfs/pull/6717
- test(ecstore): wait for multipart rename tail epochs by @overtrue in https://github.com/rustfs/rustfs/pull/6723
- feat(s3): limit presigned PutObject content length by @cxymds in https://github.com/rustfs/rustfs/pull/6724
- feat(info): report all rustfs features by @houseme in https://github.com/rustfs/rustfs/pull/6722
- refactor(site-replication): move business tests next to the service module by @overtrue in https://github.com/rustfs/rustfs/pull/6716
- test: deflake config snapshot, presigned tamper, and pool resume tests by @reatang in https://github.com/rustfs/rustfs/pull/6721
- fix(server): align readiness with S3 admission by @marshawcoco in https://github.com/rustfs/rustfs/pull/6728
- fix(s3): accept s3tables SigV4 service by @GatewayJ in https://github.com/rustfs/rustfs/pull/6719
- ci(release): delete preview releases after the deliverable publishes by @overtrue in https://github.com/rustfs/rustfs/pull/6729
- test(pool): cover rebalance retry and cold-start recovery by @majinghe in https://github.com/rustfs/rustfs/pull/6720
- test(ecstore): make config tests robust to DEFAULT_KVS registration order by @reatang in https://github.com/rustfs/rustfs/pull/6731
- fix(health): bound remote lock online checks by @houseme in https://github.com/rustfs/rustfs/pull/6737
- test(heal): add node-outage heal E2E script and workflow by @majinghe in https://github.com/rustfs/rustfs/pull/6733
- feat(s3): enforce multipart presigned size limits by @cxymds in https://github.com/rustfs/rustfs/pull/6732
- perf(ecstore): use AHashMap for FileInfo metadata fields by @houseme in https://github.com/rustfs/rustfs/pull/6738
- fix(sse): document and lock anonymous denial under KMS key policy by @reatang in https://github.com/rustfs/rustfs/pull/6739
- test: fall back to writable temp files for logs/status in /tmp by @majinghe in https://github.com/rustfs/rustfs/pull/6743
- revert: rollback AHashMap changes and keep using std HashMap by @houseme in https://github.com/rustfs/rustfs/pull/6741
- perf(storage): gate large foreground PUT pressure by @houseme in https://github.com/rustfs/rustfs/pull/6751
- @rjregenold made their first contribution in https://github.com/rustfs/rustfs/pull/6592
- @sineld made their first contribution in https://github.com/rustfs/rustfs/pull/6596
- @stevapple made their first contribution in https://github.com/rustfs/rustfs/pull/6622
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0-rc.3...1.0.0-rc.4
Presto 0.299
See the release notes at https://prestodb.io/docs/current/release/release-0.299.html
Release v1.0.0-rc1
📦 Download Binaries from https://openobserve.ai/downloads
- fix: update enterprise feature by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13639
- fix: logs page freezes when wrap is enabled by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13638
- fix(search): improve loading behavior on stream change by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13636
- fix: i18n lint enforcement by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13439
- feat(ui): dashboard query editor redesign by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13637
- fix: Updated synthetics locations UI in configure location by @omkarK06 in https://github.com/openobserve/openobserve/pull/13475
- feat: Issue ent 2289 mobile rum sdk error tracking v2 by @bjp232004 in https://github.com/openobserve/openobserve/pull/13645
- feat: add hyperlink support for URL cells in by @ktx-abhay in https://github.com/openobserve/openobserve/pull/13650
- test(e2e/alpha1): stabilize the alpha1 cloud suite — auth self-heal, infra, and per-test heals by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13626
- fix(web): hide LLM Model Pricing settings on OSS builds by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13651
- fix(logstream): show local timezone in stream detail time range by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13652
- fix: notification templates v2 — rich content templates + alert chart images by @oasisk in https://github.com/openobserve/openobserve/pull/13640
- test(logs): fix alpha1 unflattened drawer-close detach flake by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13656
- fix: metric stream name rbac migration by @Subhra264 in https://github.com/openobserve/openobserve/pull/13521
- test(autoe2e): generated E2E tests for #13652 (stream-schema-timezone) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13657
- feat(ci): parametrize SHARD_PREFIX in o2-run-report.sh by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13663
- fix: preserve raw payload when switching template mode tabs by @oasisk in https://github.com/openobserve/openobserve/pull/13661
- chore(traces): make Service Graph and Services their own routes by @oasisk in https://github.com/openobserve/openobserve/pull/13659
- fix: Fix/traces view logs url restore by @bjp232004 in https://github.com/openobserve/openobserve/pull/13662
- fix(synthetics): recorder extension install link, record/replay setup gate, configurable store URL by @omkarK06 in https://github.com/openobserve/openobserve/pull/13658
- fix(correlation): P0/P1 fixes from service-streams correlation review by @oasisk in https://github.com/openobserve/openobserve/pull/13668
- fix: canonicalize model names in service graph to prevent node splitting by @oasisk in https://github.com/openobserve/openobserve/pull/13561
- refactor(search): group DataFusion and Tantivy feature configs by @haohuaijin in https://github.com/openobserve/openobserve/pull/13664
- fix: handle auth for invite reject correctly by @YashodhanJoshi1 in https://github.com/openobserve/openobserve/pull/13566
- test(alerts): heal Move-across-folders selection-wipe flake by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13672
- ci: fix weekly npm update type-check failure and rename branch/PR by @bjp232004 in https://github.com/openobserve/openobserve/pull/13671
- test(traces): heal service-graph Metrics-tab correlation detection by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13674
- chore(deps-dev): bump brace-expansion from 1.1.13 to 1.1.18 in /web by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13609
- build(deps): bump actions/stale from 10 to 11 by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13604
- build(deps): bump taiki-e/install-action from 2 to 2.85.5 by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13605
- chore(deps-dev): bump postcss from 8.5.19 to 8.5.25 in /web by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13610
- chore(deps): bump js-yaml from 4.3.0 to 4.3.1 in /web by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13678
- chore: support per-stream file formats by @haohuaijin in https://github.com/openobserve/openobserve/pull/13677
- feat: metric chart improvement by @ktx-abhay in https://github.com/openobserve/openobserve/pull/13546
- chore(deps): bump fast-uri from 3.1.2 to 3.1.5 in /web by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13611
- fix: add env to completely skip ssrf checks by @YashodhanJoshi1 in https://github.com/openobserve/openobserve/pull/13682
- fix: update enterprise feature by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13679
- fix: evaluate every metrics record against realtime alerts by @DHRUV6029 in https://github.com/openobserve/openobserve/pull/13581
- chore(deps): bump uuid, @openobserve/browser-logs and @openobserve/browser-rum in /tests/ui-testing/fixtures/rum/npm-app by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13688
- fix: collapse apt-get layers and clean cache in Dockerfile and Dockerfile.amd64 by @sangharshcs in https://github.com/openobserve/openobserve/pull/13633
- fix: prevent NATS KV watch consumer accumulation on reconnect storms by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13676
- fix: Issue ent 2343 alert improvements v3 by @bjp232004 in https://github.com/openobserve/openobserve/pull/13670
- ci: use macos-latest-xlarge for darwin release builds by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13692
- fix: cache invites by @YashodhanJoshi1 in https://github.com/openobserve/openobserve/pull/13613
- chore: bundle the SIL OFL 1.1 license for the vendored Geist fonts by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13691
- fix: ai page improvements by @ktx-abhay in https://github.com/openobserve/openobserve/pull/13689
- chore(deps): update web npm dependencies (2026-08-06) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13673
- fix: dashboard table column formatting via column header by @ktx-abhay in https://github.com/openobserve/openobserve/pull/13695
- fix: px to rem by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13541
- feat: rebuild the RUM error detail page around issue impact by @bjp232004 in https://github.com/openobserve/openobserve/pull/13697
- feat(traces): restore in-page Service Graph / Service Catalog tabs alongside standalone routes by @oasisk in https://github.com/openobserve/openobserve/pull/13698
- refactor: rename AlertManager node role to Scheduler by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13696
- fix(traces): scope "View Logs" correlated query to the clicked span by @omkarK06 in https://github.com/openobserve/openobserve/pull/13700
- feat: add zstd compression on OTLP gRPC ingest by @Pinguladora in https://github.com/openobserve/openobserve/pull/13703
- fix(i18n): improve Simplified Chinese translations by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13707
- docs: fix occured typo in alert and folder doc comments by @latent-9 in https://github.com/openobserve/openobserve/pull/13705
- fix(synthetics): sequential recorder setup checklist with state-safe refresh and incognito failure recovery by @omkarK06 in https://github.com/openobserve/openobserve/pull/13684
- fix: Browser sdk test 0.4.2 by @bjp232004 in https://github.com/openobserve/openobserve/pull/13584
- fix(dashboards): use bookmark-add for the panel annotation button by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13718
- feat(iam): serve the MCP Server setup page on the OSS build by @bjp232004 in https://github.com/openobserve/openobserve/pull/13720
- chore: update translations from en-US.json by @github-actions[bot] in https://github.com/openobserve/openobserve/pull/13694
- feat(slos): add SLO burn-rate alerts by @prabhatsharma in https://github.com/openobserve/openobserve/pull/13704
- fix(lib): re-place toggle pill after an item reorder by @bjp232004 in https://github.com/openobserve/openobserve/pull/13721
- fix(synthetics): move check variables into a shared resizable panel by @omkarK06 in https://github.com/openobserve/openobserve/pull/13699
- test(reports): heal reports-regression timezone spec (edit-prefill race + toast selector) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13724
- fix(logs): pass the expanded row to View Trace by @omkarK06 in https://github.com/openobserve/openobserve/pull/13722
- fix(correlation): service-streams P2 behavioral fixes + discovered services flat table by @oasisk in https://github.com/openobserve/openobserve/pull/13710
- fix(db): scope postgres catalog lookups to the active schema by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13723
- test(sentinel): POM compliance across Playwright suite (non-Dashboards) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13727
- ci: add Playwright e2e Stuck-Run-Reaper workflow by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13740
- ci(reaper): only inspect active runs, not full history by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13743
- test(sentinel): complete POM compliance — Dashboards + Correlation (follow-up to #13727) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13735
- ci(i18n): generate translations in the PR that changes en-US.json by @bjp232004 in https://github.com/openobserve/openobserve/pull/13741
- ci(reaper): label zombie runs distinctly from runner-wait by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13745
- fix: build warning v2 by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13729
- feat(llm): add annotation queues and datasets by @uddhavdave in https://github.com/openobserve/openobserve/pull/13719
- chore(deps): bump taiki-e/install-action from 2.85.5 to 2.85.10 by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13732
- refactor(sentinel): dedup page-object methods + testLogger convention (follow-up to #13735) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13746
- test(metrics): E2E for explorer share URL and Visualize deep-link by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13747
- test(logs): fix flaky pattern-card click under OVirtualScroll windowing by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13752
- fix: support zstd-compressed HTTP requests by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13728
- test(dashboards): e2e coverage for favorites cross-folder search fix (#13437) by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13758
- chore(config): remove unused environment variables by @haohuaijin in https://github.com/openobserve/openobserve/pull/13690
- fix: dashboard label overlap issues by @ktx-abhay in https://github.com/openobserve/openobserve/pull/13725
- perf(metrics): choose label timestamp filter automatically by @haohuaijin in https://github.com/openobserve/openobserve/pull/13756
- fix(dashboard): deduplicate panel and layout IDs on import and dashboard load by @ktx-abhay in https://github.com/openobserve/openobserve/pull/13760
- fix(alerts): stop losing Slack alerts on undeliverable link URLs (#13742) by @oasisk in https://github.com/openobserve/openobserve/pull/13753
- feat(synthetics): collapse journey advisories into an on-demand suggestions chip by @omkarK06 in https://github.com/openobserve/openobserve/pull/13759
- fix(ci): stop retrying translation pushes that a merge queue has frozen by @bjp232004 in https://github.com/openobserve/openobserve/pull/13765
- feat(functions): replace language radios with a segmented toggle by @bjp232004 in https://github.com/openobserve/openobserve/pull/13766
- refactor(search): enhance filtering logic for FTS fields in search function by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13767
- feat(slos): PromQL support for count and time-sliced SLOs, plus SLO/alert regression fixes by @prabhatsharma in https://github.com/openobserve/openobserve/pull/13761
- fix: tighten workflow permissions and CSS selector escaping by @prabhatsharma in https://github.com/openobserve/openobserve/pull/13772
- fix(deps): resolve 39 Dependabot alerts by @prabhatsharma in https://github.com/openobserve/openobserve/pull/13774
- test(e2e/alpha1): fix share-link redirect origin and cloud metrics ingest auth by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13776
- fix(logs): reject LIMIT in filter mode instead of building an invalid query by @ameyypawar in https://github.com/openobserve/openobserve/pull/13773
- fix(search): preserve indexed top-n aggregation results by @haohuaijin in https://github.com/openobserve/openobserve/pull/13779
- test(correlation): standardize e2e suite onto framework harness (phase 0 — reference pattern) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13775
- fix: Fix/match all pipe query corruption by @bjp232004 in https://github.com/openobserve/openobserve/pull/13764
- test(reports): e2e regression coverage for dashboard scheduled reports drawer (#13569) by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13781
- test(e2e/alpha1): unique per-run alert destination/template so Add Alert button enables by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13783
- perf: re-add process-wide promql series label cache by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13748
- test(correlation): remove 5 migrated API specs from Playwright (ported to pytest in ENT) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13788
- test(alerts): migrate multi-alert API specs from Playwright to pytest (Phase 2) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13791
- fix(synthetics): let the deployment ceilings survive a config reload by @Loaki07 in https://github.com/openobserve/openobserve/pull/13785
- fix(alerts): type the aggregation HAVING clause from the aggregate, not the column by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13790
- ci(tests): pure-API Playwright spec classifier + anti-drift guard (Phase 3) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13794
- test: stabilize test cases for the Alpha environment by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13551
- fix: preserve projection schema when rewriting match_all by @haohuaijin in https://github.com/openobserve/openobserve/pull/13808
- ci(tests): fix flaky rye setup by reusing setup-python interpreter by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13813
- refactor(traces): remove the trace_list_index feature by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13809
- test: add Q1001 + Q1002 sentinels for match_all/CSE + widen CI matrix by @neha00290 in https://github.com/openobserve/openobserve/pull/13810
- fix(compact): stop retention from deleting one extra day by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13804
- fix(logs): load the stream list on Visualize when no stream is selected by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13812
- perf(promql): use Utf8View for metric labels by @haohuaijin in https://github.com/openobserve/openobserve/pull/13796
- chore: adding HA mode for o2-ai agent by @007harshmahajan in https://github.com/openobserve/openobserve/pull/13525
- fix(synthetics): collapse the variables panel by default by @omkarK06 in https://github.com/openobserve/openobserve/pull/13825
- fix: slo bugs by @YashodhanJoshi1 in https://github.com/openobserve/openobserve/pull/13784
- test: improve stability of Alpha environment tests by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13817
- feat(traces): add trace time index by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13827
- feat: introduce compactor ZO_COMPACT_DELETE_FILES_DELAY_MINUTES by @TessaIO in https://github.com/openobserve/openobserve/pull/13828
- feat: composite alerts by @prabhatsharma in https://github.com/openobserve/openobserve/pull/13797
- fix(i18n): stop translated placeholder names crashing localized pages by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13833
- feat: banner as notification by @007harshmahajan in https://github.com/openobserve/openobserve/pull/13667
- feat: replace distinct_values_* streams with tantivy TopK for the _values API by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13834
- fix(i18n): correct mistranslations in zh-CN locale by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13835
- fix(synthetics): record from a specific step, and stop silently downgrading recorded actions by @omkarK06 in https://github.com/openobserve/openobserve/pull/13799
- fix(web): classify unquoted LIKE patterns wherever the parser stops by @bjp232004 in https://github.com/openobserve/openobserve/pull/13818
- fix: preserve online evaluation provider API keys by @uddhavdave in https://github.com/openobserve/openobserve/pull/13739
- fix: route annotation queue score lookups to queriers by @uddhavdave in https://github.com/openobserve/openobserve/pull/13801
- test(query-agent): add 70 match_all sentinel queries for FST rewrite path coverage by @neha00290 in https://github.com/openobserve/openobserve/pull/13824
- fix(stats): only read file_list_dump_stats when dumping is enabled by @jvaldesbit in https://github.com/openobserve/openobserve/pull/13830
- test(dashboards): cover CTE/subquery match_all queries through the panel search path by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13838
- fix: dashboard layout improvements by @ktx-abhay in https://github.com/openobserve/openobserve/pull/13815
- feat(traces): resolve session time ranges through the trace time index by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13837
- refactor(web): migrate templates + shadows to tokens, delete the debt baseline by @ktx-kirtan in https://github.com/openobserve/openobserve/pull/13769
- fix: MCP tool calls return 404 when ZO_BASE_URI is set by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13844
- feat: notification dependency view — where-used for templates, destinations & alerts by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13820
- fix: return empty when usage is not there instead of report error by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13842
- test(slo): E2E + API suite for SLOs by @vamsikarthikr in https://github.com/openobserve/openobserve/pull/13836
- refactor(search): replace sorted_by_time bool with FileSortOrder enum by @haohuaijin in https://github.com/openobserve/openobserve/pull/13853
- test: fix flaky report folder move test by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13847
- refactor(search): drop FileSortOrder from the distributed plan wire format by @haohuaijin in https://github.com/openobserve/openobserve/pull/13856
- fix: draft workflows by @nikhilsaikethe in https://github.com/openobserve/openobserve/pull/13666
- fix: script i18n by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13840
- fix(web): logs scroll jump, dashboard tab-rename width, and banner usage by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13858
- refactor: merge result / access-plan / deletion helpers groundwork for TSID-major metrics by @haohuaijin in https://github.com/openobserve/openobserve/pull/13861
- fix: skip session_id in trace time index merge when files lack the column by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13863
- fix: reduce eval match preview window to one hour by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13859
- refactor(merge): decide the merge kind once (MergeMode) and share the DataFusion pipeline by @haohuaijin in https://github.com/openobserve/openobserve/pull/13866
- fix(ui): clean up SLO detail and traces navigation by @prabhatsharma in https://github.com/openobserve/openobserve/pull/13852
- feat(alerts,slos): export as Terraform and OpenTofu by @chaitanya-sistla in https://github.com/openobserve/openobserve/pull/13849
- test(traces): accept redirected ?tab=service-graph URL in Service Graph smoke by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13868
- ci(playwright): stop SLO-Measurement backfill from serializing 21 daily chunks by @vamsikarthikr in https://github.com/openobserve/openobserve/pull/13870
- fix: always create file_list_dump_stats table by @YashodhanJoshi1 in https://github.com/openobserve/openobserve/pull/13873
- fix(deps): add missing @noble/hashes@2.3.0 to web lockfile (npm 10 npm ci) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13872
- fix: wait for WAL settle window before merging the previous hour by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13880
- test(traces): heal service-graph/catalog rail-flyout nav for #13852 ?tab= reroute by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13875
- chore(ci): remove redundant Qodo PR-Agent workflow by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13887
- feat(ci): rebrand automated PR review as "OpenObserve Code Reviewer" by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13871
- fix: annotation_queues item hydration intermittent 500s by @uddhavdave in https://github.com/openobserve/openobserve/pull/13881
- ci: Auto Merge Queuer — re-add PRs dequeued by failed checks (up to 2x) by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13891
- fix(ci): make AI review process exit reliably after posting by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13886
- fix(auth): return 403 instead of panicking when user is not in the org by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13878
- test(alerts): E2E suite for email destinations and distribution lists by @vamsikarthikr in https://github.com/openobserve/openobserve/pull/13876
- fix: session detail output message fixed by @uddhavdave in https://github.com/openobserve/openobserve/pull/13889
- fix(synthetics): show where recorded steps will land by @omkarK06 in https://github.com/openobserve/openobserve/pull/13860
- test(logs): E2E cover for Build tab stream list with no stream selected by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13884
- feat(synthetics): super-cluster support, then move synthetics to OSS by @Loaki07 in https://github.com/openobserve/openobserve/pull/13795
- fix(ofga): migrate annotation queue and dataset permissions by @uddhavdave in https://github.com/openobserve/openobserve/pull/13888
- fix(synthetics): support to read a run's evidence without leaving the step by @omkarK06 in https://github.com/openobserve/openobserve/pull/13879
- test(datetime-picker): E2E cover for copy/paste in the date-time picker by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13894
- test(mobile): RUM SDK end-to-end suite across 4 platforms + self-contained CI by @vamsikarthikr in https://github.com/openobserve/openobserve/pull/13628
- feat(metrics): TSID-major Parquet layout behind ZO_METRICS_TSID_MAJOR_ENABLED(beta) by @haohuaijin in https://github.com/openobserve/openobserve/pull/13882
- test: improve Alpha automation test stability by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13841
- fix(metrics): preserve numeric JSON series hash by @haohuaijin in https://github.com/openobserve/openobserve/pull/13893
- refactor(compaction): split merge/mod.rs by function into job/stream/file modules by @haohuaijin in https://github.com/openobserve/openobserve/pull/13900
- refactor(metrics): prepare indexed metrics groundwork by @haohuaijin in https://github.com/openobserve/openobserve/pull/13907
- fix(infra): serialize every remaining sqlite write path by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13905
- fix(traces): trace-log correlation fixes and Trace Graph height by @omkarK06 in https://github.com/openobserve/openobserve/pull/13901
- fix: png to svg chart types by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13911
- feat(metrics):
.midxseries index for TSID-major files and PromQL pruning through it by @haohuaijin in https://github.com/openobserve/openobserve/pull/13899 - fix(infra): fail startup when the NATS queue backend is unreachable by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13914
- chore: add project coding rules and tidy lint/gitignore config by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13913
- fix(metrics): match name selectors for metrics with uppercase original names by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13917
- fix(search): clamp auto histogram interval to 1s for sub-10s ranges by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13916
- fix(metrics): preserve timestamp sorting for hash-ordered queries by @haohuaijin in https://github.com/openobserve/openobserve/pull/13919
- fix: reduce db calls for realtime alerts by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13920
- fix: stop serving deployment internals on the unauthenticated /config by @oasisk in https://github.com/openobserve/openobserve/pull/13921
- feat(alerts): alert library — browse, preview and install curated alerts by @prabhatsharma in https://github.com/openobserve/openobserve/pull/13922
- fix(metrics): bound indexed merge output memory by @haohuaijin in https://github.com/openobserve/openobserve/pull/13928
- feat: folder icons by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13895
- feat(dbm): Database Monitoring by @oasisk in https://github.com/openobserve/openobserve/pull/13918
- test: stabilize logoManagement _meta org navigation on alpha1 by @Shrinath-O2 in https://github.com/openobserve/openobserve/pull/13934
- fix: file list timestamp maybe zero by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13936
- chore(deps): bump actions/setup-java from 4 to 5 by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13941
- chore(deps): bump taiki-e/install-action from 2.85.10 to 2.86.5 by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13939
- fix(promql): preserve mixed-case WAL metric names by @sidharth-sinhasane in https://github.com/openobserve/openobserve/pull/13937
- feat(metrics): support Vortex hash ordering by @haohuaijin in https://github.com/openobserve/openobserve/pull/13931
- test(mobile): P0 session-replay upload assertion by @vamsikarthikr in https://github.com/openobserve/openobserve/pull/13945
- fix(logs): stop quick mode rewriting SELECT inside subqueries by @ameyypawar in https://github.com/openobserve/openobserve/pull/13787
- chore(deps): bump actions/cache from 4 to 6 by @dependabot[bot] in https://github.com/openobserve/openobserve/pull/13940
- chore: upgrade build image to ubicloud-standard-16 by @haohuaijin in https://github.com/openobserve/openobserve/pull/13950
- feat: model pricing time-based conditonal pricing by @007harshmahajan in https://github.com/openobserve/openobserve/pull/13903
- refactor(infra): split ORM read/write clients, retire the sqlite write lock by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13927
- feat(dashboards): interactive table cells with in-place Logs Explorer drawer by @chaitanya-sistla in https://github.com/openobserve/openobserve/pull/13675
- fix(api): stop unprintable error messages collapsing responses into a bare 500 by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13952
- fix(search): tie wal search file locks to guards so cancelled queries release them by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13953
- fix(rum): restore RUM-traces correlation for zero-stripped trace ids by @omkarK06 in https://github.com/openobserve/openobserve/pull/13959
- feat(llm): add Phase 3.0 experiment workflows by @uddhavdave in https://github.com/openobserve/openobserve/pull/13778
- fix(search): release the admission slot and follower task status on cancellation by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13954
- feat(traces): annotate span events and exceptions on the trace timeline by @omkarK06 in https://github.com/openobserve/openobserve/pull/13715
- fix(i18n): send key-path context and a term glossary to the translation model by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13967
- test(dashboards): fix broken and false-green E2E specs on alpha by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13912
- fix(search): scan the exact requested range for histogram queries by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13969
- fix(i18n): correct Spanish product terminology (Logs, Trazas, Spans, … by @bjp232004 in https://github.com/openobserve/openobserve/pull/13973
- fix(i18n): backfill mistranslated locale keys via context-aware regeneration by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13968
- perf(promql): preallocate hash-sorted series samples by @haohuaijin in https://github.com/openobserve/openobserve/pull/13971
- fix(dashboards): large dashboards freeze the browser on open by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13970
- fix: database and alerts page UI improvement by @ktx-abhay in https://github.com/openobserve/openobserve/pull/13963
- fix(dashboard): table panel freezes/crashes on large results — window OTable's row model to the virtual scroll range by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13933
- perf(promql): fold range-function output incrementally into aggregations by @haohuaijin in https://github.com/openobserve/openobserve/pull/13989
- fix: correct AbortError guard in dashboard search error handler by @tsushanth in https://github.com/openobserve/openobserve/pull/13309
- feat(traces): multi-id and org-wide trace time range lookup by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13992
- chore(ci): save unit-tests rust cache from merge_group runs too by @haohuaijin in https://github.com/openobserve/openobserve/pull/13998
- test(dashboards): stabilize 7 dashboard specs against the alpha environment by @ktx-akshay in https://github.com/openobserve/openobserve/pull/13972
- fix(logs): persist the builder chart in saved views by @ktx-vaidehi in https://github.com/openobserve/openobserve/pull/13994
- fix: metric prefix not visible initially and table chart icons alignment by @ktx-abhay in https://github.com/openobserve/openobserve/pull/13996
- test(workflows): parametrized condition-eval matrix (17 cases) by @neha00290 in https://github.com/openobserve/openobserve/pull/13999
- fix: workflow UX improvements by @nikhilsaikethe in https://github.com/openobserve/openobserve/pull/13929
- perf(traces): batched per-stream scan for multi-id time range lookup by @hengfeiyang in https://github.com/openobserve/openobserve/pull/14002
- feat(alerts): add is_null/is_not_null/is_empty/is_not_empty condition operators for alerts, pipelines and evaluator filters by @hengfeiyang in https://github.com/openobserve/openobserve/pull/13978
- fix(rum): add missing share URL support to RUM pages by @omkarK06 in https://github.com/openobserve/openobserve/pull/14003
- perf(promql): replace per-window counter reset scans with a per-series prefix by @haohuaijin in https://github.com/openobserve/openobserve/pull/13997
- feat: org-scoped search inspector with dedicated permission by @hengfeiyang in https://github.com/openobserve/openobserve/pull/14005
- feat(llm-obs): add Playground and remote task workflows by @uddhavdave in https://github.com/openobserve/openobserve/pull/13991
- chore: remove action scripts / action server by @hengfeiyang in https://github.com/openobserve/openobserve/pull/14000
- feat(synthetics): meter step-based billing usage, shipped dark by @Loaki07 in https://github.com/openobserve/openobserve/pull/13951
- @sangharshcs made their first contribution in https://github.com/openobserve/openobserve/pull/13633
- @Pinguladora made their first contribution in https://github.com/openobserve/openobserve/pull/13703
- @latent-9 made their first contribution in https://github.com/openobserve/openobserve/pull/13705
- @ameyypawar made their first contribution in https://github.com/openobserve/openobserve/pull/13773
- @jvaldesbit made their first contribution in https://github.com/openobserve/openobserve/pull/13830
- @sidharth-sinhasane made their first contribution in https://github.com/openobserve/openobserve/pull/13937
Full Changelog: https://github.com/openobserve/openobserve/compare/v0.92.0-rc3...v1.0.0-rc1
v8.1.0-RC1
Special thanks to the following individuals for their excellent contributions:
- @V1del
- @Yilialinn
- @leleuj
- @mateofacu
- @milansie
- @mmoayyed
- @rce
- @ribafish
RustFS 1.0.0-rc.4-preview.1 (preview)
- fix: make DeleteObjects idempotent for raw not-found errors by @cxymds in https://github.com/rustfs/rustfs/pull/6323
- feat(ecstore): tune fdatasync group wait budget by @houseme in https://github.com/rustfs/rustfs/pull/6327
- fix(ci): update package checksums safely by @overtrue in https://github.com/rustfs/rustfs/pull/6329
- fix(iam): preserve MinIO permanent credentials in migration by @GatewayJ in https://github.com/rustfs/rustfs/pull/6328
- perf(server): trim internode REST compat stack by @houseme in https://github.com/rustfs/rustfs/pull/6330
- fix(ecstore): avoid decommission walk deadline on backpressure by @cxymds in https://github.com/rustfs/rustfs/pull/6332
- fix(scanner): defer usage publication during pool recovery by @cxymds in https://github.com/rustfs/rustfs/pull/6333
- feat(connect): answer offline enrolment challenges without a network by @overtrue in https://github.com/rustfs/rustfs/pull/6335
- ci: harden test selection and nightly coverage by @overtrue in https://github.com/rustfs/rustfs/pull/6341
- feat(connect): add registration and credential rotation by @overtrue in https://github.com/rustfs/rustfs/pull/6353
- chore(ecstore): standardize 24 bare TODO/FIXME to tracked format by @overtrue in https://github.com/rustfs/rustfs/pull/6346
- docs(agents): streamline instruction routing by @overtrue in https://github.com/rustfs/rustfs/pull/6358
- chore(obs): rename ReplicationStats to ReplicationMetricsSnapshot by @overtrue in https://github.com/rustfs/rustfs/pull/6344
- chore(madmin): remove dead trace structs, keep TraceType only by @overtrue in https://github.com/rustfs/rustfs/pull/6343
- refactor(e2e): consolidate duplicated helper functions into common.rs by @overtrue in https://github.com/rustfs/rustfs/pull/6355
- test(ci): bound s3-tests failure logs by @overtrue in https://github.com/rustfs/rustfs/pull/6361
- feat(disk): fsync dedicated blocking pool (default-off) by @houseme in https://github.com/rustfs/rustfs/pull/6366
- ci: let feature validation jobs finish by @overtrue in https://github.com/rustfs/rustfs/pull/6364
- perf(ecstore): throttle decommission checkpoints by @cxymds in https://github.com/rustfs/rustfs/pull/6356
- fix(ecstore): fail closed on unresolved decommission entries by @cxymds in https://github.com/rustfs/rustfs/pull/6367
- fix(rpc): bound internode concurrency under multipart load by @overtrue in https://github.com/rustfs/rustfs/pull/6368
- fix(heal): retain displaced task status by @cxymds in https://github.com/rustfs/rustfs/pull/6370
- fix(ecstore): preserve remote delete error types by @overtrue in https://github.com/rustfs/rustfs/pull/6371
- fix(scanner): isolate corrupt cycle state by @cxymds in https://github.com/rustfs/rustfs/pull/6354
- fix(quota): account compressed deletes by committed size by @cxymds in https://github.com/rustfs/rustfs/pull/6365
- fix(admin): expose per-target disableProxy through remote target admin API by @reatang in https://github.com/rustfs/rustfs/pull/6376
- test(ecstore): cover suspended-owner heal semantics by @cxymds in https://github.com/rustfs/rustfs/pull/6348
- test(e2e): wait for heal peers after node rejoin by @overtrue in https://github.com/rustfs/rustfs/pull/6359
- refactor(data-usage): rename ReplicationStats to ReplicationTargetUsage by @overtrue in https://github.com/rustfs/rustfs/pull/6345
- fix(storageclass): use div_ceil for inline threshold to match shard size calc by @houseme in https://github.com/rustfs/rustfs/pull/6390
- fix(ecstore): supervise decommission worker cleanup by @overtrue in https://github.com/rustfs/rustfs/pull/6372
- fix(scanner): fence timed out scan cycles by @cxymds in https://github.com/rustfs/rustfs/pull/6352
- feat(connect): emit durable heartbeats by @overtrue in https://github.com/rustfs/rustfs/pull/6383
- test(kms): replace 33 hard-coded startup sleeps with readiness probe by @overtrue in https://github.com/rustfs/rustfs/pull/6349
- fix(ecstore): fence deletes against decommission commits by @overtrue in https://github.com/rustfs/rustfs/pull/6363
- feat(ecstore): coalesce GET ReadVersion RPCs by @houseme in https://github.com/rustfs/rustfs/pull/6395
- fix(heal): supervise scheduler task panics by @cxymds in https://github.com/rustfs/rustfs/pull/6351
- perf(ecstore): bound decommission entry workers by @cxymds in https://github.com/rustfs/rustfs/pull/6360
- ci: detect incomplete and stale scheduled validations by @overtrue in https://github.com/rustfs/rustfs/pull/6357
- fix(policy): accept legacy bucket policy ID field by @GatewayJ in https://github.com/rustfs/rustfs/pull/6362
- fix(ecstore): reject equal-time latest identity conflicts before index fallback by @overtrue in https://github.com/rustfs/rustfs/pull/6374
- ci(s3tests): stabilize HAProxy request handling by @overtrue in https://github.com/rustfs/rustfs/pull/6386
- ci(mint): pin manual image default by @overtrue in https://github.com/rustfs/rustfs/pull/6387
- ci(perf): fix nightly regression baseline by @overtrue in https://github.com/rustfs/rustfs/pull/6389
- test(e2e): fix nightly validation oracles by @overtrue in https://github.com/rustfs/rustfs/pull/6397
- ci: align cache writer and reader keys by @overtrue in https://github.com/rustfs/rustfs/pull/6398
- test(e2e): remove fake KMS suite results by @overtrue in https://github.com/rustfs/rustfs/pull/6401
- fix(admin): four site-replication interop correctness fixes (B5-rc T2) by @reatang in https://github.com/rustfs/rustfs/pull/6399
- fix(heal): fence format repair during pool transitions by @cxymds in https://github.com/rustfs/rustfs/pull/6342
- fix(ecstore): remove inline write debug noise by @houseme in https://github.com/rustfs/rustfs/pull/6408
- feat(allocator): replace mimalloc/libmimalloc-sys with rustfs-mimalloc/rustfs-mimalloc-sys by @houseme in https://github.com/rustfs/rustfs/pull/6404
- docs(testing): document CI gate matrix by @overtrue in https://github.com/rustfs/rustfs/pull/6412
- fix(ecstore): keep unknown-size sentinel in create_bitrot_writer by @reatang in https://github.com/rustfs/rustfs/pull/6380
- test(kms): stabilize Vault failover validation by @overtrue in https://github.com/rustfs/rustfs/pull/6385
- test(scripts): add reset-safe internode metric sampling by @houseme in https://github.com/rustfs/rustfs/pull/6437
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/6436
- perf(runtime): enable fsync thread isolation by default by @houseme in https://github.com/rustfs/rustfs/pull/6438
- fix(ecstore): default rename fanout to parallel early-ack path by @houseme in https://github.com/rustfs/rustfs/pull/6443
- perf(ecstore): reduce batch read identity cloning by @houseme in https://github.com/rustfs/rustfs/pull/6441
- fix(ecstore): merge peer pool meta reload monotonically by @overtrue in https://github.com/rustfs/rustfs/pull/6392
- fix(heal): make resume checkpoints crash consistent by @cxymds in https://github.com/rustfs/rustfs/pull/6340
- fix(replication): deny non-owner replication config edits under site replication by @reatang in https://github.com/rustfs/rustfs/pull/6375
- fix(admin): bound site replication lifecycle lock and parallelize add preflight by @reatang in https://github.com/rustfs/rustfs/pull/6378
- fix(ecstore): preserve ILM state during pool decommission by @overtrue in https://github.com/rustfs/rustfs/pull/6369
- fix(app): wait for peer bucket metadata reload by @overtrue in https://github.com/rustfs/rustfs/pull/6381
- fix(scanner): publish per-set usage freshness by @cxymds in https://github.com/rustfs/rustfs/pull/6432
- docs(scanner): baseline scanner heal admission by @cxymds in https://github.com/rustfs/rustfs/pull/6426
- fix(heal): coalesce duplicate MRF intents by @cxymds in https://github.com/rustfs/rustfs/pull/6425
- fix(heal): add bounded resume artifact inspection by @cxymds in https://github.com/rustfs/rustfs/pull/6420
- fix(scanner): discover sub-quorum heal candidates by @cxymds in https://github.com/rustfs/rustfs/pull/6384
- fix(scanner): fence system metadata publication by @cxymds in https://github.com/rustfs/rustfs/pull/6444
- fix(scanner): unify unknown metadata size accounting by @cxymds in https://github.com/rustfs/rustfs/pull/6394
- fix(heal): correct progress accounting by @cxymds in https://github.com/rustfs/rustfs/pull/6382
- fix(scanner): fence unknown tier accounting by @cxymds in https://github.com/rustfs/rustfs/pull/6396
- feat(metrics): expose deferred usage freshness by @cxymds in https://github.com/rustfs/rustfs/pull/6449
- perf(ecstore): attribute batch read version wait stages by @houseme in https://github.com/rustfs/rustfs/pull/6456
- test(e2e): activate group management regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6405
- fix(admin): advertise IAM admin capabilities in runtime capabilities by @reatang in https://github.com/rustfs/rustfs/pull/6336
- fix(admin): use madmin key names in list-remote-targets response by @reatang in https://github.com/rustfs/rustfs/pull/6377
- fix(replication): apply receiver-side LWW to inbound metadata categories by @reatang in https://github.com/rustfs/rustfs/pull/6379
- ci(coverage): add security ratchet calibration by @overtrue in https://github.com/rustfs/rustfs/pull/6388
- test(e2e): enforce external client prerequisites by @overtrue in https://github.com/rustfs/rustfs/pull/6402
- ci: pin s3tests Python tools by @overtrue in https://github.com/rustfs/rustfs/pull/6407
- ci: add s3tests upstream HEAD canary by @overtrue in https://github.com/rustfs/rustfs/pull/6409
- fix(ci): make Warp ABBA evidence bounded and complete by @overtrue in https://github.com/rustfs/rustfs/pull/6417
- test(e2e): fail incomplete conditional PUT races by @overtrue in https://github.com/rustfs/rustfs/pull/6421
- test(e2e): add platform-safe selection updates by @overtrue in https://github.com/rustfs/rustfs/pull/6424
- fix(ecstore): tolerate migration identity rewrites by @overtrue in https://github.com/rustfs/rustfs/pull/6447
- feat(connect): add registration bootstrap command by @overtrue in https://github.com/rustfs/rustfs/pull/6452
- fix(server): adapt quick-xml name handling by @houseme in https://github.com/rustfs/rustfs/pull/6458
- fix(ecstore): terminate walk directory streams by @overtrue in https://github.com/rustfs/rustfs/pull/6462
- feat(connect): collect bounded offline diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/6450
- fix(ecstore): retry decommission entries safely on source changes by @overtrue in https://github.com/rustfs/rustfs/pull/6419
- feat(connect): emit low-frequency inventory by @overtrue in https://github.com/rustfs/rustfs/pull/6418
- ci: install protocol socket oracle by @overtrue in https://github.com/rustfs/rustfs/pull/6411
- fix(object-lock): unblock authorized replication writes on locked versions and tolerate cleared lock metadata by @reatang in https://github.com/rustfs/rustfs/pull/6413
- fix(ci): restore workspace lint compatibility by @houseme in https://github.com/rustfs/rustfs/pull/6460
- fix(ecstore): drain multipart uploads before decommission by @overtrue in https://github.com/rustfs/rustfs/pull/6414
- fix(ecstore): persist cancel before signaling by @overtrue in https://github.com/rustfs/rustfs/pull/6423
- fix(ecstore): recover pool metadata from replicas by @overtrue in https://github.com/rustfs/rustfs/pull/6457
- test: add coalescer delay cost report by @houseme in https://github.com/rustfs/rustfs/pull/6464
- fix(ci): restore main branch checks by @overtrue in https://github.com/rustfs/rustfs/pull/6465
- test(e2e): activate conditional write regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6454
- fix(ecstore): fence bucket heal during decommission by @overtrue in https://github.com/rustfs/rustfs/pull/6416
- fix(ecstore): unify decommission resume queue by @overtrue in https://github.com/rustfs/rustfs/pull/6403
- fix(ci): restore main checks by @overtrue in https://github.com/rustfs/rustfs/pull/6467
- fix(ecstore): run metadata decommission before buckets by @overtrue in https://github.com/rustfs/rustfs/pull/6410
- style: rustfmt decommission import groups on main by @overtrue in https://github.com/rustfs/rustfs/pull/6474
- fix(ecstore): migrate tier free versions during decommission by @overtrue in https://github.com/rustfs/rustfs/pull/6393
- fix(connect): make registration bootstrap retry durable by @overtrue in https://github.com/rustfs/rustfs/pull/6468
- fix(ci): restore main checks by @overtrue in https://github.com/rustfs/rustfs/pull/6469
- fix(ecstore): drop unused decommission bucket runner and refresh e2e linux digest by @overtrue in https://github.com/rustfs/rustfs/pull/6476
- fix(scanner): preserve default usage cache wire format by @overtrue in https://github.com/rustfs/rustfs/pull/6477
- test(scanner): repair post-fence fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6478
- test(app): distinguish usage overlay from quota floor by @overtrue in https://github.com/rustfs/rustfs/pull/6479
- fix(ecstore): prefer active pool reads during decommission by @overtrue in https://github.com/rustfs/rustfs/pull/6475
- fix(ecstore): fence rebalance and decommission activation by @overtrue in https://github.com/rustfs/rustfs/pull/6400
- fix(ecstore): persist unresolved decommission entries by @overtrue in https://github.com/rustfs/rustfs/pull/6415
- test(e2e): activate policy variable coverage by @overtrue in https://github.com/rustfs/rustfs/pull/6427
- test(e2e): require zero KMS concurrency failures by @overtrue in https://github.com/rustfs/rustfs/pull/6428
- test(e2e): activate data usage regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6429
- test(e2e): activate configured Vault coverage by @overtrue in https://github.com/rustfs/rustfs/pull/6430
- fix(e2e): honor custom Cargo target directory by @overtrue in https://github.com/rustfs/rustfs/pull/6434
- test(e2e): activate S3 Select regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6442
- fix(scanner): reject duplicate usage updates by @cxymds in https://github.com/rustfs/rustfs/pull/6445
- fix(scanner): fence movement generation publication by @cxymds in https://github.com/rustfs/rustfs/pull/6461
- fix(ecstore): fence pool metadata replica updates by @overtrue in https://github.com/rustfs/rustfs/pull/6466
- fix(replication): tolerate orphaned resync intents at startup by @reatang in https://github.com/rustfs/rustfs/pull/6470
- fix(scanner): bootstrap pristine usage baseline by @overtrue in https://github.com/rustfs/rustfs/pull/6471
- fix(ecstore): avoid nested prefix listing amplification by @marshawcoco in https://github.com/rustfs/rustfs/pull/6473
- chore(deps): bump p256 from 0.13.2 to 0.14.0 in the dependencies group by @dependabot[bot] in https://github.com/rustfs/rustfs/pull/6481
- test(e2e): require 404 absence oracles by @overtrue in https://github.com/rustfs/rustfs/pull/6485
- fix(scanner): restore s3s footprint baseline by @overtrue in https://github.com/rustfs/rustfs/pull/6486
- fix(app): restore stable Rust 1.98 builds by @overtrue in https://github.com/rustfs/rustfs/pull/6487
- fix(ecstore): complete rename tails after quorum ack by @overtrue in https://github.com/rustfs/rustfs/pull/6489
- test(e2e): fail closed on runner readiness by @overtrue in https://github.com/rustfs/rustfs/pull/6490
- test(ci): require dependency-aware readiness by @overtrue in https://github.com/rustfs/rustfs/pull/6491
- test(e2e): fail closed on compression disk probes by @overtrue in https://github.com/rustfs/rustfs/pull/6492
- test(e2e): fail closed on missing socket oracle by @overtrue in https://github.com/rustfs/rustfs/pull/6493
- test(e2e): refresh Linux full-suite selection by @overtrue in https://github.com/rustfs/rustfs/pull/6495
- perf(ecstore): add bucket existence cache and allocator feature flags by @houseme in https://github.com/rustfs/rustfs/pull/6496
- test(e2e): require authorization denial codes by @overtrue in https://github.com/rustfs/rustfs/pull/6497
- fix(ci): repair post-merge build gates by @overtrue in https://github.com/rustfs/rustfs/pull/6508
- test(ilm): isolate multipart compensation stack by @cxymds in https://github.com/rustfs/rustfs/pull/6499
- fix(scanner): clarify follower status by @marshawcoco in https://github.com/rustfs/rustfs/pull/6503
- fix(table-catalog): return 503 when commit authority is unavailable by @marshawcoco in https://github.com/rustfs/rustfs/pull/6506
- fix(ci): restore post-merge test gates by @overtrue in https://github.com/rustfs/rustfs/pull/6509
- docs(operations): document rebalance impact assessment by @overtrue in https://github.com/rustfs/rustfs/pull/6510
- fix(ci): repair post-merge test gates by @cxymds in https://github.com/rustfs/rustfs/pull/6511
- fix(ci): refresh e2e full selection by @overtrue in https://github.com/rustfs/rustfs/pull/6512
- fix(build): restore mimalloc workspace dependency by @overtrue in https://github.com/rustfs/rustfs/pull/6500
- docs: remove ROSS Index badge from README by @loverustfs in https://github.com/rustfs/rustfs/pull/6514
- fix(tests): raise recursion limit for rustfs e2e crates by @houseme in https://github.com/rustfs/rustfs/pull/6513
- test(connect): use protected home for bootstrap fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6515
- test(scanner): align pristine startup fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6516
- test(iam): create legacy migration bucket through store by @overtrue in https://github.com/rustfs/rustfs/pull/6517
- fix(ci): repair main test regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6519
- fix(test-utils): raise recursion limit for lib tests by @houseme in https://github.com/rustfs/rustfs/pull/6518
- fix(health): reflect node readiness in /health response body by @houseme in https://github.com/rustfs/rustfs/pull/6520
- fix(quota): reconcile matching scanner usage by @overtrue in https://github.com/rustfs/rustfs/pull/6521
- fix(ecstore): enforce monotonic transition cursors by @overtrue in https://github.com/rustfs/rustfs/pull/6522
- test(ci): stabilize main fixture paths by @overtrue in https://github.com/rustfs/rustfs/pull/6523
- fix(iam): raise recursion limit for migration test by @houseme in https://github.com/rustfs/rustfs/pull/6524
- fix(storage): stabilize main regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6525
- fix(quota): release reconciled delete holds by @overtrue in https://github.com/rustfs/rustfs/pull/6526
- fix(ecstore): heap-allocate durable ILM receipt futures by @reatang in https://github.com/rustfs/rustfs/pull/6527
- fix(multipart): enforce complete part number limit by @overtrue in https://github.com/rustfs/rustfs/pull/6528
- test(ci): stabilize Connect and health fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6529
- test(e2e): require remaining 404 absence oracles by @overtrue in https://github.com/rustfs/rustfs/pull/6530
- fix(table-catalog): classify storage quorum as unavailable by @marshawcoco in https://github.com/rustfs/rustfs/pull/6531
- test(e2e): require exact object lock errors by @overtrue in https://github.com/rustfs/rustfs/pull/6532
- test(ilm): isolate suspended restore stack by @overtrue in https://github.com/rustfs/rustfs/pull/6533
- fix(e2e): box delete object errors by @overtrue in https://github.com/rustfs/rustfs/pull/6534
- fix(storage): stabilize nextest regressions by @overtrue in https://github.com/rustfs/rustfs/pull/6543
- fix(memory): cgroup-aware resource detection for container environments by @houseme in https://github.com/rustfs/rustfs/pull/6536
- feat(connect): persist sanitized inventory snapshot by @overtrue in https://github.com/rustfs/rustfs/pull/6537
- perf: optimize cgroup resource detection with single System instance by @houseme in https://github.com/rustfs/rustfs/pull/6550
- test(e2e): require exact retention errors by @overtrue in https://github.com/rustfs/rustfs/pull/6535
- test(e2e): require exact bucket compatibility errors by @overtrue in https://github.com/rustfs/rustfs/pull/6540
- test(e2e): require exact quota errors by @overtrue in https://github.com/rustfs/rustfs/pull/6544
- test(e2e): require exact SSE-C errors by @overtrue in https://github.com/rustfs/rustfs/pull/6546
- test(fuzz): record reproducible run seeds by @overtrue in https://github.com/rustfs/rustfs/pull/6547
- test(e2e): require exact checksum errors by @overtrue in https://github.com/rustfs/rustfs/pull/6548
- test(heal): wait for fixture writes before corruption by @overtrue in https://github.com/rustfs/rustfs/pull/6549
- ci: preserve failure verdict before early stop by @overtrue in https://github.com/rustfs/rustfs/pull/6552
- test(kms): require exact fault recovery errors by @overtrue in https://github.com/rustfs/rustfs/pull/6553
- test(e2e): add pinned direct upgrade gate by @overtrue in https://github.com/rustfs/rustfs/pull/6555
- test(e2e): require exact versioning oracles by @overtrue in https://github.com/rustfs/rustfs/pull/6556
- test(e2e): require bucket policy denial code by @overtrue in https://github.com/rustfs/rustfs/pull/6557
- test(e2e): fail closed on tampered payloads by @overtrue in https://github.com/rustfs/rustfs/pull/6558
- test(iam): verify JWKS rotation refresh by @overtrue in https://github.com/rustfs/rustfs/pull/6559
- test(e2e): tighten control character rejection oracle by @overtrue in https://github.com/rustfs/rustfs/pull/6561
- test: add live Keycloak OIDC gate by @overtrue in https://github.com/rustfs/rustfs/pull/6562
- fix(config): enable allocator reclaim by default by @houseme in https://github.com/rustfs/rustfs/pull/6566
- perf(ecstore): add Vec buffer pool for EC operations by @houseme in https://github.com/rustfs/rustfs/pull/6538
- chore(deps): update s3s revision by @houseme in https://github.com/rustfs/rustfs/pull/6545
- fix(health): align ready with lock quorum by @houseme in https://github.com/rustfs/rustfs/pull/6554
- fix(capacity): skip idle scheduled disk scans by @marshawcoco in https://github.com/rustfs/rustfs/pull/6541
- test(ecstore): avoid virtual timeout for sync batch by @overtrue in https://github.com/rustfs/rustfs/pull/6551
- fix(health): keep liveness peer independent by @houseme in https://github.com/rustfs/rustfs/pull/6576
- test(e2e): make security boundary oracles fail closed by @overtrue in https://github.com/rustfs/rustfs/pull/6542
- fix(connect): use persisted inventory for offline collectors by @overtrue in https://github.com/rustfs/rustfs/pull/6560
- test(keycloak): fix Keycloak OIDC live fixture by @overtrue in https://github.com/rustfs/rustfs/pull/6563
- fix(api): preserve typed upload digest errors by @overtrue in https://github.com/rustfs/rustfs/pull/6564
- fix(heal): reconcile dangling objects after node reconnect by @marshawcoco in https://github.com/rustfs/rustfs/pull/6567
- fix(put): reap cancelled eager commit owners by @GatewayJ in https://github.com/rustfs/rustfs/pull/6569
- fix(replication): retry startup resync lock failures by @GatewayJ in https://github.com/rustfs/rustfs/pull/6570
- test(heal): wait for versioned fixture copies by @overtrue in https://github.com/rustfs/rustfs/pull/6571
- fix(s3): reject tampered multipart payloads cleanly by @overtrue in https://github.com/rustfs/rustfs/pull/6578
- feat(connect): build signed offline bundles by @overtrue in https://github.com/rustfs/rustfs/pull/6579
- fix(ecstore): handle metadata-less bucket residue by @houseme in https://github.com/rustfs/rustfs/pull/6591
- fix(connect): adapt offline array predicate by @overtrue in https://github.com/rustfs/rustfs/pull/6581
- test(e2e): update smoke selection baseline by @overtrue in https://github.com/rustfs/rustfs/pull/6582
- test(get): stage relocated fixture after reader opens by @overtrue in https://github.com/rustfs/rustfs/pull/6584
- ci: bound feature test link concurrency by @overtrue in https://github.com/rustfs/rustfs/pull/6594
- test(ci): give lifecycle transitions a larger stack by @overtrue in https://github.com/rustfs/rustfs/pull/6595
- ci: preserve ILM timeout diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/6602
- fix(ecstore): version pool metadata transactions by @overtrue in https://github.com/rustfs/rustfs/pull/6604
- test(e2e): require exact object lock rejection oracles by @overtrue in https://github.com/rustfs/rustfs/pull/6580
- ci: run live target backend tests by @overtrue in https://github.com/rustfs/rustfs/pull/6603
- test(diagnose): run binary smoke in CI by @overtrue in https://github.com/rustfs/rustfs/pull/6605
- feat(connect): rotate device credentials at runtime by @overtrue in https://github.com/rustfs/rustfs/pull/6586
- fix(audit): include deleted objects in bulk audit entries by @rjregenold in https://github.com/rustfs/rustfs/pull/6592
- perf(ecstore): optimize opts.clone() and FileInfo clone patterns by @houseme in https://github.com/rustfs/rustfs/pull/6587
- fix(startup): avoid blocking on resync reconcile by @houseme in https://github.com/rustfs/rustfs/pull/6593
- feat(admin): self-service account management and TOTP two-factor authentication by @sineld in https://github.com/rustfs/rustfs/pull/6596
- perf(sse): drop the second KMS decrypt from encrypted GET responses by @reatang in https://github.com/rustfs/rustfs/pull/6597
- perf(ecstore): enable encrypted range part-seek by default by @reatang in https://github.com/rustfs/rustfs/pull/6598
- feat(kms): seal persisted config secrets with RUSTFS_KMS_CONFIG_SECRET by @reatang in https://github.com/rustfs/rustfs/pull/6599
- feat(rio): authenticated fixed-frame v2 encryption layout behind a write switch by @reatang in https://github.com/rustfs/rustfs/pull/6600
- feat(ecstore): closed-form range seek for single-part v2 encrypted objects by @reatang in https://github.com/rustfs/rustfs/pull/6601
- docs(release): require confirmation after preview validation by @overtrue in https://github.com/rustfs/rustfs/pull/6607
- ci: stop daily freshness false alarms for dormant scheduled workflows by @overtrue in https://github.com/rustfs/rustfs/pull/6608
- fix(ci): restore merged main static gates by @overtrue in https://github.com/rustfs/rustfs/pull/6609
- test(obs): move source-text logging tests into the logging guardrail script by @overtrue in https://github.com/rustfs/rustfs/pull/6610
- fix(capacity): honor high-latency timeout profile by @marshawcoco in https://github.com/rustfs/rustfs/pull/6611
- fix(ci): restore merged main Clippy lanes by @overtrue in https://github.com/rustfs/rustfs/pull/6612
- ci: ratchet ecstore ::other(format!) error construction shrink-only by @overtrue in https://github.com/rustfs/rustfs/pull/6614
- test(ecstore): pin error conversion round-trips for heal-matched variants by @overtrue in https://github.com/rustfs/rustfs/pull/6613
- refactor(common): move scanner/heal contracts into dedicated crates by @overtrue in https://github.com/rustfs/rustfs/pull/6615
- fix(ci): clear remaining merged main Clippy lints by @overtrue in https://github.com/rustfs/rustfs/pull/6616
- fix(ci): keep Connect integration fixtures public-only by @overtrue in https://github.com/rustfs/rustfs/pull/6617
- refactor(protos): move compat manifest send-site assertions into owning crates by @overtrue in https://github.com/rustfs/rustfs/pull/6618
- feat(ecstore): type internode client-acquisition failures for quorum buckets by @overtrue in https://github.com/rustfs/rustfs/pull/6619
- fix(ci): release Connect test locks before await by @overtrue in https://github.com/rustfs/rustfs/pull/6620
- fix(ci): refresh Linux e2e full selection by @overtrue in https://github.com/rustfs/rustfs/pull/6625
- docs(ecstore): correct get_lock_acquire_timeout doc comment by @stevapple in https://github.com/rustfs/rustfs/pull/6622
- fix(scanner): rebuild missing usage floor after upgrade by @marshawcoco in https://github.com/rustfs/rustfs/pull/6624
- refactor(ecstore): make store-to-disk error narrowing named and fallible by @overtrue in https://github.com/rustfs/rustfs/pull/6626
- refactor(replication): name the resync state error and keep io failures typed by @overtrue in https://github.com/rustfs/rustfs/pull/6628
- refactor(ecstore): extract the embedded S3 client into rustfs-s3-client by @overtrue in https://github.com/rustfs/rustfs/pull/6627
- fix(policy): remove six dead error variants by @overtrue in https://github.com/rustfs/rustfs/pull/6631
- refactor(heal): classify recoverability typed-first with documented fallback by @overtrue in https://github.com/rustfs/rustfs/pull/6629
- fix(rio): prevent h2 keepalive from aborting active streams by @marshawcoco in https://github.com/rustfs/rustfs/pull/6630
- ci(nightly): build and upload a nightly deb package by @majinghe in https://github.com/rustfs/rustfs/pull/6632
- feat(kms): surface non-production backend positioning at runtime by @reatang in https://github.com/rustfs/rustfs/pull/6633
- test(ilm): cover restore failure expiry and retry by @cxymds in https://github.com/rustfs/rustfs/pull/6637
- test(iam): pin the policy-to-iam error mapping and record the fold verdict by @overtrue in https://github.com/rustfs/rustfs/pull/6635
- feat(kms): wire Vault custom CA and mTLS client identity by @reatang in https://github.com/rustfs/rustfs/pull/6638
- fix(tests): repair main CI fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6636
- feat(kms): bind encryption context into DEK envelopes as AAD by @reatang in https://github.com/rustfs/rustfs/pull/6639
- fix(tests): restrict Connect state tempdirs by @overtrue in https://github.com/rustfs/rustfs/pull/6642
- fix(tests): stabilize Connect inventory fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6645
- ci(nightly): persist the nightly deb on Cloudflare R2 by @majinghe in https://github.com/rustfs/rustfs/pull/6643
- fix(ci): suppress macOS-only dead-code warning for INVENTORY_UID by @overtrue in https://github.com/rustfs/rustfs/pull/6641
- feat(kms): object-level DEK rewrap adapter and Transit context-bound rewrap by @reatang in https://github.com/rustfs/rustfs/pull/6644
- fix(ci): refresh Linux full E2E selection by @overtrue in https://github.com/rustfs/rustfs/pull/6649
- perf(runtime): mark Tokio threads as mimalloc threadpool by @houseme in https://github.com/rustfs/rustfs/pull/6646
- ci(nightly): build on sm-standard-4 by @majinghe in https://github.com/rustfs/rustfs/pull/6652
- fix(tests): tolerate sparse resume shard fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6653
- perf(signer,ecstore): signing key cache + ahash by @houseme in https://github.com/rustfs/rustfs/pull/6651
- fix(tests): stabilize main CI concurrency fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/6655
- feat(kms): bulk DEK rekey sweep with admin API and kms:Rekey action by @reatang in https://github.com/rustfs/rustfs/pull/6654
- fix(connect): ignore directory link-count churn by @overtrue in https://github.com/rustfs/rustfs/pull/6658
- test(connect): isolate offline enrollment e2e root by @overtrue in https://github.com/rustfs/rustfs/pull/6659
- chore(build): tune release profile and QR dependency by @houseme in https://github.com/rustfs/rustfs/pull/6660
- test(ci): stabilize main verification gates by @overtrue in https://github.com/rustfs/rustfs/pull/6661
- refactor: migrate consumers off rustfs-common heal/scanner shims by @overtrue in https://github.com/rustfs/rustfs/pull/6623
- fix(ecstore): bound copy-source shard read-ahead by @cxymds in https://github.com/rustfs/rustfs/pull/6663
- test(connect): add short credential E2E profile by @overtrue in https://github.com/rustfs/rustfs/pull/6664
- chore(deps): refresh s3s and dependencies by @houseme in https://github.com/rustfs/rustfs/pull/6665
- refactor(ecstore): move object_lock WORM evaluation onto storage-level types by @overtrue in https://github.com/rustfs/rustfs/pull/6666
- feat(startup): expose resync reconcile observability by @houseme in https://github.com/rustfs/rustfs/pull/6667
- refactor(rustfs): split object_usecase.rs into per-operation app/object modules by @overtrue in https://github.com/rustfs/rustfs/pull/6670
- refactor(ecstore): drop the client shim, import rustfs-s3-client directly by @overtrue in https://github.com/rustfs/rustfs/pull/6668
- test(ci): serialize rekey Vault e2e by @overtrue in https://github.com/rustfs/rustfs/pull/6673
- test(connect): match offline enrollment rejection by @overtrue in https://github.com/rustfs/rustfs/pull/6675
- style(rustfs): format object split guard by @overtrue in https://github.com/rustfs/rustfs/pull/6676
- fix(ecstore): migrate test-only client import by @overtrue in https://github.com/rustfs/rustfs/pull/6678
- refactor(common): drop transitional heal/scanner contract shims by @overtrue in https://github.com/rustfs/rustfs/pull/6680
- fix(ci): make s3s footprint ratchet count the tree, not stdin by @overtrue in https://github.com/rustfs/rustfs/pull/6681
- chore(deps): clean up cargo shear findings by @houseme in https://github.com/rustfs/rustfs/pull/6679
- chore(deps): finish cargo shear cleanup by @houseme in https://github.com/rustfs/rustfs/pull/6682
- docs(architecture): adjudicate the io-metrics leaf dependency on the s3-ops contract crate by @overtrue in https://github.com/rustfs/rustfs/pull/6683
- feat(rpc): dual-write a typed not-initialized code on control-plane responses by @overtrue in https://github.com/rustfs/rustfs/pull/6684
- refactor(admin): route IAM policy and group auth through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6685
- refactor(admin): route user management authorization through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6686
- refactor(admin): route pool, rebalance, and system authorization through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6687
- refactor(admin): route tier, bucket metadata, archive, transition, and oidc auth through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6688
- fix(ci): bound cold ILM compilation by @overtrue in https://github.com/rustfs/rustfs/pull/6689
- chore(deps): migrate direct encoding deps to simd by @houseme in https://github.com/rustfs/rustfs/pull/6690
- fix(config): tolerate legacy scalar heal/scanner config sections by @reatang in https://github.com/rustfs/rustfs/pull/6691
- fix(guards): catch dotted-form leaf deps, pin madmin to rustfs-signer by @overtrue in https://github.com/rustfs/rustfs/pull/6692
- fix(e2e): implement scanner lease RPC stubs by @overtrue in https://github.com/rustfs/rustfs/pull/6693
- refactor(admin): consolidate json_response, empty_response, and extract_query_params into admin utils by @overtrue in https://github.com/rustfs/rustfs/pull/6694
- chore(release): prepare 1.0.0-rc.4 by @overtrue in https://github.com/rustfs/rustfs/pull/6698
- refactor(checksums): unify s3-client checksum dispatch in one registry by @overtrue in https://github.com/rustfs/rustfs/pull/6696
- refactor(ecstore): retire set_disk lint blankets via explicit imports by @overtrue in https://github.com/rustfs/rustfs/pull/6697
- ci(pool-test): fix scheduled runs and env source by @majinghe in https://github.com/rustfs/rustfs/pull/6702
- refactor(admin): move site-replication service core out of handlers by @overtrue in https://github.com/rustfs/rustfs/pull/6699
- refactor(s3-client): drop superseded per-algorithm checksum plumbing by @overtrue in https://github.com/rustfs/rustfs/pull/6700
- test(ci): quarantine the relocated-pool GET resume fixture flake by @overtrue in https://github.com/rustfs/rustfs/pull/6704
- refactor(site-replication): converge send_peer_* into one request builder by @overtrue in https://github.com/rustfs/rustfs/pull/6705
- docs(rio): record the checksum hasher verdict and pin shared vectors by @overtrue in https://github.com/rustfs/rustfs/pull/6706
- test(get): tolerate quorum-tolerated disk gaps in relocated-pool test by @overtrue in https://github.com/rustfs/rustfs/pull/6707
- fix(ecstore): tighten decommission test-helper cfg gates to test-util by @overtrue in https://github.com/rustfs/rustfs/pull/6708
- test(pool): tolerate a stopped cluster in preflight by @majinghe in https://github.com/rustfs/rustfs/pull/6709
- test(pool): clean install via dpkg purge and split install/test phases by @majinghe in https://github.com/rustfs/rustfs/pull/6710
- test(rustfs): move manual bench tools to examples, gate Swift suites by @overtrue in https://github.com/rustfs/rustfs/pull/6712
- refactor(site-replication): migrate call sites to PeerAdminRequest, drop wrappers by @overtrue in https://github.com/rustfs/rustfs/pull/6713
- test(ci): point quarantine machinery at the legs it must protect by @overtrue in https://github.com/rustfs/rustfs/pull/6714
- chore(rustfs): remove stale manual-test-runners feature and README by @overtrue in https://github.com/rustfs/rustfs/pull/6715
- fix(test): wait for EC materialization in relocated-pool resume fixture by @overtrue in https://github.com/rustfs/rustfs/pull/6718
- test(targets,notify,audit): share a builder MockTarget testkit by @overtrue in https://github.com/rustfs/rustfs/pull/6717
- test(ecstore): wait for multipart rename tail epochs by @overtrue in https://github.com/rustfs/rustfs/pull/6723
- feat(s3): limit presigned PutObject content length by @cxymds in https://github.com/rustfs/rustfs/pull/6724
- feat(info): report all rustfs features by @houseme in https://github.com/rustfs/rustfs/pull/6722
- refactor(site-replication): move business tests next to the service module by @overtrue in https://github.com/rustfs/rustfs/pull/6716
- test: deflake config snapshot, presigned tamper, and pool resume tests by @reatang in https://github.com/rustfs/rustfs/pull/6721
- fix(server): align readiness with S3 admission by @marshawcoco in https://github.com/rustfs/rustfs/pull/6728
- fix(s3): accept s3tables SigV4 service by @GatewayJ in https://github.com/rustfs/rustfs/pull/6719
- ci(release): delete preview releases after the deliverable publishes by @overtrue in https://github.com/rustfs/rustfs/pull/6729
- test(pool): cover rebalance retry and cold-start recovery by @majinghe in https://github.com/rustfs/rustfs/pull/6720
- test(ecstore): make config tests robust to DEFAULT_KVS registration order by @reatang in https://github.com/rustfs/rustfs/pull/6731
- fix(health): bound remote lock online checks by @houseme in https://github.com/rustfs/rustfs/pull/6737
- test(heal): add node-outage heal E2E script and workflow by @majinghe in https://github.com/rustfs/rustfs/pull/6733
- feat(s3): enforce multipart presigned size limits by @cxymds in https://github.com/rustfs/rustfs/pull/6732
- perf(ecstore): use AHashMap for FileInfo metadata fields by @houseme in https://github.com/rustfs/rustfs/pull/6738
- fix(sse): document and lock anonymous denial under KMS key policy by @reatang in https://github.com/rustfs/rustfs/pull/6739
- test: fall back to writable temp files for logs/status in /tmp by @majinghe in https://github.com/rustfs/rustfs/pull/6743
- revert: rollback AHashMap changes and keep using std HashMap by @houseme in https://github.com/rustfs/rustfs/pull/6741
- perf(storage): gate large foreground PUT pressure by @houseme in https://github.com/rustfs/rustfs/pull/6751
- @rjregenold made their first contribution in https://github.com/rustfs/rustfs/pull/6592
- @sineld made their first contribution in https://github.com/rustfs/rustfs/pull/6596
- @stevapple made their first contribution in https://github.com/rustfs/rustfs/pull/6622
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0-rc.3...1.0.0-rc.4-preview.1
milvus-2.6.23
Release note is coming soon...