From c79b0b3d936d193031a062931575dd2fe489c8b3 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 8 May 2026 03:33:19 +0000 Subject: [PATCH] deps: bump lex-lang workspace pin from 0.2 to 0.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lex-lang 0.3.0 published 2026-05-08. The two breaking changes upstream — `EffectSet.concrete: BTreeSet` (#207) and `Value::Closure { body_hash }` (#222) — have zero impact on soft-agent; neither type is pattern-matched in any of our crates. This commit is mechanical: - Cargo.toml: 9 workspace pins (`lex-{syntax,ast,types,bytecode, runtime,store,trace,api}` + `spec-checker`) bumped from "0.2" to "0.3", plus a refreshed comment block. - Cargo.lock: cargo update resolves the chain. New transitive deps (ed25519-dalek, sha2, etc.) come in for the signed-stages feature upstream (#227), unused in soft today. - docs/lex-lang-0.3-upgrade.md: status flipped from "planning" to "landed", with a note that the three previously-open upstream follow-ups (#208, #209, #206) all shipped in the 0.3 train. Verified: - cargo fmt --all -- --check clean - cargo clippy --workspace --all-targets -- -D warnings clean - cargo test --workspace: zero failures - deploy/run-local.sh end-to-end: same happy-path behavior, replay reports "4 trace(s) replayed; no violations." Pre-staged work that #208 (spec-checker over ADTs + bounded list quantifiers) now unlocks — refactoring `agents/depot.spec` and `agents/vehicle.spec` to quantify directly over the action record and retiring `default_float_bindings` — is left to a follow-up PR. --- Cargo.lock | 221 ++++++++++++++++++++++++++++------- Cargo.toml | 24 ++-- docs/lex-lang-0.3-upgrade.md | 16 ++- 3 files changed, 207 insertions(+), 54 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 802fce5..0c9f123 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -56,6 +56,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" + [[package]] name = "bitflags" version = "1.3.2" @@ -186,6 +192,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "const-oid" version = "0.10.2" @@ -310,12 +322,49 @@ dependencies = [ "cmov", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "data-encoding" version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + [[package]] name = "digest" version = "0.10.7" @@ -333,7 +382,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer 0.12.0", - "const-oid", + "const-oid 0.10.2", "crypto-common 0.2.1", "ctutils", ] @@ -361,6 +410,30 @@ dependencies = [ "syn", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -395,6 +468,12 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -809,9 +888,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.97" +version = "0.3.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1840c94c045fbcf8ba2812c95db44499f7c64910a912551aaaa541decebcacf" +checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" dependencies = [ "cfg-if", "futures-util", @@ -827,37 +906,38 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "lex-ast" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193746218e17591b7359ce811be4db29d69e4628ffa8317daa79a14abd992b32" +checksum = "92c65fcdec04b6bd69d7c876b981da94d4e65512db2cf174fff2544736aea3d0" dependencies = [ "indexmap", "lex-syntax", "serde", "serde_json", - "sha2", + "sha2 0.11.0", "thiserror 2.0.18", ] [[package]] name = "lex-bytecode" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef81d65b95ae08737250ce5bbba5e1c6fead37a021db61407e273a5c6fb0da40" +checksum = "d3f6a508124ca8fd2546484273719e3d37d8f2757405addd8a510a5d4019c83e" dependencies = [ "indexmap", "lex-ast", "lex-types", "serde", "serde_json", + "sha2 0.11.0", "thiserror 2.0.18", ] [[package]] name = "lex-runtime" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cad8704631006fc2e83d776b9b0656a5c5618fe434906f806826acda2b80400" +checksum = "6b20561dd8fdc1840a0fef14f13a6e6e8043e0a21db3cc62ac9ecee94d1f565a" dependencies = [ "base64 0.22.1", "chrono", @@ -875,7 +955,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "sha2", + "sha2 0.11.0", "sled", "subtle", "thiserror 2.0.18", @@ -888,9 +968,9 @@ dependencies = [ [[package]] name = "lex-store" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a0499d38613734a61b17f2e3b1990a70781727a79120388d8faff3f47e5e54" +checksum = "a1b56b33e2248a0bce877dce9e8607c6e66e1e4700b9587f2143816b18e8c4cc" dependencies = [ "indexmap", "lex-ast", @@ -899,44 +979,44 @@ dependencies = [ "lex-vcs", "serde", "serde_json", - "sha2", + "sha2 0.11.0", "thiserror 2.0.18", ] [[package]] name = "lex-syntax" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2651d1ca239b464f85933ee7064196b941507471ec12bbb83dd8894ecd8d7062" +checksum = "3294bea9ce1a2cf1cbdb5349660acab92f4a9e9e1d7b5be50b3c31a207bafe4a" dependencies = [ "indexmap", "logos", "serde", "serde_json", - "sha2", + "sha2 0.11.0", "thiserror 2.0.18", ] [[package]] name = "lex-trace" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862df7cfeeab3fe253288c607d340accb6ff03ee8d872c64caa85a0b23a9f621" +checksum = "79c7108137e2cc6375ab18900cfda6650c0fcfcc8ab7b6b56e6d4470194acc97" dependencies = [ "indexmap", "lex-ast", "lex-bytecode", "serde", "serde_json", - "sha2", + "sha2 0.11.0", "thiserror 2.0.18", ] [[package]] name = "lex-types" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c46a7d43f3fd95109f46dececd9b380a9cf9296421a2486b160f4d2672978775" +checksum = "ee4457ca0c639b2792439c03906f8ba48d9485a924832b2ad23f98973b6a56e1" dependencies = [ "indexmap", "lex-ast", @@ -947,16 +1027,19 @@ dependencies = [ [[package]] name = "lex-vcs" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fc06235df03c69f4ca4dda25d8cb4d0dd56aac29d2dee32395b9637709080d0" +checksum = "681e11c5fe3e5a8b0a6930aa5d948768b58536cedf130a0ed1ec6f865c3bc1b8" dependencies = [ + "ed25519-dalek", + "getrandom 0.2.17", + "hex", "indexmap", "lex-ast", "lex-types", "serde", "serde_json", - "sha2", + "sha2 0.11.0", "thiserror 2.0.18", ] @@ -1165,6 +1248,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.33" @@ -1236,7 +1329,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha", - "rand_core", + "rand_core 0.9.5", ] [[package]] @@ -1246,7 +1339,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", ] [[package]] @@ -1339,6 +1441,15 @@ dependencies = [ "smallvec", ] +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + [[package]] name = "rustix" version = "1.1.4" @@ -1598,6 +1709,17 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest 0.10.7", +] + [[package]] name = "sha2" version = "0.11.0" @@ -1615,6 +1737,15 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "rand_core 0.6.4", +] + [[package]] name = "simd-adler32" version = "0.3.9" @@ -1715,9 +1846,9 @@ dependencies = [ [[package]] name = "spec-checker" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e2a5b9444e5ad3b939a0efb7ef42ae3ccd19764b615b45a6d8a3f14dfc28950" +checksum = "5e596d5ad7cb549df4079c6fec2f234be8490e9d3b0362c43c0081344ff9ed05" dependencies = [ "indexmap", "lex-ast", @@ -1727,7 +1858,7 @@ dependencies = [ "lex-types", "serde", "serde_json", - "sha2", + "sha2 0.11.0", "thiserror 2.0.18", ] @@ -1737,6 +1868,16 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" @@ -2059,9 +2200,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.120" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df52b6d9b87e0c74c9edfa1eb2d9bf85e5d63515474513aa50fa181b3c4f5db1" +checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" dependencies = [ "cfg-if", "once_cell", @@ -2072,9 +2213,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.120" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b1041f495fb322e64aca85f5756b2172e35cd459376e67f2a6c9dffcedb103" +checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2082,9 +2223,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.120" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcd0ff20416988a18ac686d4d4d0f6aae9ebf08a389ff5d29012b05af2a1b41" +checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" dependencies = [ "bumpalo", "proc-macro2", @@ -2095,9 +2236,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.120" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49757b3c82ebf16c57d69365a142940b384176c24df52a087fb748e2085359ea" +checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" dependencies = [ "unicode-ident", ] @@ -2138,9 +2279,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.97" +version = "0.3.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eadbac71025cd7b0834f20d1fe8472e8495821b4e9801eb0a60bd1f19827602" +checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/Cargo.toml b/Cargo.toml index 92b4d18..060f329 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,17 +15,19 @@ authors = ["soft contributors"] repository = "https://github.com/alpibrusl/soft" [workspace.dependencies] -# lex-lang v0.2.0 (published 2026-05-06; closes #184–#187 via PRs #189–#192). -# SemVer-pinned to "0.2"; breaking changes upstream bump to 0.3+. -lex-syntax = "0.2" -lex-ast = "0.2" -lex-types = "0.2" -lex-bytecode = "0.2" -lex-runtime = "0.2" -lex-store = "0.2" -lex-trace = "0.2" -lex-api = "0.2" -spec-checker = "0.2" +# lex-lang v0.3.0 (published 2026-05-08; closes #206–#209, #216–#219, #221–#225, +# #227, #240 via the 0.3 train). SemVer-pinned to "0.3"; the breaking changes +# (`EffectSet.concrete` shape, `Value::Closure { body_hash }`) don't affect +# soft-agent — see docs/lex-lang-0.3-upgrade.md for the audit. +lex-syntax = "0.3" +lex-ast = "0.3" +lex-types = "0.3" +lex-bytecode = "0.3" +lex-runtime = "0.3" +lex-store = "0.3" +lex-trace = "0.3" +lex-api = "0.3" +spec-checker = "0.3" indexmap = "2" serde = { version = "1", features = ["derive"] } diff --git a/docs/lex-lang-0.3-upgrade.md b/docs/lex-lang-0.3-upgrade.md index d89530c..c121f6b 100644 --- a/docs/lex-lang-0.3-upgrade.md +++ b/docs/lex-lang-0.3-upgrade.md @@ -1,8 +1,18 @@ # lex-lang 0.3 upgrade — soft-agent impact -**Status**: lex-lang [PR #230](https://github.com/alpibrusl/lex-lang/pull/230) merged -2026-05-07. Once a `0.3.0` is published, soft can bump its workspace pin -from `0.2` to `0.3`. +**Status**: ✅ landed in soft. lex-lang `0.3.0` published 2026-05-08; +workspace pinned to `0.3` and verified end-to-end (full test suite + +`deploy/run-local.sh` happy path) on the same date. The breaking +changes (`EffectSet.concrete: BTreeSet`, `Value::Closure { +body_hash }`) had zero impact on soft-agent — neither type is +pattern-matched anywhere in our crates. + +Open follow-ups from the original §"Open follow-ups upstream" section +have all closed in the 0.3 train: #208 (spec-checker over ADTs + +bounded list quantifiers), #209 (refinement types), #206 (canonical +AST as primary compilation surface). The `BindingsFn` flattening +helper called out in §208's note is now retire-able as a separate +slice. This document captures what changed upstream, what soft-agent has to do (almost nothing), and what soft-agent *can* do to take advantage of