Skip to content

chore: release#657

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
release-plz/2026-07-10T01-12-13Z
Open

chore: release#657
github-actions[bot] wants to merge 1 commit into
mainfrom
release-plz/2026-07-10T01-12-13Z

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Package: dial9-trace-format-derive 0.4.1 -> 0.5.0

Package: dial9-trace-format 0.4.1 -> 0.5.0

Package: dial9-core 0.4.0-alpha.1 -> 0.4.0-alpha.1

Package: dial9-macro 0.3.7 -> 0.4.0

Package: dial9-utils 0.4.0-alpha.1 -> 0.4.0-alpha.1

0.4.0-alpha.2 - 2026-07-17

Package: dial9-tokio-telemetry 0.4.0-alpha.1 -> 0.4.0-alpha.2

Changes:

Added

  • dial9::main now enables graceful_shutdown (#527)
  • (config) [breaking] in-memory support for dial9 main macro (#490)
  • [breaking] replace TelemetryEvent and Rust decode side with new serde-based approach (#485)

Fixed

  • Avoid truncation when rendering the s3 browser view (#582)

Other

  • move memory profiling to dial9-perf-self-profile (#591)
  • move event bus to dial9-core (#549)
  • setup dial9-core (#540)
  • Drop aws-sdk-s3-transfer-manager, upload segments via aws-sdk-s3 PutObject (#668)
  • (deps) bump s3s crates to 0.14.1 to pull in patched quick-xml (#611)
  • [breaking] collapse handles into Dial9Handle / Dial9TokioHandle (#535)
  • (config) Remove legacy positional config (#538)
  • overlap trace download and parse (streaming decode + load-timing UX) (#568)
  • Support conventional unit suffixes for viewer (#516)
  • Cache the symbolizer across segments (#462) (#465)
  • Add dial9-html-report skill: agent-authored HTML trace reports (#488)
  • Improve Wire ID Resolution (#487)

Added

  • Explicit CPU profiling backend selection via CpuProfilingConfig::with_perf_backend() and CpuProfilingConfig::with_ctimer_backend() constructors. The default (Auto: try perf, fall back to ctimer) is unchanged (#579, #660)
  • In-memory writer (InMemoryWriter): run the trace pipeline with no filesystem dependency, encoded segments are held in process memory and shipped by the existing processor pipeline (#435)
  • #[dial9_tokio_telemetry::main] now performs an implicit graceful shutdown after the async body returns: it drops the runtime and drains the background worker so the final segment is symbolized, compressed, and uploaded. Configure the deadline with Dial9Config::builder()...graceful_shutdown(Duration) (default 1s) or skip it with .disable_graceful_shutdown(). The low-level TracedRuntime API is unchanged — call TelemetryGuard::graceful_shutdown yourself (#479)
  • SegmentProcessor::finalize_dump: custom processors can flush per-dump state when an on-demand dump completes (#549)
  • ProcessError::into_parts: destructure a processing error into its kind and the carried segment data (#549)
  • Memory profiling can run standalone, without dial9-core: depend on dial9-perf-self-profile with the memory-profiling feature, set SamplingAllocator as the global allocator, call MemoryProfiler::install(), and drain MemorySamples via MemorySampler::drain. The dial9 trace integration is that crate's dial9-source feature.

Changed

  • Programs using #[dial9_tokio_telemetry::main] with the fluent Dial9Config now drain the telemetry worker on clean exit (up to the graceful-shutdown deadline, default 1s) instead of exiting immediately. This adds a bounded amount of shutdown latency but ensures the final segment is processed; opt out with .disable_graceful_shutdown(). The deprecated positional config is unaffected (#479)
  • Breaking: renamed RotatingWriter to DiskWriter. The writer is now generic over its storage backend (SegmentWriter<Mode>) with DiskWriter / InMemoryWriter as the public types; memory constructors are InMemoryWriter::new / ::builder (#435)
  • Breaking: SegmentData::segment() returns &SegmentRef (disk- or memory-backed) instead of &SealedSegment; processors that read the segment path must match the enum (#435)
  • Breaking: collapsed the handle types into Dial9Handle (record/control, runtime-agnostic) and Dial9TokioHandle (spawn only). TelemetryHandle and RuntimeTelemetryHandle are removed (#535)
  • Breaking: recording is now a method: record_event(event, &handle) becomes handle.record_event(event) (#535)
  • Breaking: guard.handle() now returns Dial9Handle (record/control). To spawn instrumented tasks use Dial9TokioHandle::current(), guard.tokio_handle(&runtime), or the handle from trace_runtime().build() (#535)
  • Breaking: boot_id is no longer an S3Config builder field. The runtime injects the on-disk namespace boot_id into the S3 config at build time, so a local trace segment and its S3 key share one identity. An S3Config built outside the managed Dial9Config path falls back to a fresh {4-alpha}-{pid} (#566)
  • Memory profiling moved into dial9-perf-self-profile. The dial9_tokio_telemetry::memory_profiling::* paths are preserved by re-export, so most code is unaffected.
  • Breaking: MemoryProfiler::install no longer takes a Dial9Handle, it returns a MemorySampler for standalone draining. For the dial9 trace integration use MemoryProfiler::install_into(&handle) (#591)
  • Breaking: removed MemoryProfilerGuard. Memory profiling now drains for the session/guard lifetime (like CPU profiling) rather than being a permanent process-wide install (#591)
  • Breaking: renamed Dial9Allocator to SamplingAllocator, the global-allocator wrapper now lives in dial9-perf-self-profile and works without dial9 (#591)

Fixed

  • Viewer: browsing a nonexistent bucket now returns HTTP 404 instead of 500, and a syntactically invalid bucket name returns HTTP 400. The S3 NoSuchBucket/NoSuchKey and InvalidBucketName error codes were falling through to the generic error arm, which logged an "unclassified S3 error" and reported a server fault — so a user typo in the bucket name polluted the viewer's fault metric. They now classify as NotFound (404) and BadRequest (400) respectively.

Package: dial9 0.3.13 -> 0.3.14


Maintainer note: CI does not trigger automatically on this PR (GitHub limitation with GITHUB_TOKEN-created PRs). Close and reopen this PR to trigger CI before merging.

@github-actions
github-actions Bot force-pushed the release-plz/2026-07-10T01-12-13Z branch 13 times, most recently from dbfd185 to e23cb67 Compare July 15, 2026 10:21
@github-actions
github-actions Bot force-pushed the release-plz/2026-07-10T01-12-13Z branch from e23cb67 to eb73938 Compare July 17, 2026 20:56
@github-actions
github-actions Bot force-pushed the release-plz/2026-07-10T01-12-13Z branch from eb73938 to 82505f0 Compare July 17, 2026 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants