From 5d7368faf690e8c5a30be540f14b51da3441be36 Mon Sep 17 00:00:00 2001 From: changepacks Date: Fri, 13 Nov 2026 17:30:11 +0000 Subject: [PATCH 1/2] Update Versions --- .changepacks/changepack_log_agents_line_counts.json | 1 - .changepacks/changepack_log_branch_coverage_lcov.json | 1 - .changepacks/changepack_log_c_abi_limits.json | 1 - .changepacks/changepack_log_cron-launch-race.json | 1 - .changepacks/changepack_log_cron-module-path.json | 1 - .../changepack_log_flaky_async_dispatch_test.json | 1 - .changepacks/changepack_log_java-principal-cap.json | 1 - .changepacks/changepack_log_miri_ffi.json | 1 - .../changepack_log_poll-first-task-context.json | 1 - .changepacks/changepack_log_reactive_native_hints.json | 1 - .changepacks/changepack_log_reactive_stream_abort.json | 1 - .changepacks/changepack_log_reattest-release.json | 1 - .changepacks/changepack_log_sbom_serial_number.json | 1 - .changepacks/changepack_log_split_vesperabridge.json | 1 - .changepacks/changepack_log_tracing-span-route.json | 1 - Cargo.toml | 10 +++++----- libs/vespera-bridge-gradle-plugin/build.gradle.kts | 2 +- libs/vespera-bridge/build.gradle.kts | 2 +- 18 files changed, 7 insertions(+), 22 deletions(-) delete mode 100644 .changepacks/changepack_log_agents_line_counts.json delete mode 100644 .changepacks/changepack_log_branch_coverage_lcov.json delete mode 100644 .changepacks/changepack_log_c_abi_limits.json delete mode 100644 .changepacks/changepack_log_cron-launch-race.json delete mode 100644 .changepacks/changepack_log_cron-module-path.json delete mode 100644 .changepacks/changepack_log_flaky_async_dispatch_test.json delete mode 100644 .changepacks/changepack_log_java-principal-cap.json delete mode 100644 .changepacks/changepack_log_miri_ffi.json delete mode 100644 .changepacks/changepack_log_poll-first-task-context.json delete mode 100644 .changepacks/changepack_log_reactive_native_hints.json delete mode 100644 .changepacks/changepack_log_reactive_stream_abort.json delete mode 100644 .changepacks/changepack_log_reattest-release.json delete mode 100644 .changepacks/changepack_log_sbom_serial_number.json delete mode 100644 .changepacks/changepack_log_split_vesperabridge.json delete mode 100644 .changepacks/changepack_log_tracing-span-route.json diff --git a/.changepacks/changepack_log_agents_line_counts.json b/.changepacks/changepack_log_agents_line_counts.json deleted file mode 100644 index cd040480..00000000 --- a/.changepacks/changepack_log_agents_line_counts.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"Docs: AGENTS.md key-component line counts refreshed and rows added for cron.rs, bounded.rs, cancel.rs and ParkingDispatch. No API change.","date":"2026-11-14T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_branch_coverage_lcov.json b/.changepacks/changepack_log_branch_coverage_lcov.json deleted file mode 100644 index 5d80e298..00000000 --- a/.changepacks/changepack_log_branch_coverage_lcov.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"CI: the observational branch-coverage job no longer fails when the pinned nightly's llvm-cov lcov export crashes; the coverage summary still runs. No API change.","date":"2026-11-13T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_c_abi_limits.json b/.changepacks/changepack_log_c_abi_limits.json deleted file mode 100644 index a9db5fbc..00000000 --- a/.changepacks/changepack_log_c_abi_limits.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"C ABI: `vespera_dispatch_async` now honours the async in-flight cap (shared with JNI `dispatchAsync`, default 4096, over the cap → inline 503), and C hosts can set runtime, limit, deadline and async-cap knobs with the new `vespera_configure_*` functions (`VESPERA_ERR_TOO_LATE` once fixed) instead of environment variables.","date":"2026-11-14T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_cron-launch-race.json b/.changepacks/changepack_log_cron-launch-race.json deleted file mode 100644 index 5b05de44..00000000 --- a/.changepacks/changepack_log_cron-launch-race.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"`vespera::cron::shutdown_and_wait` can no longer report idle while a cron run is starting: a tick that wakes up as shutdown begins now backs out instead of launching its job.","date":"2026-11-13T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_cron-module-path.json b/.changepacks/changepack_log_cron-module-path.json deleted file mode 100644 index f80af70e..00000000 --- a/.changepacks/changepack_log_cron-module-path.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"`#[vespera::cron]` jobs declared in `src/lib.rs` / `src/main.rs` or inside an inline `mod` now resolve to their real module path (previously `crate::lib::job` failed to compile and inline module segments were dropped), and a job declared after `vespera!` in a file that already has registered jobs is no longer skipped.","date":"2026-11-13T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_flaky_async_dispatch_test.json b/.changepacks/changepack_log_flaky_async_dispatch_test.json deleted file mode 100644 index 7eea29ab..00000000 --- a/.changepacks/changepack_log_flaky_async_dispatch_test.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"Test-only: AsyncDispatchTest no longer races the orTimeout delayer thread. No API change.","date":"2026-11-14T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_java-principal-cap.json b/.changepacks/changepack_log_java-principal-cap.json deleted file mode 100644 index 7a88a4ca..00000000 --- a/.changepacks/changepack_log_java-principal-cap.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"The Java bridge now forwards at most 1024 principal authorities and attributes (the Rust wire limit) and logs a one-time warning instead of every request of such a user failing with 400.","date":"2026-11-14T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_miri_ffi.json b/.changepacks/changepack_log_miri_ffi.json deleted file mode 100644 index b8b8cb26..00000000 --- a/.changepacks/changepack_log_miri_ffi.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"CI: Miri now also runs the C ABI (feature ffi) unit tests, covering its raw-pointer and buffer round-trips. No API change.","date":"2026-11-13T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_poll-first-task-context.json b/.changepacks/changepack_log_poll-first-task-context.json deleted file mode 100644 index 4382a344..00000000 --- a/.changepacks/changepack_log_poll-first-task-context.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"Documented that the virtual-thread poll-first dispatch runs the handler's first poll outside any Tokio task, and how to opt out with -Dvespera.virtualThread.pollFirst=false.","date":"2026-11-14T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_reactive_native_hints.json b/.changepacks/changepack_log_reactive_native_hints.json deleted file mode 100644 index 5268c049..00000000 --- a/.changepacks/changepack_log_reactive_native_hints.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"WebFlux apps built as GraalVM native images now get the Spring Security reflection hints (new VesperaSecurityRuntimeHints, imported by both autoconfigurations), and the anonymous-principal check compares class names, so Spring Security's anonymousUser is never forwarded as an authenticated principal even when the token class cannot be loaded.","date":"2026-11-13T00:00:00.000Z"} \ No newline at end of file diff --git a/.changepacks/changepack_log_reactive_stream_abort.json b/.changepacks/changepack_log_reactive_stream_abort.json deleted file mode 100644 index 8edeff15..00000000 --- a/.changepacks/changepack_log_reactive_stream_abort.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"The WebFlux proxy answers a streamed response that panics or fails before anything was committed with its own 500 (Rust status and headers such as Set-Cookie discarded, DispatchEvent.panicked set), aborts the connection once bytes were sent, and forwards form bodies a WebFilter such as Spring Security's CsrfWebFilter already read via getFormData() instead of an empty body.","date":"2026-11-13T00:00:00.000Z"} \ No newline at end of file diff --git a/.changepacks/changepack_log_reattest-release.json b/.changepacks/changepack_log_reattest-release.json deleted file mode 100644 index 3cab5aa3..00000000 --- a/.changepacks/changepack_log_reattest-release.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"Releases whose attestation step did not complete (such as 0.6.0) can now be given provenance and SBOM attestations afterwards; verify them with --signer-workflow dev-five-git/vespera/.github/workflows/reattest.yml.","date":"2026-11-14T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_sbom_serial_number.json b/.changepacks/changepack_log_sbom_serial_number.json deleted file mode 100644 index 682a6abe..00000000 --- a/.changepacks/changepack_log_sbom_serial_number.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"The crate SBOMs now carry a CycloneDX `serialNumber` (a reproducible UUID of name, version and commit), which `actions/attest` requires — the 0.6.0 release attested provenance but its SBOM attestations were rejected as \"Unsupported SBOM format\". `scripts/sbom.sh` checks the field on every PR. No API change.","date":"2026-11-13T00:00:00.000Z"} diff --git a/.changepacks/changepack_log_split_vesperabridge.json b/.changepacks/changepack_log_split_vesperabridge.json deleted file mode 100644 index cbdfeaf2..00000000 --- a/.changepacks/changepack_log_split_vesperabridge.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"VesperaBridge.java is brought back under the 1000-line file cap by moving its argument checks into a new package-private BridgeInputChecks class, native-library loading into VesperaNativeLoader and the virtual-thread pooled DIRECT dispatch into DirectModeDispatcher. No API change.","date":"2026-11-13T00:00:00.000Z"} \ No newline at end of file diff --git a/.changepacks/changepack_log_tracing-span-route.json b/.changepacks/changepack_log_tracing-span-route.json deleted file mode 100644 index 83abb864..00000000 --- a/.changepacks/changepack_log_tracing-span-route.json +++ /dev/null @@ -1 +0,0 @@ -{"changes":{"crates/vespera/Cargo.toml":"Minor","crates/vespera_core/Cargo.toml":"Minor","crates/vespera_macro/Cargo.toml":"Minor","crates/vespera_inprocess/Cargo.toml":"Minor","crates/vespera_jni/Cargo.toml":"Minor","libs/vespera-bridge/build.gradle.kts":"Minor","libs/vespera-bridge-gradle-plugin/build.gradle.kts":"Minor"},"note":"The tracing feature's vespera.dispatch span now records the matched route template as `route` (e.g. /users/{id}) instead of the raw request `path`, so secrets in path segments no longer reach logs.","date":"2026-11-14T00:00:00.000Z"} diff --git a/Cargo.toml b/Cargo.toml index eba13b46..67fa3bbc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ members = ["crates/*", "examples/*", "benches/*"] default-members = ["crates/*", "examples/*"] [workspace.package] -version = "0.6.0" +version = "0.7.0" edition = "2024" # MSRV of the published crates (crates/*). 1.88 is the floor set by # let-chains (`if a && let Some(..)`), stabilised in Rust 1.88 for edition @@ -49,10 +49,10 @@ lto = "fat" codegen-units = 1 [workspace.dependencies] -vespera_core = { path = "crates/vespera_core", version = "0.6.0" } -vespera_macro = { path = "crates/vespera_macro", version = "0.6.0" } -vespera_inprocess = { path = "crates/vespera_inprocess", version = "0.6.0" } -vespera_jni = { path = "crates/vespera_jni", version = "0.6.0" } +vespera_core = { path = "crates/vespera_core", version = "0.7.0" } +vespera_macro = { path = "crates/vespera_macro", version = "0.7.0" } +vespera_inprocess = { path = "crates/vespera_inprocess", version = "0.7.0" } +vespera_jni = { path = "crates/vespera_jni", version = "0.7.0" } # Runtime validator backend. Held behind the `validation` feature on # the `vespera` crate; users never name it directly — the proc-macro # emits paths via `::vespera::__validation::garde::...`. diff --git a/libs/vespera-bridge-gradle-plugin/build.gradle.kts b/libs/vespera-bridge-gradle-plugin/build.gradle.kts index 85feb4a3..8b8ddb2b 100644 --- a/libs/vespera-bridge-gradle-plugin/build.gradle.kts +++ b/libs/vespera-bridge-gradle-plugin/build.gradle.kts @@ -36,7 +36,7 @@ tasks.named("publishPlugins") { } group = "kr.devfive" -version = "0.6.0" +version = "0.7.0" java { toolchain { diff --git a/libs/vespera-bridge/build.gradle.kts b/libs/vespera-bridge/build.gradle.kts index d9964cd9..7f6b0b0e 100644 --- a/libs/vespera-bridge/build.gradle.kts +++ b/libs/vespera-bridge/build.gradle.kts @@ -14,7 +14,7 @@ plugins { } group = "kr.devfive" -version = "0.6.0" +version = "0.7.0" java { toolchain { From d9e458c29aa8a42adc83d3feedccda10eb17c016 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 13 Nov 2026 17:30:17 +0000 Subject: [PATCH 2/2] Sync Cargo.lock with the bumped workspace versions --- Cargo.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6b81c8d6..00c34d52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3567,7 +3567,7 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vespera" -version = "0.6.0" +version = "0.7.0" dependencies = [ "axum", "axum-extra", @@ -3594,7 +3594,7 @@ dependencies = [ [[package]] name = "vespera_core" -version = "0.6.0" +version = "0.7.0" dependencies = [ "chrono-tz", "croner", @@ -3606,7 +3606,7 @@ dependencies = [ [[package]] name = "vespera_inprocess" -version = "0.6.0" +version = "0.7.0" dependencies = [ "arc-swap", "axum", @@ -3629,7 +3629,7 @@ dependencies = [ [[package]] name = "vespera_jni" -version = "0.6.0" +version = "0.7.0" dependencies = [ "axum", "futures-util", @@ -3642,7 +3642,7 @@ dependencies = [ [[package]] name = "vespera_macro" -version = "0.6.0" +version = "0.7.0" dependencies = [ "insta", "prettyplease",