From 0d63c9b7c5ac9eebfc809a31ca8c05e1f0467ebe Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 30 Jul 2025 08:26:55 +0000 Subject: [PATCH 1/2] Checkpoint before follow-up message --- Cargo.lock | 373 +++++++++++++++++++++++++++-------------------------- 1 file changed, 188 insertions(+), 185 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fb0e8d86e..2d542e1aa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -975,7 +975,7 @@ dependencies = [ "hyper-util", "pin-project-lite", "rustls 0.21.12", - "rustls 0.23.31", + "rustls 0.23.29", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", @@ -1191,7 +1191,7 @@ dependencies = [ "hyper 1.6.0", "hyper-util", "pin-project-lite", - "rustls 0.23.31", + "rustls 0.23.29", "rustls-pemfile 2.2.0", "rustls-pki-types", "tokio", @@ -1741,9 +1741,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.42" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed87a9d530bb41a67537289bafcac159cb3ee28460e0a4571123d2a778a6a882" +checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" dependencies = [ "clap_builder", "clap_derive", @@ -1751,9 +1751,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.42" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f4f3f3c77c94aff3c7e9aac9a2ca1974a5adf392a8bb751e827d6d127ab966" +checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" dependencies = [ "anstream", "anstyle", @@ -1947,18 +1947,18 @@ dependencies = [ [[package]] name = "const-str" -version = "0.6.4" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451d0640545a0553814b4c646eb549343561618838e9b42495f466131fe3ad49" +checksum = "041fbfcf8e7054df725fb9985297e92422cdc80fcf313665f5ca3d761bb63f4c" dependencies = [ "const-str-proc-macro", ] [[package]] name = "const-str-proc-macro" -version = "0.6.4" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95013972663dd72254b963e48857284080001ffee418731f065fcf5290a5530d" +checksum = "f801882b7ecd4188f4bca0317f34e022d623590d85893d7024b18d14f2a3b40b" dependencies = [ "proc-macro2", "quote", @@ -2146,22 +2146,25 @@ dependencies = [ [[package]] name = "criterion" -version = "0.7.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1c047a62b0cc3e145fa84415a3191f628e980b194c2755aa12300a4e6cbd928" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" dependencies = [ "anes", "cast", "ciborium", "clap", "criterion-plot", - "itertools 0.13.0", + "is-terminal", + "itertools 0.10.5", "num-traits", + "once_cell", "oorandom", "plotters", "rayon", "regex", "serde", + "serde_derive", "serde_json", "tinytemplate", "walkdir", @@ -2169,12 +2172,12 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.6.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1bcc0dc7dfae599d84ad0b1a55f80cde8af3725da8313b528da95ef783e338" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", - "itertools 0.13.0", + "itertools 0.10.5", ] [[package]] @@ -3574,6 +3577,12 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + [[package]] name = "downcast-rs" version = "1.2.1" @@ -3633,7 +3642,7 @@ dependencies = [ "serde_json", "serial_test", "tokio", - "tonic 0.14.0", + "tonic", "url", ] @@ -3970,6 +3979,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fragile" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" + [[package]] name = "fs-err" version = "3.1.1" @@ -4834,7 +4849,7 @@ dependencies = [ "hyper 1.6.0", "hyper-util", "log", - "rustls 0.23.31", + "rustls 0.23.29", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", @@ -5144,6 +5159,17 @@ dependencies = [ "serde", ] +[[package]] +name = "is-terminal" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "is_debug" version = "1.1.0" @@ -5156,6 +5182,15 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.11.0" @@ -5297,17 +5332,16 @@ dependencies = [ [[package]] name = "keyring" -version = "3.6.3" +version = "3.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebcc3aff044e5944a8fbaf69eb277d11986064cba30c468730e8b9909fb551c" +checksum = "1961983669d57bdfe6c0f3ef8e4c229b5ef751afcc7d87e4271d2f71f6ccfa8b" dependencies = [ "byteorder", "dbus-secret-service", "log", "security-framework 2.11.1", "security-framework 3.2.0", - "windows-sys 0.60.2", - "zeroize", + "windows-sys 0.59.0", ] [[package]] @@ -5484,7 +5518,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.53.3", + "windows-targets 0.53.2", ] [[package]] @@ -5495,13 +5529,13 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "4488594b9328dee448adb906d8b126d9b7deb7cf5c22161ee591610bb1be83c0" dependencies = [ "bitflags 2.9.1", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.5.16", ] [[package]] @@ -5843,6 +5877,32 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "mockall" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "muda" version = "0.11.5" @@ -6559,10 +6619,10 @@ dependencies = [ "opentelemetry", "opentelemetry-proto", "opentelemetry_sdk", - "prost 0.13.5", + "prost", "thiserror 2.0.12", "tokio", - "tonic 0.13.1", + "tonic", "tracing", ] @@ -6574,8 +6634,8 @@ checksum = "2e046fd7660710fe5a05e8748e70d9058dc15c94ba914e7c4faa7c728f0e8ddc" dependencies = [ "opentelemetry", "opentelemetry_sdk", - "prost 0.13.5", - "tonic 0.13.1", + "prost", + "tonic", ] [[package]] @@ -6710,7 +6770,7 @@ checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.5.16", "smallvec", "windows-targets 0.52.6", ] @@ -7166,6 +7226,32 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +[[package]] +name = "predicates" +version = "3.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" +dependencies = [ + "anstyle", + "predicates-core", +] + +[[package]] +name = "predicates-core" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" + +[[package]] +name = "predicates-tree" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" +dependencies = [ + "predicates-core", + "termtree", +] + [[package]] name = "pretty_assertions" version = "1.4.1" @@ -7272,24 +7358,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" dependencies = [ "bytes", - "prost-derive 0.13.5", -] - -[[package]] -name = "prost" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" -dependencies = [ - "bytes", - "prost-derive 0.14.1", + "prost-derive", ] [[package]] name = "prost-build" -version = "0.14.1" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ "heck 0.5.0", "itertools 0.14.0", @@ -7298,10 +7374,8 @@ dependencies = [ "once_cell", "petgraph", "prettyplease", - "prost 0.14.1", + "prost", "prost-types", - "pulldown-cmark", - "pulldown-cmark-to-cmark", "regex", "syn 2.0.104", "tempfile", @@ -7320,26 +7394,13 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "prost-derive" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "prost-types" -version = "0.14.1" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" dependencies = [ - "prost 0.14.1", + "prost", ] [[package]] @@ -7351,26 +7412,6 @@ dependencies = [ "cc", ] -[[package]] -name = "pulldown-cmark" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" -dependencies = [ - "bitflags 2.9.1", - "memchr", - "unicase", -] - -[[package]] -name = "pulldown-cmark-to-cmark" -version = "21.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5b6a0769a491a08b31ea5c62494a8f144ee0987d86d670a8af4df1e1b7cde75" -dependencies = [ - "pulldown-cmark", -] - [[package]] name = "quick-xml" version = "0.37.5" @@ -7404,7 +7445,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.31", + "rustls 0.23.29", "socket2 0.5.10", "thiserror 2.0.12", "tokio", @@ -7424,7 +7465,7 @@ dependencies = [ "rand 0.9.2", "ring", "rustc-hash 2.1.1", - "rustls 0.23.31", + "rustls 0.23.29", "rustls-pki-types", "slab", "thiserror 2.0.12", @@ -7671,18 +7712,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "7251471db004e509f4e75a62cca9435365b5ec7bcdff530d612ac7c87c44a792" dependencies = [ "bitflags 2.9.1", ] [[package]] name = "redox_users" -version = "0.5.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78eaea1f52c56d57821be178b2d47e09ff26481a6042e8e042fcb0ced068b470" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" dependencies = [ "getrandom 0.2.16", "libredox", @@ -7795,7 +7836,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.31", + "rustls 0.23.29", "rustls-pki-types", "serde", "serde_json", @@ -7889,9 +7930,9 @@ dependencies = [ [[package]] name = "rmcp" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f0d0d5493be0d181a62db489eab7838669b81885972ca00ceca893cf6ac2883" +checksum = "824daba0a34f8c5c5392295d381e0800f88fd986ba291699f8785f05fa344c1e" dependencies = [ "base64 0.22.1", "chrono", @@ -7910,9 +7951,9 @@ dependencies = [ [[package]] name = "rmcp-macros" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aebc912b8fa7d54999adc4e45601d1d95fe458f97eb0a1277eddcd6382cf4b1" +checksum = "ad6543c0572a4dbc125c23e6f54963ea9ba002294fd81dd4012c204219b0dcaa" dependencies = [ "darling 0.21.0", "proc-macro2", @@ -8072,9 +8113,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" [[package]] name = "rustc-hash" @@ -8142,7 +8183,7 @@ dependencies = [ "rustfs-s3select-query", "rustfs-utils", "rustfs-zip", - "rustls 0.23.31", + "rustls 0.23.29", "s3s", "serde", "serde_json", @@ -8158,7 +8199,7 @@ dependencies = [ "tokio-stream", "tokio-tar", "tokio-util", - "tonic 0.14.0", + "tonic", "tower", "tower-http", "tracing", @@ -8246,7 +8287,7 @@ dependencies = [ "s3s", "serde", "tokio", - "tonic 0.14.0", + "tonic", "uuid", ] @@ -8255,6 +8296,8 @@ name = "rustfs-config" version = "0.0.5" dependencies = [ "const-str", + "serde", + "serde_json", ] [[package]] @@ -8327,7 +8370,7 @@ dependencies = [ "rustfs-signer", "rustfs-utils", "rustfs-workers", - "rustls 0.23.31", + "rustls 0.23.29", "s3s", "serde", "serde_json", @@ -8342,7 +8385,7 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util", - "tonic 0.14.0", + "tonic", "tower", "tracing", "url", @@ -8432,7 +8475,7 @@ dependencies = [ "serde_json", "thiserror 2.0.12", "tokio", - "tonic 0.14.0", + "tonic", "tracing", "url", "uuid", @@ -8455,14 +8498,22 @@ name = "rustfs-mcp" version = "0.0.5" dependencies = [ "anyhow", + "async-trait", "aws-sdk-s3", "clap", + "futures-util", "mime_guess", + "mockall", "rmcp", "schemars", "serde", "serde_json", + "tempfile", + "test-case", + "thiserror 2.0.12", "tokio", + "tokio-test", + "tokio-util", "tracing", "tracing-subscriber", ] @@ -8476,7 +8527,6 @@ dependencies = [ "chrono", "dashmap 6.1.0", "form_urlencoded", - "futures", "once_cell", "quick-xml 0.38.0", "reqwest", @@ -8504,6 +8554,7 @@ dependencies = [ "async-trait", "chrono", "flexi_logger", + "lazy_static", "nu-ansi-term 0.50.1", "nvml-wrapper", "opentelemetry", @@ -8553,11 +8604,10 @@ name = "rustfs-protos" version = "0.0.5" dependencies = [ "flatbuffers 25.2.10", - "prost 0.14.1", + "prost", "rustfs-common", - "tonic 0.14.0", - "tonic-prost", - "tonic-prost-build", + "tonic", + "tonic-build", ] [[package]] @@ -8690,7 +8740,7 @@ dependencies = [ "rand 0.9.2", "regex", "rustfs-config", - "rustls 0.23.31", + "rustls 0.23.29", "rustls-pemfile 2.2.0", "rustls-pki-types", "s3s", @@ -8781,9 +8831,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "2491382039b29b9b11ff08b76ff6c97cf287671dbb74f0be44bda389fffe9bd1" dependencies = [ "aws-lc-rs", "log", @@ -8907,9 +8957,9 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "s3s" -version = "0.12.0-minio-preview.3" +version = "0.12.0-minio-preview.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24c7be783f8b2bb5aba553462bf7e9ee95655bb27cbd6a0b0a93af2e719b1eec" +checksum = "0170817b5885b82d945f855969ddabe062067e019f7c0b2e28ddd2d0de70626b" dependencies = [ "arrayvec", "async-trait", @@ -10082,6 +10132,12 @@ dependencies = [ "utf-8", ] +[[package]] +name = "termtree" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" + [[package]] name = "test-case" version = "3.3.1" @@ -10337,7 +10393,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.31", + "rustls 0.23.29", "tokio", ] @@ -10462,33 +10518,6 @@ name = "tonic" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" -dependencies = [ - "async-trait", - "base64 0.22.1", - "bytes", - "flate2", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.6.0", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "prost 0.13.5", - "tokio", - "tokio-stream", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tonic" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308e1db96abdccdf0a9150fb69112bf6ea72640e0bd834ef0c4a618ccc8c8ddc" dependencies = [ "async-trait", "axum", @@ -10504,8 +10533,8 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "socket2 0.6.0", - "sync_wrapper", + "prost", + "socket2 0.5.10", "tokio", "tokio-stream", "tower", @@ -10516,32 +10545,9 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18262cdd13dec66e8e3f2e3fe535e4b2cc706fab444a7d3678d75d8ac2557329" -dependencies = [ - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "tonic-prost" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d8b5b7a44512c59f5ad45e0c40e53263cbbf4426d74fe6b569e04f1d4206e9c" -dependencies = [ - "bytes", - "prost 0.14.1", - "tonic 0.14.0", -] - -[[package]] -name = "tonic-prost-build" -version = "0.14.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "114cca66d757d72422ef8cccf8be3065321860ac9fa4be73aab37a8a20a9a805" +checksum = "eac6f67be712d12f0b41328db3137e0d0757645d8904b4cb7d51cd9c2279e847" dependencies = [ "prettyplease", "proc-macro2", @@ -10549,8 +10555,6 @@ dependencies = [ "prost-types", "quote", "syn 2.0.104", - "tempfile", - "tonic-build", ] [[package]] @@ -11213,13 +11217,13 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.11" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" +checksum = "fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121" dependencies = [ "cc", "downcast-rs", - "rustix 1.0.8", + "rustix 0.38.44", "scoped-tls", "smallvec", "wayland-sys", @@ -11227,21 +11231,21 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.11" +version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" +checksum = "978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61" dependencies = [ "bitflags 2.9.1", - "rustix 1.0.8", + "rustix 0.38.44", "wayland-backend", "wayland-scanner", ] [[package]] name = "wayland-protocols" -version = "0.32.9" +version = "0.32.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" +checksum = "779075454e1e9a521794fed15886323ea0feda3f8b0fc1390f5398141310422a" dependencies = [ "bitflags 2.9.1", "wayland-backend", @@ -11251,9 +11255,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.7" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" +checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484" dependencies = [ "proc-macro2", "quick-xml 0.37.5", @@ -11262,9 +11266,9 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.31.7" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" +checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615" dependencies = [ "dlib", "log", @@ -11668,7 +11672,7 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.2", ] [[package]] @@ -11719,11 +11723,10 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" dependencies = [ - "windows-link", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", From 5d3172ed995c24164210d620c1998c7f7e73a1f0 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 1 Aug 2025 17:26:47 +0000 Subject: [PATCH 2/2] Add script to fix remaining PR branches with cherry-pick strategy Co-authored-by: anzhengchao --- finish_remaining_prs.py | 101 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 finish_remaining_prs.py diff --git a/finish_remaining_prs.py b/finish_remaining_prs.py new file mode 100644 index 000000000..c917cd65b --- /dev/null +++ b/finish_remaining_prs.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python3 + +import subprocess +import sys +import os + +def run_cmd(cmd): + """运行命令并返回结果""" + try: + result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=30) + print(f"执行: {cmd}") + if result.stdout: + print(f"输出: {result.stdout.strip()}") + if result.stderr: + print(f"错误: {result.stderr.strip()}") + return result.returncode == 0 + except subprocess.TimeoutExpired: + print(f"命令超时: {cmd}") + return False + +def main(): + """修复剩下的PR分支""" + print("🚀 修复剩下的PR分支...") + + # 剩下需要修复的分支 + remaining_branches = [ + ("feature/add-server-components-tests", "7c50378"), # 第二个commit,避免Cargo.lock + ("feature/add-integration-tests", "69f2d0a") # 假设的主要commit + ] + + os.chdir("/workspace") + + # 确保在main分支 + run_cmd("git checkout main") + + for branch_name, commit_hash in remaining_branches: + print(f"\n🔧 修复分支: {branch_name}") + + # 创建干净分支 + clean_branch = f"{branch_name}-clean" + run_cmd(f"git branch -D {clean_branch} 2>/dev/null || true") + run_cmd(f"git checkout -b {clean_branch}") + + # 查找主要的测试提交 + print("📥 查找主要提交...") + result = subprocess.run(f"git log --oneline origin/{branch_name} | head -10", + shell=True, capture_output=True, text=True) + + if result.returncode == 0: + commits = result.stdout.strip().split('\n') + print("可用的提交:") + for commit in commits: + print(f" {commit}") + + # 寻找包含测试的主要提交(不是Cargo.lock相关的) + test_commit = None + for commit in commits: + if any(keyword in commit.lower() for keyword in ['test', 'feat:', 'add']): + if 'cargo.lock' not in commit.lower() and 'format' not in commit.lower(): + test_commit = commit.split()[0] + break + + if test_commit: + print(f"📌 选择提交: {test_commit}") + if run_cmd(f"git cherry-pick {test_commit}"): + print("✅ Cherry-pick成功") + else: + print("⚠️ Cherry-pick有冲突,尝试解决...") + # 解决Cargo.lock冲突 + run_cmd("git checkout --theirs Cargo.lock || true") + run_cmd("git add Cargo.lock || true") + if run_cmd("git cherry-pick --continue"): + print("✅ 冲突解决成功") + else: + print("❌ 无法解决冲突,跳过") + run_cmd("git cherry-pick --abort") + continue + else: + print("❌ 未找到合适的测试提交") + continue + + # 替换原分支 + print("🔄 替换原分支...") + run_cmd(f"git checkout {branch_name}") + run_cmd(f"git reset --hard {clean_branch}") + + # 推送 + print("🚀 推送分支...") + if run_cmd(f"git push --force origin {branch_name}"): + print(f"✅ 成功修复 {branch_name}") + else: + print(f"❌ 推送失败 {branch_name}") + + # 清理 + run_cmd(f"git branch -D {clean_branch}") + run_cmd("git checkout main") + + print("\n🎉 完成剩余PR修复!") + +if __name__ == "__main__": + main() \ No newline at end of file