From 3ba09ea17cafb1504682f1156f4ea7910096720a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Oct 2026 18:37:23 +0000 Subject: [PATCH 1/2] build(deps): bump the cargo-dependencies group Bumps the cargo-dependencies group in /desktop with 5 updates: | Package | From | To | | --- | --- | --- | | [eframe](https://github.com/emilk/egui) | `0.36.2` | `0.37.0` | | [egui-elegance](https://github.com/matrix-research-inc/egui-elegance) | `0.16.2` | `0.17.2` | | [uuid](https://github.com/uuid-rs/uuid) | `1.28.0` | `1.29.0` | | [rust_xlsxwriter](https://github.com/jmcnamara/rust_xlsxwriter) | `0.100.0` | `0.101.0` | | [zip](https://github.com/zip-rs/zip2) | `9.0.5` | `9.1.2` | Updates `eframe` from 0.36.2 to 0.37.0 - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/main/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.36.2...0.37.0) Updates `egui-elegance` from 0.16.2 to 0.17.2 - [Release notes](https://github.com/matrix-research-inc/egui-elegance/releases) - [Changelog](https://github.com/matrix-research-inc/egui-elegance/blob/main/CHANGELOG.md) - [Commits](https://github.com/matrix-research-inc/egui-elegance/compare/v0.16.2...v0.17.2) Updates `uuid` from 1.28.0 to 1.29.0 - [Release notes](https://github.com/uuid-rs/uuid/releases) - [Commits](https://github.com/uuid-rs/uuid/compare/v1.28.0...v1.29.0) Updates `rust_xlsxwriter` from 0.100.0 to 0.101.0 - [Changelog](https://github.com/jmcnamara/rust_xlsxwriter/blob/main/CHANGELOG.md) - [Commits](https://github.com/jmcnamara/rust_xlsxwriter/compare/v0.100.0...v0.101.0) Updates `zip` from 9.0.5 to 9.1.2 - [Release notes](https://github.com/zip-rs/zip2/releases) - [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md) - [Commits](https://github.com/zip-rs/zip2/compare/v9.0.5...v9.1.2) --- updated-dependencies: - dependency-name: eframe dependency-version: 0.37.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo-dependencies - dependency-name: egui-elegance dependency-version: 0.17.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo-dependencies - dependency-name: uuid dependency-version: 1.29.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo-dependencies - dependency-name: rust_xlsxwriter dependency-version: 0.101.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo-dependencies - dependency-name: zip dependency-version: 9.1.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo-dependencies ... Signed-off-by: dependabot[bot] --- desktop/Cargo.lock | 470 ++++++++++++++++++++++++++++++++++++--------- desktop/Cargo.toml | 6 +- 2 files changed, 386 insertions(+), 90 deletions(-) diff --git a/desktop/Cargo.lock b/desktop/Cargo.lock index e5edad2..ce9c6ab 100644 --- a/desktop/Cargo.lock +++ b/desktop/Cargo.lock @@ -30,58 +30,63 @@ dependencies = [ ] [[package]] -name = "accesskit_atspi_common" -version = "0.18.1" +name = "accesskit" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8c61bee90b42a772d39d06a740207dc71a4e780004ace1db8d99fb1baaa954" +checksum = "4e883d1d28c5fd5568c79ed2d2bd48d9f2fd3945c8974ed0f53690ceddb051be" dependencies = [ - "accesskit", - "accesskit_consumer 0.36.0", - "atspi-common", - "phf", + "enumn", "serde", - "zvariant", + "uuid", ] [[package]] -name = "accesskit_consumer" -version = "0.35.0" +name = "accesskit_atspi_common" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53cf47daed85312e763fbf85ceca136e0d7abc68e0a7e12abe11f48172bc3b10" +checksum = "24f5baf62e34a4a6c30e3d697e4782f821a7337049c44c3b40576a27dfbb580d" dependencies = [ - "accesskit", - "hashbrown 0.16.1", + "accesskit 0.25.2", + "accesskit_consumer", + "atspi-common", + "phf", + "serde", + "zvariant", ] [[package]] name = "accesskit_consumer" -version = "0.36.0" +version = "0.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e0d7e25d06f4dc21d1774d67146e9e80d6789216cbd4d1e88185b0095dba60" +checksum = "f3da8f27636015191b2264ee1df681503170a632cafd832fdc1edfdd4e3a2fd3" dependencies = [ - "accesskit", - "hashbrown 0.16.1", + "accesskit 0.25.2", + "hashbrown 0.17.1", ] [[package]] -name = "accesskit_consumer" -version = "0.38.0" +name = "accesskit_ios" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d10a236f96f87d70732e44520046785431ef01d5bcd6b041317bfadd2f88245" +checksum = "a5280724673bbfa8b30a838c013500b719392989be3b97c5a9964062c252c232" dependencies = [ - "accesskit", - "hashbrown 0.16.1", + "accesskit 0.25.2", + "accesskit_consumer", + "hashbrown 0.17.1", + "objc2 0.5.3", + "objc2-foundation 0.2.2", + "objc2-ui-kit 0.2.2", ] [[package]] name = "accesskit_macos" -version = "0.26.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce02dc63b43f0c9296af9ac946312a2dc8814427d7a64d2d600971dac55b6076" +checksum = "123828ceeec755b05255e3976cb0852993202de98a0626c97dd8d34246991f84" dependencies = [ - "accesskit", - "accesskit_consumer 0.38.0", - "hashbrown 0.16.1", + "accesskit 0.25.2", + "accesskit_consumer", + "hashbrown 0.17.1", "objc2 0.5.3", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", @@ -89,11 +94,11 @@ dependencies = [ [[package]] name = "accesskit_unix" -version = "0.21.1" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b016ca8db0ea0ea2ceff29a9d6240391492d960716aa471967c00e8cc8cb197c" +checksum = "30d5192871228c54f1b0fb4a85cef000e11a3804f25d2165f14afa0daa67f3f6" dependencies = [ - "accesskit", + "accesskit 0.25.2", "accesskit_atspi_common", "async-channel", "async-executor", @@ -107,13 +112,13 @@ dependencies = [ [[package]] name = "accesskit_windows" -version = "0.32.1" +version = "0.35.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff7009f1a532e917d66970a1e80c965140c6cfbbabbdde3d64e5431e6c78e21" +checksum = "498668b90da9995302a0055aaecad4756932333da2ddef6baee1c00844c430fc" dependencies = [ - "accesskit", - "accesskit_consumer 0.35.0", - "hashbrown 0.16.1", + "accesskit 0.25.2", + "accesskit_consumer", + "hashbrown 0.17.1", "static_assertions", "windows", "windows-core", @@ -121,11 +126,12 @@ dependencies = [ [[package]] name = "accesskit_winit" -version = "0.32.2" +version = "0.34.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe9a94394896352cc4660ca2288bd4ef883d83238853c038b44070c8f134313" +checksum = "cd4ab4437b520ff03088fbe48676a11e7d44a929535e64b31432c1073e48dbcc" dependencies = [ - "accesskit", + "accesskit 0.25.2", + "accesskit_ios", "accesskit_macos", "accesskit_unix", "accesskit_windows", @@ -235,6 +241,7 @@ dependencies = [ "parking_lot", "percent-encoding", "windows-sys 0.60.2", + "wl-clipboard-rs", "x11rb", ] @@ -1210,25 +1217,36 @@ name = "ecolor" version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0656a7530b9e2841ee7a5f983965bdd9840c32f4012f759cfd44b912cced6b34" +dependencies = [ + "emath 0.36.2", + "serde", +] + +[[package]] +name = "ecolor" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31bcbef0d4263a63eb32c4834e5d711613035ce1333468e107d928923e21e6e2" dependencies = [ "bytemuck", - "emath", + "emath 0.37.0", "serde", ] [[package]] name = "eframe" -version = "0.36.2" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ad41fac6e3149abb4866e93df37dbd33baa95db525c3368c944584e95a5dc2" +checksum = "9c5642501a65ca657d05f00c643a5c14ff2346cb3818032bfe23d58e1f8e5f84" dependencies = [ "ahash", "bytemuck", "document-features", - "egui", + "egui 0.37.0", "egui-wgpu", "egui-winit", "egui_glow", + "egui_system_font_provider", "glow", "glutin", "glutin-winit", @@ -1244,6 +1262,7 @@ dependencies = [ "profiling", "raw-window-handle", "ron", + "send_wrapper", "serde", "static_assertions", "wasm-bindgen", @@ -1260,11 +1279,32 @@ version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc938cc27cd911415e1e4d151bc56ff9df063d8db081374e87aeb805ea74b2ba" dependencies = [ - "accesskit", + "accesskit 0.24.1", "ahash", "bitflags 2.13.2", - "emath", - "epaint", + "emath 0.36.2", + "epaint 0.36.2", + "itertools 0.15.0", + "log", + "nohash-hasher", + "profiling", + "serde", + "smallvec", + "unicode-segmentation", + "web-sys", +] + +[[package]] +name = "egui" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec9144f49b7a28b5f395d3147e325b4fe3e77ba686eac11d1bdf0a7da3f375f" +dependencies = [ + "accesskit 0.25.2", + "ahash", + "bitflags 2.13.2", + "emath 0.37.0", + "epaint 0.37.0", "itertools 0.15.0", "log", "nohash-hasher", @@ -1278,11 +1318,11 @@ dependencies = [ [[package]] name = "egui-elegance" -version = "0.16.2" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40bd300138352eac7ea9ecbaea82de715c5c4a8411f6c6c6478ad947bddd6c1b" +checksum = "57f8ac2f73ca3ab1b9c586119ce411cdb72f67d4be6fdce41935a093ce741a63" dependencies = [ - "egui", + "egui 0.37.0", "js-sys", ] @@ -1292,20 +1332,20 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f4299551488dddaa8f757727e1eb4ffdaf277ffe6e30b413403468f5ecf4634" dependencies = [ - "egui", + "egui 0.36.2", ] [[package]] name = "egui-wgpu" -version = "0.36.2" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cef1f6d1bba40b09a4d0d62cb822b81030922cfbf65c5373398c3a3caafc5bd" +checksum = "0309cbe1febed48af5b974e4bcc424b35e9664863a4d402697147b57a488c864" dependencies = [ "ahash", "bytemuck", "document-features", - "egui", - "epaint", + "egui 0.37.0", + "epaint 0.37.0", "log", "profiling", "thiserror 2.0.21", @@ -1317,16 +1357,18 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.36.2" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98466000559d66ba4db786a30448b01483946add4188e7f10f522a27b4fb89cc" +checksum = "e4e449f4c4a2a60c7ccb4ba7fa4078417bfe1f9ddc03b5e05ce75748e33a70de" dependencies = [ "accesskit_winit", "arboard", + "block2 0.6.2", "bytemuck", - "egui", + "egui 0.37.0", "log", "objc2 0.6.5", + "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", "objc2-ui-kit 0.3.2", "profiling", @@ -1335,6 +1377,7 @@ dependencies = [ "smithay-clipboard", "web-time", "webbrowser", + "windows-sys 0.61.2", "winit", ] @@ -1345,7 +1388,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d9f668eb59ff0ab130c8bce71a513135e1d3017fb3103fb8758e9eea99d759f" dependencies = [ "duplicate", - "egui", + "egui 0.36.2", "paste", "serde", "thiserror 2.0.21", @@ -1353,18 +1396,33 @@ dependencies = [ [[package]] name = "egui_glow" -version = "0.36.2" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "606ed4167daf341e5753d703285c4c1d562324b2c07aa8f405cd7d066fe58f3b" +checksum = "9275ca5cc35a6b7c94e0e8cedf22542f66cb0cf45ed8ab2657c78ff49fec7268" dependencies = [ "bytemuck", - "egui", + "egui 0.37.0", "glow", "log", "profiling", "winit", ] +[[package]] +name = "egui_system_font_provider" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f2a2fdfe3c05dd9f691d2b1388b2312d6dce1af502f217c22136d22d9bd76f6" +dependencies = [ + "epaint 0.37.0", + "fontique", + "log", + "poll-promise", + "skrifa", + "sys-locale", + "unicode-script", +] + [[package]] name = "either" version = "1.19.0" @@ -1376,6 +1434,15 @@ name = "emath" version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52c8d4141cf0f60fb2f7aefaf352d3ffa5171ef0ab09731c64391801e95e48f1" +dependencies = [ + "serde", +] + +[[package]] +name = "emath" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e73ce90f54750be8672c02be0743fe47530e6f251e066f0ee2869b59eb297af5" dependencies = [ "bytemuck", "serde", @@ -1438,11 +1505,35 @@ name = "epaint" version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0ec0308dc23130fc1a7d4623a8534c2ed069c6dc84e258ee4f3de99615aa1a3" +dependencies = [ + "ahash", + "ecolor 0.36.2", + "emath 0.36.2", + "font-types", + "harfrust", + "log", + "nohash-hasher", + "parking_lot", + "profiling", + "self_cell", + "serde", + "skrifa", + "smallvec", + "unicode-general-category", + "unicode-segmentation", + "vello_cpu 0.1.0", +] + +[[package]] +name = "epaint" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97bac86ae3dde93fc3951e790951caea739ff39a6c89d909cdaf1d9278dbb1bd" dependencies = [ "ahash", "bytemuck", - "ecolor", - "emath", + "ecolor 0.37.0", + "emath 0.37.0", "epaint_default_fonts", "font-types", "harfrust", @@ -1455,15 +1546,16 @@ dependencies = [ "skrifa", "smallvec", "unicode-general-category", + "unicode-properties", "unicode-segmentation", - "vello_cpu", + "vello_cpu 0.2.0", ] [[package]] name = "epaint_default_fonts" -version = "0.36.2" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773fa9c96dd0dbef887e39d0ed6177f141cce4d68e6041df77570aa3702dfa13" +checksum = "cfc1cc505827f4c23eedc297975a0fd038268d41293f389dd8ff3b574aefab19" [[package]] name = "equivalent" @@ -1565,6 +1657,12 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aedcfb3409746eddb02b9e19ebda1c3394f759a152e48ee875a0844d1b955484" +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.1.10" @@ -1587,6 +1685,12 @@ dependencies = [ "spin", ] +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foldhash" version = "0.2.0" @@ -1603,6 +1707,28 @@ dependencies = [ "serde", ] +[[package]] +name = "fontique" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6688bc1294fe7117d788937b6c53480169b29c566954af490830d4c09da9516a" +dependencies = [ + "hashbrown 0.17.1", + "linebender_resource_handle", + "memmap2", + "objc2 0.6.5", + "objc2-core-foundation", + "objc2-core-text", + "objc2-foundation 0.3.2", + "parlance", + "read-fonts", + "roxmltree", + "smallvec", + "windows", + "windows-core", + "yeslogic-fontconfig-sys", +] + [[package]] name = "foreign-types" version = "0.5.0" @@ -1961,13 +2087,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed4a1bb24121291d27230c1b1b44e07d6a9b28cefdb32fe1581dfb84e14f940a" dependencies = [ "bytemuck", - "foldhash", + "foldhash 0.2.0", "hashbrown 0.17.1", "log", "peniko", "skrifa", "smallvec", - "vello_common", + "vello_common 0.1.0", +] + +[[package]] +name = "glifo" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282a26c1e23de04bdab3e34a21b6f877a479b96737792516b9b8b8f69b6661be" +dependencies = [ + "bytemuck", + "foldhash 0.2.0", + "hashbrown 0.17.1", + "log", + "peniko", + "png", + "skrifa", + "smallvec", + "vello_common 0.2.0", ] [[package]] @@ -2164,6 +2307,15 @@ dependencies = [ "smallvec", ] +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] + [[package]] name = "hashbrown" version = "0.16.1" @@ -2172,7 +2324,7 @@ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -2181,7 +2333,7 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" dependencies = [ - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -3619,6 +3771,16 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "owned_ttf_parser" version = "0.25.1" @@ -3717,6 +3879,12 @@ dependencies = [ "windows-link", ] +[[package]] +name = "parlance" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73072a9470554c8e794778acece2312661218aaabb635600957d952cf01c716e" + [[package]] name = "paste" version = "1.0.15" @@ -3742,11 +3910,22 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +[[package]] +name = "petgraph" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.5", + "indexmap", +] + [[package]] name = "phf" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +checksum = "010378780309880b08997fae13be7834dba947d36393bd372f2b1556deb2a2f6" dependencies = [ "phf_macros", "phf_shared", @@ -3755,9 +3934,9 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +checksum = "aeb62e0959d5a1bebc965f4d15d9e2b7cea002b6b0f5ba8cde6cc26738467100" dependencies = [ "fastrand", "phf_shared", @@ -3765,9 +3944,9 @@ dependencies = [ [[package]] name = "phf_macros" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +checksum = "5fa8d0ca26d424d27630da600c6624696e7dec8bf7b3b492b383c5dc49e5e085" dependencies = [ "phf_generator", "phf_shared", @@ -3778,9 +3957,9 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +checksum = "c6fd9027e2d9319be6349febd1db4e8d02aa544921200c9b777720ac34a3aa89" dependencies = [ "siphasher", ] @@ -3872,6 +4051,16 @@ dependencies = [ "miniz_oxide 0.8.9", ] +[[package]] +name = "poll-promise" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6a58fecbf9da8965bcdb20ce4fd29788d1acee68ddbb64f0ba1b81bccdb7df" +dependencies = [ + "document-features", + "static_assertions", +] + [[package]] name = "polling" version = "3.11.0" @@ -4354,11 +4543,20 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "roxmltree" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9da7f59328b09405b181fee1018925fad50f157afb43c0c0f5c522c256dd5907" +dependencies = [ + "memchr", +] + [[package]] name = "rust_xlsxwriter" -version = "0.100.0" +version = "0.101.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c44904ffb6c57b148ffcc8ce3011c28bc49b97e1a8343b2d632283cd566e1393" +checksum = "49aa1d1558e9465f5053bf9fb5361fe75db827c6a4423d5e5fe72096622f8908" dependencies = [ "zip", ] @@ -4503,6 +4701,12 @@ version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.229" @@ -4920,6 +5124,15 @@ dependencies = [ "syn 3.0.6", ] +[[package]] +name = "sys-locale" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +dependencies = [ + "libc", +] + [[package]] name = "system-deps" version = "6.2.2" @@ -5302,6 +5515,17 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "tree_magic_mini" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6" +dependencies = [ + "memchr", + "nom 8.0.0", + "petgraph", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -5344,9 +5568,9 @@ dependencies = [ [[package]] name = "typed-path" -version = "0.12.3" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" +checksum = "9ce898823d8cd0f028662d2f349694b1af0a5cc9be83f1d213a00d3147445e1e" [[package]] name = "typeid" @@ -5398,6 +5622,18 @@ version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" +[[package]] +name = "unicode-properties" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" + +[[package]] +name = "unicode-script" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "383ad40bb927465ec0ce7720e033cb4ca06912855fc35db31b5755d0de75b1ee" + [[package]] name = "unicode-segmentation" version = "1.13.3" @@ -5436,9 +5672,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.28.0" +version = "1.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc1186384beb7dd8eedea376413fd654937285ea6c9cfbb928dc3043ea4b606" +checksum = "4a0e2d11620c50695fe12bbbfde96b3477fe606e7284c22d505c12ce51214514" dependencies = [ "getrandom 0.4.3", "js-sys", @@ -5461,6 +5697,22 @@ dependencies = [ "thiserror 2.0.21", ] +[[package]] +name = "vello_common" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb2141a2bca6e6d598e471fd4d1d7eed8e020aad6a28187edda07f091a325dd" +dependencies = [ + "bytemuck", + "fearless_simd", + "guillotiere", + "log", + "peniko", + "png", + "smallvec", + "thiserror 2.0.21", +] + [[package]] name = "vello_cpu" version = "0.1.0" @@ -5468,9 +5720,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac7349e1f55f6b801c7c277958df4ea53e7f20f21e8014910ad888b2ecda93ea" dependencies = [ "bytemuck", - "glifo", + "glifo 0.2.0", + "hashbrown 0.17.1", + "vello_common 0.1.0", +] + +[[package]] +name = "vello_cpu" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace506ca414548966fcf3c283be94eb1cad8254de488791ee698bf438b0890a9" +dependencies = [ + "bytemuck", + "glifo 0.3.0", "hashbrown 0.17.1", - "vello_common", + "png", + "vello_common 0.2.0", ] [[package]] @@ -6365,6 +6630,24 @@ version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +[[package]] +name = "wl-clipboard-rs" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "959c7ac3b8afde864f7a7448ac16f29b2b83350b7eccbf77fb781c3999aa6848" +dependencies = [ + "libc", + "log", + "os_pipe", + "rustix 1.1.5", + "thiserror 2.0.21", + "tree_magic_mini", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", +] + [[package]] name = "writeable" version = "0.6.4" @@ -6476,6 +6759,17 @@ version = "0.8.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" +[[package]] +name = "yeslogic-fontconfig-sys" +version = "6.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8b8abf912b9a29ff112e1671c97c33636903d13a69712037190e6805af4f76" +dependencies = [ + "dlib", + "once_cell", + "pkg-config", +] + [[package]] name = "yoke" version = "0.8.3" @@ -6687,16 +6981,18 @@ dependencies = [ [[package]] name = "zip" -version = "9.0.5" +version = "9.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e04976da629d3b04204ba8105b396a193af8ad2583b2c79bfb3ab8af580a11e" +checksum = "ec2e3161de27091f18a831d9494e9c53378a34833af5c1dda35ad85849da18d6" dependencies = [ "crc32fast", "flate2", + "getrandom 0.4.3", "indexmap", "memchr", "nix 0.31.3", "typed-path", + "windows-sys 0.61.2", "zopfli", ] diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index 6160dc6..d3dd05b 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -9,10 +9,10 @@ repository = "https://github.com/atomicdeploy/PakarController" [dependencies] # Keep the egui type family coherent with dock, Phosphor and elegance. Upgrade # these together; mixing 0.36 and 0.37 produces incompatible Context/Ui types. -eframe = { version = "0.36.2", features = ["glow", "persistence"] } +eframe = { version = "0.37.0", features = ["glow", "persistence"] } egui-phosphor = { version = "0.14.0", default-features = false, features = ["regular"] } egui_dock = { version = "0.21.1", features = ["serde"] } -egui-elegance = "=0.16.2" +egui-elegance = "=0.17.2" uuid = { version = "1.26.1", features = ["v4", "serde"] } rfd = "0.17.2" reqwest = { version = "0.12.28", default-features = false, features = ["blocking", "json", "multipart", "rustls-tls"] } @@ -32,7 +32,7 @@ socket2 = "0.6.5" httparse = "1.10.1" network-interface = "2.0.5" calamine = "0.37.0" -rust_xlsxwriter = "0.100.0" +rust_xlsxwriter = "0.101.0" zip = { version = "9.0.5", default-features = false, features = ["deflate"] } [target.'cfg(windows)'.dependencies] From ee81c7c34a5c35e172f8287a231c380d63e2f31e Mon Sep 17 00:00:00 2001 From: David Refoua Date: Thu, 5 Nov 2026 04:18:52 +0330 Subject: [PATCH 2/2] Keep native UI dependencies coherent while applying independent updates --- desktop/Cargo.lock | 452 +++++------------------------ desktop/Cargo.toml | 4 +- docs/FILE-COMPARISON.md | 4 +- docs/REUSE-PREFLIGHT-RECEIPT.md | 18 ++ docs/file-comparison-evidence.json | 4 +- docs/file-comparison.csv | 4 +- 6 files changed, 105 insertions(+), 381 deletions(-) diff --git a/desktop/Cargo.lock b/desktop/Cargo.lock index ce9c6ab..04e94cf 100644 --- a/desktop/Cargo.lock +++ b/desktop/Cargo.lock @@ -30,63 +30,58 @@ dependencies = [ ] [[package]] -name = "accesskit" -version = "0.25.2" +name = "accesskit_atspi_common" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e883d1d28c5fd5568c79ed2d2bd48d9f2fd3945c8974ed0f53690ceddb051be" +checksum = "1e8c61bee90b42a772d39d06a740207dc71a4e780004ace1db8d99fb1baaa954" dependencies = [ - "enumn", + "accesskit", + "accesskit_consumer 0.36.0", + "atspi-common", + "phf", "serde", - "uuid", + "zvariant", ] [[package]] -name = "accesskit_atspi_common" -version = "0.21.1" +name = "accesskit_consumer" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f5baf62e34a4a6c30e3d697e4782f821a7337049c44c3b40576a27dfbb580d" +checksum = "53cf47daed85312e763fbf85ceca136e0d7abc68e0a7e12abe11f48172bc3b10" dependencies = [ - "accesskit 0.25.2", - "accesskit_consumer", - "atspi-common", - "phf", - "serde", - "zvariant", + "accesskit", + "hashbrown 0.16.1", ] [[package]] name = "accesskit_consumer" -version = "0.39.2" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3da8f27636015191b2264ee1df681503170a632cafd832fdc1edfdd4e3a2fd3" +checksum = "25e0d7e25d06f4dc21d1774d67146e9e80d6789216cbd4d1e88185b0095dba60" dependencies = [ - "accesskit 0.25.2", - "hashbrown 0.17.1", + "accesskit", + "hashbrown 0.16.1", ] [[package]] -name = "accesskit_ios" -version = "0.2.2" +name = "accesskit_consumer" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5280724673bbfa8b30a838c013500b719392989be3b97c5a9964062c252c232" +checksum = "5d10a236f96f87d70732e44520046785431ef01d5bcd6b041317bfadd2f88245" dependencies = [ - "accesskit 0.25.2", - "accesskit_consumer", - "hashbrown 0.17.1", - "objc2 0.5.3", - "objc2-foundation 0.2.2", - "objc2-ui-kit 0.2.2", + "accesskit", + "hashbrown 0.16.1", ] [[package]] name = "accesskit_macos" -version = "0.27.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "123828ceeec755b05255e3976cb0852993202de98a0626c97dd8d34246991f84" +checksum = "ce02dc63b43f0c9296af9ac946312a2dc8814427d7a64d2d600971dac55b6076" dependencies = [ - "accesskit 0.25.2", - "accesskit_consumer", - "hashbrown 0.17.1", + "accesskit", + "accesskit_consumer 0.38.0", + "hashbrown 0.16.1", "objc2 0.5.3", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", @@ -94,11 +89,11 @@ dependencies = [ [[package]] name = "accesskit_unix" -version = "0.24.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d5192871228c54f1b0fb4a85cef000e11a3804f25d2165f14afa0daa67f3f6" +checksum = "b016ca8db0ea0ea2ceff29a9d6240391492d960716aa471967c00e8cc8cb197c" dependencies = [ - "accesskit 0.25.2", + "accesskit", "accesskit_atspi_common", "async-channel", "async-executor", @@ -112,13 +107,13 @@ dependencies = [ [[package]] name = "accesskit_windows" -version = "0.35.2" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498668b90da9995302a0055aaecad4756932333da2ddef6baee1c00844c430fc" +checksum = "eff7009f1a532e917d66970a1e80c965140c6cfbbabbdde3d64e5431e6c78e21" dependencies = [ - "accesskit 0.25.2", - "accesskit_consumer", - "hashbrown 0.17.1", + "accesskit", + "accesskit_consumer 0.35.0", + "hashbrown 0.16.1", "static_assertions", "windows", "windows-core", @@ -126,12 +121,11 @@ dependencies = [ [[package]] name = "accesskit_winit" -version = "0.34.2" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd4ab4437b520ff03088fbe48676a11e7d44a929535e64b31432c1073e48dbcc" +checksum = "1fe9a94394896352cc4660ca2288bd4ef883d83238853c038b44070c8f134313" dependencies = [ - "accesskit 0.25.2", - "accesskit_ios", + "accesskit", "accesskit_macos", "accesskit_unix", "accesskit_windows", @@ -241,7 +235,6 @@ dependencies = [ "parking_lot", "percent-encoding", "windows-sys 0.60.2", - "wl-clipboard-rs", "x11rb", ] @@ -1217,36 +1210,25 @@ name = "ecolor" version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0656a7530b9e2841ee7a5f983965bdd9840c32f4012f759cfd44b912cced6b34" -dependencies = [ - "emath 0.36.2", - "serde", -] - -[[package]] -name = "ecolor" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31bcbef0d4263a63eb32c4834e5d711613035ce1333468e107d928923e21e6e2" dependencies = [ "bytemuck", - "emath 0.37.0", + "emath", "serde", ] [[package]] name = "eframe" -version = "0.37.0" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5642501a65ca657d05f00c643a5c14ff2346cb3818032bfe23d58e1f8e5f84" +checksum = "55ad41fac6e3149abb4866e93df37dbd33baa95db525c3368c944584e95a5dc2" dependencies = [ "ahash", "bytemuck", "document-features", - "egui 0.37.0", + "egui", "egui-wgpu", "egui-winit", "egui_glow", - "egui_system_font_provider", "glow", "glutin", "glutin-winit", @@ -1262,7 +1244,6 @@ dependencies = [ "profiling", "raw-window-handle", "ron", - "send_wrapper", "serde", "static_assertions", "wasm-bindgen", @@ -1279,32 +1260,11 @@ version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc938cc27cd911415e1e4d151bc56ff9df063d8db081374e87aeb805ea74b2ba" dependencies = [ - "accesskit 0.24.1", + "accesskit", "ahash", "bitflags 2.13.2", - "emath 0.36.2", - "epaint 0.36.2", - "itertools 0.15.0", - "log", - "nohash-hasher", - "profiling", - "serde", - "smallvec", - "unicode-segmentation", - "web-sys", -] - -[[package]] -name = "egui" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec9144f49b7a28b5f395d3147e325b4fe3e77ba686eac11d1bdf0a7da3f375f" -dependencies = [ - "accesskit 0.25.2", - "ahash", - "bitflags 2.13.2", - "emath 0.37.0", - "epaint 0.37.0", + "emath", + "epaint", "itertools 0.15.0", "log", "nohash-hasher", @@ -1318,11 +1278,11 @@ dependencies = [ [[package]] name = "egui-elegance" -version = "0.17.2" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57f8ac2f73ca3ab1b9c586119ce411cdb72f67d4be6fdce41935a093ce741a63" +checksum = "40bd300138352eac7ea9ecbaea82de715c5c4a8411f6c6c6478ad947bddd6c1b" dependencies = [ - "egui 0.37.0", + "egui", "js-sys", ] @@ -1332,20 +1292,20 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f4299551488dddaa8f757727e1eb4ffdaf277ffe6e30b413403468f5ecf4634" dependencies = [ - "egui 0.36.2", + "egui", ] [[package]] name = "egui-wgpu" -version = "0.37.0" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0309cbe1febed48af5b974e4bcc424b35e9664863a4d402697147b57a488c864" +checksum = "5cef1f6d1bba40b09a4d0d62cb822b81030922cfbf65c5373398c3a3caafc5bd" dependencies = [ "ahash", "bytemuck", "document-features", - "egui 0.37.0", - "epaint 0.37.0", + "egui", + "epaint", "log", "profiling", "thiserror 2.0.21", @@ -1357,18 +1317,16 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.37.0" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4e449f4c4a2a60c7ccb4ba7fa4078417bfe1f9ddc03b5e05ce75748e33a70de" +checksum = "98466000559d66ba4db786a30448b01483946add4188e7f10f522a27b4fb89cc" dependencies = [ "accesskit_winit", "arboard", - "block2 0.6.2", "bytemuck", - "egui 0.37.0", + "egui", "log", "objc2 0.6.5", - "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", "objc2-ui-kit 0.3.2", "profiling", @@ -1377,7 +1335,6 @@ dependencies = [ "smithay-clipboard", "web-time", "webbrowser", - "windows-sys 0.61.2", "winit", ] @@ -1388,7 +1345,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d9f668eb59ff0ab130c8bce71a513135e1d3017fb3103fb8758e9eea99d759f" dependencies = [ "duplicate", - "egui 0.36.2", + "egui", "paste", "serde", "thiserror 2.0.21", @@ -1396,33 +1353,18 @@ dependencies = [ [[package]] name = "egui_glow" -version = "0.37.0" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9275ca5cc35a6b7c94e0e8cedf22542f66cb0cf45ed8ab2657c78ff49fec7268" +checksum = "606ed4167daf341e5753d703285c4c1d562324b2c07aa8f405cd7d066fe58f3b" dependencies = [ "bytemuck", - "egui 0.37.0", + "egui", "glow", "log", "profiling", "winit", ] -[[package]] -name = "egui_system_font_provider" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2a2fdfe3c05dd9f691d2b1388b2312d6dce1af502f217c22136d22d9bd76f6" -dependencies = [ - "epaint 0.37.0", - "fontique", - "log", - "poll-promise", - "skrifa", - "sys-locale", - "unicode-script", -] - [[package]] name = "either" version = "1.19.0" @@ -1434,15 +1376,6 @@ name = "emath" version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52c8d4141cf0f60fb2f7aefaf352d3ffa5171ef0ab09731c64391801e95e48f1" -dependencies = [ - "serde", -] - -[[package]] -name = "emath" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e73ce90f54750be8672c02be0743fe47530e6f251e066f0ee2869b59eb297af5" dependencies = [ "bytemuck", "serde", @@ -1505,35 +1438,11 @@ name = "epaint" version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0ec0308dc23130fc1a7d4623a8534c2ed069c6dc84e258ee4f3de99615aa1a3" -dependencies = [ - "ahash", - "ecolor 0.36.2", - "emath 0.36.2", - "font-types", - "harfrust", - "log", - "nohash-hasher", - "parking_lot", - "profiling", - "self_cell", - "serde", - "skrifa", - "smallvec", - "unicode-general-category", - "unicode-segmentation", - "vello_cpu 0.1.0", -] - -[[package]] -name = "epaint" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97bac86ae3dde93fc3951e790951caea739ff39a6c89d909cdaf1d9278dbb1bd" dependencies = [ "ahash", "bytemuck", - "ecolor 0.37.0", - "emath 0.37.0", + "ecolor", + "emath", "epaint_default_fonts", "font-types", "harfrust", @@ -1546,16 +1455,15 @@ dependencies = [ "skrifa", "smallvec", "unicode-general-category", - "unicode-properties", "unicode-segmentation", - "vello_cpu 0.2.0", + "vello_cpu", ] [[package]] name = "epaint_default_fonts" -version = "0.37.0" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfc1cc505827f4c23eedc297975a0fd038268d41293f389dd8ff3b574aefab19" +checksum = "773fa9c96dd0dbef887e39d0ed6177f141cce4d68e6041df77570aa3702dfa13" [[package]] name = "equivalent" @@ -1657,12 +1565,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aedcfb3409746eddb02b9e19ebda1c3394f759a152e48ee875a0844d1b955484" -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - [[package]] name = "flate2" version = "1.1.10" @@ -1685,12 +1587,6 @@ dependencies = [ "spin", ] -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - [[package]] name = "foldhash" version = "0.2.0" @@ -1707,28 +1603,6 @@ dependencies = [ "serde", ] -[[package]] -name = "fontique" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6688bc1294fe7117d788937b6c53480169b29c566954af490830d4c09da9516a" -dependencies = [ - "hashbrown 0.17.1", - "linebender_resource_handle", - "memmap2", - "objc2 0.6.5", - "objc2-core-foundation", - "objc2-core-text", - "objc2-foundation 0.3.2", - "parlance", - "read-fonts", - "roxmltree", - "smallvec", - "windows", - "windows-core", - "yeslogic-fontconfig-sys", -] - [[package]] name = "foreign-types" version = "0.5.0" @@ -2087,30 +1961,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed4a1bb24121291d27230c1b1b44e07d6a9b28cefdb32fe1581dfb84e14f940a" dependencies = [ "bytemuck", - "foldhash 0.2.0", - "hashbrown 0.17.1", - "log", - "peniko", - "skrifa", - "smallvec", - "vello_common 0.1.0", -] - -[[package]] -name = "glifo" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282a26c1e23de04bdab3e34a21b6f877a479b96737792516b9b8b8f69b6661be" -dependencies = [ - "bytemuck", - "foldhash 0.2.0", + "foldhash", "hashbrown 0.17.1", "log", "peniko", - "png", "skrifa", "smallvec", - "vello_common 0.2.0", + "vello_common", ] [[package]] @@ -2307,15 +2164,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "foldhash 0.1.5", -] - [[package]] name = "hashbrown" version = "0.16.1" @@ -2324,7 +2172,7 @@ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.2.0", + "foldhash", ] [[package]] @@ -2333,7 +2181,7 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" dependencies = [ - "foldhash 0.2.0", + "foldhash", ] [[package]] @@ -3771,16 +3619,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "os_pipe" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "owned_ttf_parser" version = "0.25.1" @@ -3879,12 +3717,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "parlance" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73072a9470554c8e794778acece2312661218aaabb635600957d952cf01c716e" - [[package]] name = "paste" version = "1.0.15" @@ -3910,22 +3742,11 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" -[[package]] -name = "petgraph" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" -dependencies = [ - "fixedbitset", - "hashbrown 0.15.5", - "indexmap", -] - [[package]] name = "phf" -version = "0.14.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "010378780309880b08997fae13be7834dba947d36393bd372f2b1556deb2a2f6" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ "phf_macros", "phf_shared", @@ -3934,9 +3755,9 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.14.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeb62e0959d5a1bebc965f4d15d9e2b7cea002b6b0f5ba8cde6cc26738467100" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ "fastrand", "phf_shared", @@ -3944,9 +3765,9 @@ dependencies = [ [[package]] name = "phf_macros" -version = "0.14.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fa8d0ca26d424d27630da600c6624696e7dec8bf7b3b492b383c5dc49e5e085" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ "phf_generator", "phf_shared", @@ -3957,9 +3778,9 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.14.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fd9027e2d9319be6349febd1db4e8d02aa544921200c9b777720ac34a3aa89" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ "siphasher", ] @@ -4051,16 +3872,6 @@ dependencies = [ "miniz_oxide 0.8.9", ] -[[package]] -name = "poll-promise" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6a58fecbf9da8965bcdb20ce4fd29788d1acee68ddbb64f0ba1b81bccdb7df" -dependencies = [ - "document-features", - "static_assertions", -] - [[package]] name = "polling" version = "3.11.0" @@ -4543,15 +4354,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "roxmltree" -version = "0.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9da7f59328b09405b181fee1018925fad50f157afb43c0c0f5c522c256dd5907" -dependencies = [ - "memchr", -] - [[package]] name = "rust_xlsxwriter" version = "0.101.0" @@ -4701,12 +4503,6 @@ version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - [[package]] name = "serde" version = "1.0.229" @@ -5124,15 +4920,6 @@ dependencies = [ "syn 3.0.6", ] -[[package]] -name = "sys-locale" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" -dependencies = [ - "libc", -] - [[package]] name = "system-deps" version = "6.2.2" @@ -5515,17 +5302,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "tree_magic_mini" -version = "3.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6" -dependencies = [ - "memchr", - "nom 8.0.0", - "petgraph", -] - [[package]] name = "try-lock" version = "0.2.5" @@ -5622,18 +5398,6 @@ version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" -[[package]] -name = "unicode-properties" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" - -[[package]] -name = "unicode-script" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "383ad40bb927465ec0ce7720e033cb4ca06912855fc35db31b5755d0de75b1ee" - [[package]] name = "unicode-segmentation" version = "1.13.3" @@ -5697,22 +5461,6 @@ dependencies = [ "thiserror 2.0.21", ] -[[package]] -name = "vello_common" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb2141a2bca6e6d598e471fd4d1d7eed8e020aad6a28187edda07f091a325dd" -dependencies = [ - "bytemuck", - "fearless_simd", - "guillotiere", - "log", - "peniko", - "png", - "smallvec", - "thiserror 2.0.21", -] - [[package]] name = "vello_cpu" version = "0.1.0" @@ -5720,22 +5468,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac7349e1f55f6b801c7c277958df4ea53e7f20f21e8014910ad888b2ecda93ea" dependencies = [ "bytemuck", - "glifo 0.2.0", + "glifo", "hashbrown 0.17.1", - "vello_common 0.1.0", -] - -[[package]] -name = "vello_cpu" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace506ca414548966fcf3c283be94eb1cad8254de488791ee698bf438b0890a9" -dependencies = [ - "bytemuck", - "glifo 0.3.0", - "hashbrown 0.17.1", - "png", - "vello_common 0.2.0", + "vello_common", ] [[package]] @@ -6630,24 +6365,6 @@ version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" -[[package]] -name = "wl-clipboard-rs" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "959c7ac3b8afde864f7a7448ac16f29b2b83350b7eccbf77fb781c3999aa6848" -dependencies = [ - "libc", - "log", - "os_pipe", - "rustix 1.1.5", - "thiserror 2.0.21", - "tree_magic_mini", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-protocols-wlr", -] - [[package]] name = "writeable" version = "0.6.4" @@ -6759,17 +6476,6 @@ version = "0.8.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" -[[package]] -name = "yeslogic-fontconfig-sys" -version = "6.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d8b8abf912b9a29ff112e1671c97c33636903d13a69712037190e6805af4f76" -dependencies = [ - "dlib", - "once_cell", - "pkg-config", -] - [[package]] name = "yoke" version = "0.8.3" diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index d3dd05b..21dfe65 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -9,10 +9,10 @@ repository = "https://github.com/atomicdeploy/PakarController" [dependencies] # Keep the egui type family coherent with dock, Phosphor and elegance. Upgrade # these together; mixing 0.36 and 0.37 produces incompatible Context/Ui types. -eframe = { version = "0.37.0", features = ["glow", "persistence"] } +eframe = { version = "0.36.2", features = ["glow", "persistence"] } egui-phosphor = { version = "0.14.0", default-features = false, features = ["regular"] } egui_dock = { version = "0.21.1", features = ["serde"] } -egui-elegance = "=0.17.2" +egui-elegance = "=0.16.2" uuid = { version = "1.26.1", features = ["v4", "serde"] } rfd = "0.17.2" reqwest = { version = "0.12.28", default-features = false, features = ["blocking", "json", "multipart", "rustls-tls"] } diff --git a/docs/FILE-COMPARISON.md b/docs/FILE-COMPARISON.md index 8182cb9..eac4f55 100644 --- a/docs/FILE-COMPARISON.md +++ b/docs/FILE-COMPARISON.md @@ -6282,7 +6282,7 @@ Verdict: **scoped-improvement**. Revision: `filesystem-snapshot`. Original-byte Verdict: **equivalent-behavior**. Revision: `filesystem-snapshot`. Original-byte SHA-256: `5e6becf3291f81ae0307f6b78c57659cfab5abc13d9afc7bf0a3ff3f6248d608`. -- Target: `desktop/Cargo.lock:5318 [UTF8-LF sha256=5db30a66eec5474a07fe5c9cfabb39cbbc35e6d4c6ac12450c26202849b61e0e; anchor=name = "tungstenite"]`. +- Target: `desktop/Cargo.lock:5318 [UTF8-LF sha256=41cd879cba4d3f9922b7879a32ea0b52422317ed8d144c598061416d7c554410; anchor=name = "tungstenite"]`. - Retained: Read all 836 lockfile lines through EOF, including both npm v2 package and duplicated dependency trees. Reproducible transport dependency pinning is retained by the current native lockfile. - Omitted/replaced code: `obsolete npm v2 Socket.IO/chokidar dependency graph`. Disposition: **replaced**. Reason: No production Node update daemon remains. Retaining its 2023 graph would add an unused install/cache and duplicated attack surface without preserving functionality. - Omitted/replaced code: `Darwin-only fsevents and duplicated ws 8.11/8.14 records`. Disposition: **not-applicable**. Reason: The Windows/embedded deployment does not use this file watcher stack; Rust/firmware lock their own actually linked transports. @@ -6292,7 +6292,7 @@ Verdict: **equivalent-behavior**. Revision: `filesystem-snapshot`. Original-byte Verdict: **equivalent-behavior**. Revision: `filesystem-snapshot`. Original-byte SHA-256: `03d35d925349974134ff5a047503ac6772459893c6ef89219b825ef60cd0d5ed`. -- Target: `desktop/Cargo.toml:23 [UTF8-LF sha256=e330c25d8ba662bc8ffb5b848f669cc7af8882b13deff29e91606b43c90ff233; anchor=tungstenite =]`. +- Target: `desktop/Cargo.toml:23 [UTF8-LF sha256=a2e630c36ed867fff731d7dea275109570f05bd22c0c26c775a17b6a81df9df8; anchor=tungstenite =]`. - Retained: Read the complete dependency manifest. WebSocket client/server, HTTP/TLS, hashing and structured serialization needs are owned by the native Rust client and firmware platform rather than a second Node update daemon. - Omitted/replaced code: `chalk, chokidar, Socket.IO and ws runtime stack`. Disposition: **replaced**. Reason: The production native app already uses pinned rustls HTTP/WebSocket crates and the board uses its bounded embedded services. A parallel Node daemon would duplicate connection/update authority. - Omitted/replaced code: `http 0.0.1-security placeholder and missing tmp dependency used by Client.js`. Disposition: **replaced**. Reason: The placeholder adds no HTTP implementation and the manifest cannot reproduce its own client. Current builds use declared, locked dependencies or Node standard modules only. diff --git a/docs/REUSE-PREFLIGHT-RECEIPT.md b/docs/REUSE-PREFLIGHT-RECEIPT.md index ffbfe2e..03b7812 100644 --- a/docs/REUSE-PREFLIGHT-RECEIPT.md +++ b/docs/REUSE-PREFLIGHT-RECEIPT.md @@ -12000,3 +12000,21 @@ and CRLF cases. No guard is removed and no check is suppressed. The existing bluetooth/source wiring was inspected; this is fixture repair, not BLE radio acceptance. Combined shell and audit fixtures pass; final SSH/quality/SDK/client CI remains a separate exact-head gate. No boards or production apps changed. + +## GitHub handoff dependency repair (2026-11-05) + +PR45's mixed egui0.36/0.37 graph is a real incompatibility, not a flaky test. +Read the proposed manifest/lock changes, the graph guard and Pealayer's actual +Cargo manifest at9dfc54d3 (including its separately pinned Dock0.37 port). +Keep the verified0.36 framework/theme/Dock family for this integration; retain +the independent uuid1.29, rust_xlsxwriter0.101 and zip9.1.2 lock updates. +The original bot proposal remains in Git history. The complete paired framework +migration, including CraftUI and pointer geometry/captures, is tracked in issue50; +it is not declared implemented merely to empty the PR list. + +Reread the consumer manifest, full resulting lock diff and unchanged PuzzleBoard +package metadata; rebind only their inspected consumer hashes. The coherent-family +test passes with both mixed-family negative cases intact. Live donor consultation +reported Pealayer inventory drift, which is being reviewed separately on the UI +integration branch; no guard, source verdict or physical acceptance is waived. +Exact-head Windows compilation/package and full CI remain required before merge. diff --git a/docs/file-comparison-evidence.json b/docs/file-comparison-evidence.json index 6299b9a..c609630 100644 --- a/docs/file-comparison-evidence.json +++ b/docs/file-comparison-evidence.json @@ -10298,7 +10298,7 @@ "targets": [ { "path": "desktop/Cargo.toml", - "sha256": "e330c25d8ba662bc8ffb5b848f669cc7af8882b13deff29e91606b43c90ff233", + "sha256": "a2e630c36ed867fff731d7dea275109570f05bd22c0c26c775a17b6a81df9df8", "anchor": "tungstenite =" } ], @@ -10333,7 +10333,7 @@ "targets": [ { "path": "desktop/Cargo.lock", - "sha256": "5db30a66eec5474a07fe5c9cfabb39cbbc35e6d4c6ac12450c26202849b61e0e", + "sha256": "41cd879cba4d3f9922b7879a32ea0b52422317ed8d144c598061416d7c554410", "anchor": "name = \"tungstenite\"" } ], diff --git a/docs/file-comparison.csv b/docs/file-comparison.csv index 141a8d3..8e42bd9 100644 --- a/docs/file-comparison.csv +++ b/docs/file-comparison.csv @@ -2372,8 +2372,8 @@ "PuzzleBoard","Loose Code.txt","filesystem-snapshot","ca3ccb584275bcdef23bf10d0044ac4312b6406b9e1b3529df718d37de61a05b","donor-audit: specialist routing pending","https://github.com/atomicdeploy/PakarController/issues/3","scoped-improvement","complete","libraries/BoardCore/src/pccontroller/Keys.h:8 [UTF8-LF sha256=6df4169d3ded9dab1a0948ea519a0fcf6353fb836a6eac8a2c92ea051a341c58; anchor=PAKAR_KEY_DEBOUNCE_MS] | libraries/BoardCore/src/pccontroller/Keys.cpp:19 [UTF8-LF sha256=d9b8c8d4ec6beef667c01c5b5e3af539ead2429393e2632c4c59461f30c14224; anchor=void Key::updateSample]","Read the complete debounce fragment. Its raw-edge timestamp, stable-state comparison and one press action after a bounded quiet interval are retained in the shared front-key classifier.","fixed 50 ms press-only snippet with unspecified initialization and callbacks [replaced]","fixed 50 ms press-only snippet with unspecified initialization and callbacks: The shared 20 ms classifier initializes deterministically, handles unsigned rollover and emits Down immediately after debounce while also classifying Up/click/double-click/hold without delaying the primary action.","tests/pc_contract_test.cpp:298 [UTF8-LF sha256=d8aef9e99392072845e5110ecc9be0421435b0988daff633e1d7ec0da66bdc1c; anchor=key.updateSample(true,625)]","Generalizes the useful debounce edge into a bounded rollover-safe lifecycle while reducing primary-action latency and avoiding delayed click classification on the winning path.","Physical contact-bounce and first-press latency still require measurement on the fitted four-box buttons; host timing fixtures do not prove switch hardware.","Not established by source/hash/test-code comparison; see issue #2" "PuzzleBoard","PuzzleBoard.ino","filesystem-snapshot","bc9cddd4acef723a803df02dd22fc09ee681a9f1e72fba1af6625eba87ee9026","firmware-hardware","https://github.com/atomicdeploy/PakarController/issues/3 | https://github.com/atomicdeploy/PakarController/issues/6","parity-gap","complete","firmware/avr/FrontPanel.cpp:271 [UTF8-LF sha256=d90acc624b6d9e9248238eb5015a573bb3081bde5546b9bdc3d1e14661f3dea4; anchor=Imported from ControllerBoardMini/Puzzles::animation()] | firmware/avr/SevenSegments.cpp:385 [UTF8-LF sha256=73b97393db8937820b153c4b776014e2dda672c579a179f133777b1fe5107997; anchor=void SevenSegments::service(uint32_t now)] | firmware/avr/ShiftRegisters.cpp:55 [UTF8-LF sha256=990c51a59be04c29618232bd86f2857f9fddc65eb70d7585ad2f537c8a46b902; anchor=void ShiftRegisters::service()] | firmware/avr/TonePlayer.cpp:62 [UTF8-LF sha256=6c578fb07b1c5059d1d03690beed73806a77b9d28cd05359d9f225b945275ed1; anchor=void TonePlayer::update(uint32_t now)] | libraries/BoardCore/src/GamePanelFeedback.h:10 [UTF8-LF sha256=10e31abc341049f2d118394b9279a55ea9ac6e4887b14f7e9cded471758c670d; anchor=inline void puzzlePanelSegments] | firmware/esp/src/KeyMiniGameSettings.h:12 [UTF8-LF sha256=9632b6d8a0f3956bb8ee109709ccb470374a5a3380fa58b0ca8962e27c45ccc4; anchor=bootLast=false] | firmware/esp/src/KeyMiniGameService.h:137 [UTF8-LF sha256=3c5d9668615d53d7e1641b3dca12f83d2361f5ebdddc5cb2f1975d19ea456300; anchor=if(miniBootPending)]","Read all 1223 donor lines through EOF. Preserved its 12-step four-digit perimeter animation, active-low input/relay service concepts, temporary status colors, valid/error audio distinction, serial input diagnostics and cooperative service intent. | The target uses board-confirmed A4/DIO and A5/CLK TM1637, one mode-aware shift-register owner, nonblocking tone queue and framed UART; the perimeter animation is a bounded semantic state rather than an always-running idle distraction. | 2026-10-29: Adapt MODE_RESET waitCounter exactly: bottom-left across, right C/B, top backwards, left F/E; 100 ms per step, active-high TM1637. Optional Ready animation uses existing semantic priorities. Active timed games have disposable idle-only second/minute audio; fresh boot selection is configurable, first available/Press to win by default. No new physical acceptance.","ATmega32 PC6/PC7/PC3-PC5, PD6/PB4 and LCD A1-A7 pin map [replaced] | hard-coded 2231 puzzle, two countdown modes and relay-one success sequence [not-applicable] | blocking valid/error beeps and five-second success delay [replaced] | digitIndex++ == 4 indexing displayData[4] before reset [replaced] | single-byte unframed virtual-key serial protocol at 9600 baud [replaced] | LCD and full sixteen-input/two-register multiplex capability [pending]","ATmega32 PC6/PC7/PC3-PC5, PD6/PB4 and LCD A1-A7 pin map: Those pins belong to a different controller. Pakar retains the confirmed ATmega328P shift-register map and A4/A5 TM1637 map; copying this donor map would break fitted UART, ISP and display hardware. | hard-coded 2231 puzzle, two countdown modes and relay-one success sequence: These are PuzzleBoard business rules. Each target bakes exactly one table-selection or first-wins role and must not leak another game's narrative. | blocking valid/error beeps and five-second success delay: The nonblocking hardware-timer queue and cooperative task owner keep UART, keys, reset and front-panel service responsive. | digitIndex++ == 4 indexing displayData[4] before reset: The donor accesses beyond its four-element display buffer. The TM1637 driver commits exactly four cached segment bytes and has no software digit multiplex index. | single-byte unframed virtual-key serial protocol at 9600 baud: Hardware UART remains at 38400 with framed identity/capability-aware bidirectional events, correlation and checksums. | LCD and full sixteen-input/two-register multiplex capability: LCD remains separately capability-gated and current ATmega328P hardware uses the reviewed eight-bit register plus dedicated ninth input. This comparison cannot certify absent hardware.","tests/front_panel_test.cpp:144 [UTF8-LF sha256=c1c9da7276ef26ae35c7ad6a927d751f177bf43774c1408a86b225f651550cd6; anchor=BoardCore::Protocol::kModeFirstWins] | tests/key_input_order_test.cpp:32 [UTF8-LF sha256=fc1b99ef668cae2692a3317df5c345b544f702207f85646b5e88871c0ce2292a; anchor=shifted==0x5a] | tests/key_minigame_test.cpp:355 [UTF8-LF sha256=cfc14503e4ad7d3d260659ff59e4bc1520072ced8aad008306eaf35e23c26199; anchor=static void panelFeedback()] | tests/semantic_panel_test.cpp:53 [UTF8-LF sha256=24f15644080821c8ee821f8d9851a07ed22557c637714a32b9f0a5b5bd4188bd; anchor=Presenter animated] | tests/tone_player_test.cpp:105 [UTF8-LF sha256=d1d890f6ead81d22702eb685ae710935bc7c007af5f97236454b851a3f5adc42; anchor=uint8_t tick[]] | tests/key_minigame_settings_test.cpp:84 [UTF8-LF sha256=7f8b183063948106127cac87e7cf44544173a3d99c1c7b62997a2a859b5136bc; anchor=Actual minigame settings:]","Keeps reusable status/display/input/audio behavior while removing incompatible pins, blocking delays, unframed commands and the donor's four-byte display-buffer overrun.","Physically verify TM1637 ACK/brightness/text/perimeter/status timing, all fitted keys/relays, exact audio cues and ESP-AVR UART. Host fixtures do not prove optical, electrical or audible behavior.","Not established by source/hash/test-code comparison; see issue #2" "PuzzleBoard","Tools/Client.js","filesystem-snapshot","26fc93622bdbdb6c1b36f869f60baa5dabc541a201fe53cebcaddce7cbd4d103","donor-audit: specialist routing pending","https://github.com/atomicdeploy/PakarController/issues/3","scoped-improvement","complete","tools/update-firmware.mjs:216 [UTF8-LF sha256=f1661663563a2dcd4eaed9d1a054cc986cf03d8e3b0806bc93d6bf07560ad068; anchor=export async function updateFirmware] | desktop/src/firmware_source.rs:36 [UTF8-LF sha256=eef1257baacec983861f4ad2f8277d034f5beab88424902d481e7c3325680094; anchor=pub fn validate_remote]","Read all 193 donor lines through EOF. Preserved remote update-client intent, streamed progress/error reporting, temporary artifact isolation and explicit completion observation.","fixed COM6, AVR_HOME/urclock and hard-coded atmega328p programmer command [replaced] | avrdude -V and shell-composed command string [replaced] | any unauthenticated fileModified Socket.IO event immediately writes flash [replaced] | unbounded server trust and line-by-line raw stdout publication [replaced]","fixed COM6, AVR_HOME/urclock and hard-coded atmega328p programmer command: The updater inventories and pins an acknowledged board/boot/address, validates the image/profile and uses the selected board-owned local or remote update path rather than guessing a host port/programmer. | avrdude -V and shell-composed command string: Disabling verification and passing interpolated paths through a shell can corrupt or execute unintended input. Current flows hash, back up, verify/read back and use bounded structured requests. | any unauthenticated fileModified Socket.IO event immediately writes flash: Firmware mutation requires an explicit run/apply action, compatible peer identity, exact board/boot fencing, size/hash/profile admission and no automatic replay after an uncertain write. | unbounded server trust and line-by-line raw stdout publication: Typed progress/status events redact credentials, bind to one operation identity and distinguish staged, accepted, rebooting, verified and failed outcomes.","tests/update_tool_test.mjs:106 [UTF8-LF sha256=f77db2458acdf69bc16d9e187911d2856e8b4990027371bd7ed85d4efc192889; anchor=No retry/fallback after mutation] | tests/update_backup_test.mjs:75 [UTF8-LF sha256=9fad7b056864a821193c642fbc8739ca60f6b490fc358853906564fd242b75cc; anchor=Verified backup must exist BEFORE the one write]","Turns the donor's unauthenticated fire-on-event programmer into an explicit backup-first, identity-fenced, integrity-verified, no-replay updater shared by CLI and clients.","Physical USB/OTA/ISP update, power-loss recovery and new-boot verification remain live board gates; fixtures do not authorize or prove a flash.","Not established by source/hash/test-code comparison; see issue #2" -"PuzzleBoard","Tools/package-lock.json","filesystem-snapshot","5e6becf3291f81ae0307f6b78c57659cfab5abc13d9afc7bf0a3ff3f6248d608","donor-audit: specialist routing pending","https://github.com/atomicdeploy/PakarController/issues/3","equivalent-behavior","complete","desktop/Cargo.lock:5318 [UTF8-LF sha256=5db30a66eec5474a07fe5c9cfabb39cbbc35e6d4c6ac12450c26202849b61e0e; anchor=name = ""tungstenite""]","Read all 836 lockfile lines through EOF, including both npm v2 package and duplicated dependency trees. Reproducible transport dependency pinning is retained by the current native lockfile.","obsolete npm v2 Socket.IO/chokidar dependency graph [replaced] | Darwin-only fsevents and duplicated ws 8.11/8.14 records [not-applicable]","obsolete npm v2 Socket.IO/chokidar dependency graph: No production Node update daemon remains. Retaining its 2023 graph would add an unused install/cache and duplicated attack surface without preserving functionality. | Darwin-only fsevents and duplicated ws 8.11/8.14 records: The Windows/embedded deployment does not use this file watcher stack; Rust/firmware lock their own actually linked transports.","","","Current dependency CI/build evidence remains distinct from device/runtime acceptance.","Not established by source/hash/test-code comparison; see issue #2" -"PuzzleBoard","Tools/package.json","filesystem-snapshot","03d35d925349974134ff5a047503ac6772459893c6ef89219b825ef60cd0d5ed","donor-audit: specialist routing pending","https://github.com/atomicdeploy/PakarController/issues/3","equivalent-behavior","complete","desktop/Cargo.toml:23 [UTF8-LF sha256=e330c25d8ba662bc8ffb5b848f669cc7af8882b13deff29e91606b43c90ff233; anchor=tungstenite =]","Read the complete dependency manifest. WebSocket client/server, HTTP/TLS, hashing and structured serialization needs are owned by the native Rust client and firmware platform rather than a second Node update daemon.","chalk, chokidar, Socket.IO and ws runtime stack [replaced] | http 0.0.1-security placeholder and missing tmp dependency used by Client.js [replaced]","chalk, chokidar, Socket.IO and ws runtime stack: The production native app already uses pinned rustls HTTP/WebSocket crates and the board uses its bounded embedded services. A parallel Node daemon would duplicate connection/update authority. | http 0.0.1-security placeholder and missing tmp dependency used by Client.js: The placeholder adds no HTTP implementation and the manifest cannot reproduce its own client. Current builds use declared, locked dependencies or Node standard modules only.","","","Dependency manifests establish reproducible source inputs, not a live network or update result.","Not established by source/hash/test-code comparison; see issue #2" +"PuzzleBoard","Tools/package-lock.json","filesystem-snapshot","5e6becf3291f81ae0307f6b78c57659cfab5abc13d9afc7bf0a3ff3f6248d608","donor-audit: specialist routing pending","https://github.com/atomicdeploy/PakarController/issues/3","equivalent-behavior","complete","desktop/Cargo.lock:5318 [UTF8-LF sha256=41cd879cba4d3f9922b7879a32ea0b52422317ed8d144c598061416d7c554410; anchor=name = ""tungstenite""]","Read all 836 lockfile lines through EOF, including both npm v2 package and duplicated dependency trees. Reproducible transport dependency pinning is retained by the current native lockfile.","obsolete npm v2 Socket.IO/chokidar dependency graph [replaced] | Darwin-only fsevents and duplicated ws 8.11/8.14 records [not-applicable]","obsolete npm v2 Socket.IO/chokidar dependency graph: No production Node update daemon remains. Retaining its 2023 graph would add an unused install/cache and duplicated attack surface without preserving functionality. | Darwin-only fsevents and duplicated ws 8.11/8.14 records: The Windows/embedded deployment does not use this file watcher stack; Rust/firmware lock their own actually linked transports.","","","Current dependency CI/build evidence remains distinct from device/runtime acceptance.","Not established by source/hash/test-code comparison; see issue #2" +"PuzzleBoard","Tools/package.json","filesystem-snapshot","03d35d925349974134ff5a047503ac6772459893c6ef89219b825ef60cd0d5ed","donor-audit: specialist routing pending","https://github.com/atomicdeploy/PakarController/issues/3","equivalent-behavior","complete","desktop/Cargo.toml:23 [UTF8-LF sha256=a2e630c36ed867fff731d7dea275109570f05bd22c0c26c775a17b6a81df9df8; anchor=tungstenite =]","Read the complete dependency manifest. WebSocket client/server, HTTP/TLS, hashing and structured serialization needs are owned by the native Rust client and firmware platform rather than a second Node update daemon.","chalk, chokidar, Socket.IO and ws runtime stack [replaced] | http 0.0.1-security placeholder and missing tmp dependency used by Client.js [replaced]","chalk, chokidar, Socket.IO and ws runtime stack: The production native app already uses pinned rustls HTTP/WebSocket crates and the board uses its bounded embedded services. A parallel Node daemon would duplicate connection/update authority. | http 0.0.1-security placeholder and missing tmp dependency used by Client.js: The placeholder adds no HTTP implementation and the manifest cannot reproduce its own client. Current builds use declared, locked dependencies or Node standard modules only.","","","Dependency manifests establish reproducible source inputs, not a live network or update result.","Not established by source/hash/test-code comparison; see issue #2" "PuzzleBoard","Tools/run.cmd","filesystem-snapshot","5a1d1bafd162b95504d3df9d49b69894d24e9ca558ad5c4bd4d10488210b27cf","donor-audit: specialist routing pending","https://github.com/atomicdeploy/PakarController/issues/3","scoped-improvement","complete","tools/update-firmware.ps1:16 [UTF8-LF sha256=76718dc025e115ce85ef86ae1014e875b9fcbc7c629276ff07a893868f75a56f; anchor=[switch]$Run]","Read the complete launcher. Preserved a simple cross-platform updater entry point and clear failure reporting without silently executing a newly downloaded script.","infinite unauthenticated HTTP curl/download/overwrite/execute loop [replaced] | delete temporary failure and retry every three seconds forever [replaced]","infinite unauthenticated HTTP curl/download/overwrite/execute loop: It provides neither integrity nor rollback and will repeatedly execute whatever localhost:800 serves. Current update defaults to a plan and requires explicit -Run after source/image/peer validation. | delete temporary failure and retry every three seconds forever: Unknown or failed mutations are retained as inspectable receipts and are never automatically replayed; operators receive a finite actionable failure.","tests/update_tool_test.mjs:106 [UTF8-LF sha256=f77db2458acdf69bc16d9e187911d2856e8b4990027371bd7ed85d4efc192889; anchor=No retry/fallback after mutation]","Replaces automatic remote-code execution and retry storms with a reviewed, explicit, finite updater that defaults to no device write.","The prepared four-box images still require a newly enumerated ASUS USB device before the explicit run path can perform backup-first deployment.","Not established by source/hash/test-code comparison; see issue #2" "PuzzleBoard","Tools/Server.js","filesystem-snapshot","c0c7286c6f113cfdb355b4c639921edb48018bff54e6af5e1f95f01d5dae0696","donor-audit: specialist routing pending","https://github.com/atomicdeploy/PakarController/issues/3","scoped-improvement","complete","tools/create-remote-manifest.mjs:6 [UTF8-LF sha256=05e1f81319f032d70e94333c15605d7ad4038a578fa96c7983479e5cc48e557c; anchor=export function manifest] | firmware/esp/src/RemoteFirmware.cpp:131 [UTF8-LF sha256=ad02224ab50dde4e3f34367003d9c9ddad3198722cb5aac7bcb51bd935f81f4a; anchor=bool RemoteFirmware::queue]","Read all 96 donor lines through EOF. Preserved multi-client update notification, file metadata/progress intent and change coalescing, but separated publication from authorization to apply.","watch any local path then broadcast raw ASCII image to every unauthenticated Socket.IO client [replaced] | mtime/500 ms debounce as release identity [replaced] | no delivery receipts, cancellation identity, reboot verification or interrupted-update journal [replaced]","watch any local path then broadcast raw ASCII image to every unauthenticated Socket.IO client: A published immutable HTTPS manifest carries exact target, version, size and SHA-256. Each board/client independently validates it; discovery or connection never grants update authority. | mtime/500 ms debounce as release identity: Content hashes, firmware headers, product/profile and compatible release identify an artifact; filesystem timing is neither stable nor secure evidence. | no delivery receipts, cancellation identity, reboot verification or interrupted-update journal: The durable remote state machine reports bounded phases, pins job/boot/hash, refuses replay and verifies the running image after reboot before completion.","tests/remote_firmware_test.cpp:60 [UTF8-LF sha256=54fcd8bfd9de70518b2771d53ce6629d646a848b8edbe99509d80affb375bd21; anchor=Actual RemoteFirmware state machine]","Keeps publish/notify semantics while making artifacts immutable and verifiable and making apply a separate, identity-bound state transition with durable recovery evidence.","Internet endpoint availability, TLS transport and physical two-board update acceptance remain unproven until exercised on the connected hardware.","Not established by source/hash/test-code comparison; see issue #2" "PuzzleBoard","XS/40LED.ino","filesystem-snapshot","9494993a0aa031a75b709a47a6220330c9b4bb4e90d5a7e9898a37ad9111599a","firmware-hardware | games-streaming","https://github.com/atomicdeploy/PakarController/issues/2 | https://github.com/atomicdeploy/PakarController/issues/3 | https://github.com/atomicdeploy/PakarController/issues/6","scoped-improvement","complete","firmware/esp/src/LedGrid.cpp:336 [UTF8-LF sha256=9e08798277b72ee4420add3d3dc530dce83bf507e824a088439c7dc123211793; anchor=Wall-clock interpolation] | firmware/avr/BootMelody.cpp:22 [UTF8-LF sha256=fad1505f9cedc196236fc782ae2ec71a3c9fb8784659a1955affdf9e44137247; anchor=case kCueWelcome40Led:] | firmware/avr/ShiftRegisters.cpp:55 [UTF8-LF sha256=990c51a59be04c29618232bd86f2857f9fddc65eb70d7585ad2f537c8a46b902; anchor=void ShiftRegisters::service()] | libraries/BoardCore/src/SerialLink.h:12 [UTF8-LF sha256=99373bc4c090e34324cfd2ae8c94d6666c227ad7e157a47fbd85125aac6c13a0; anchor=class SerialLink]","Read all 1523 donor lines through EOF. Preserved its exact 590 ms welcome variation, fractional progress interpolation, monotonic animation intent, active-low output/input service concepts, changed-state notices and explicit automatic/manual ownership boundary. | The current LED owner generalizes the donor's fixed 50/66-pixel progress rendering into atomic grouped cells, wall-clock 300 ms transitions, a uniform indicator pulse and configurable neighbour-aware illumination chase without stretching when network work delays the loop. | The current AVR owners retain hardware UART, cooperative shift-register/key service and nonblocking Timer1 audio; no second AVR effects engine or unconditional serial bridge was introduced.","FINAL_TABLE score, bonus, fan warm-up/countdown and relay-state business [not-applicable] | RADIOGRAM analog motor meter and 50/66-pixel fixed geometry [not-applicable] | A0 LED, D8 buzzer, A1-A3/D4-D7 shift pins and SoftwareSerial A4/A5 [replaced] | unchecked 16-byte ASCII parser, atoi commands, unconditional 9600-baud serial forwarding and 50 ms reply delay [replaced] | blocking welcome/reset beeps, watchdog reboot loop and loop-coupled animation progress [replaced] | commented confetti, sinelon, BPM and juggle examples [not-applicable]","FINAL_TABLE score, bonus, fan warm-up/countdown and relay-state business: Those rules implement another game. Pakar bakes exactly one table-selection or first-wins role and keeps donor-independent hardware owners shared. | RADIOGRAM analog motor meter and 50/66-pixel fixed geometry: No corresponding analog motor-meter hardware is fitted; current roles advertise and size their actual grouped LED geometry. | A0 LED, D8 buzzer, A1-A3/D4-D7 shift pins and SoftwareSerial A4/A5: These pins conflict with the confirmed S3 GPIO4 LED owner, AVR D9 buzzer, board shift-register map, hardware UART and TM1637 A4/A5. | unchecked 16-byte ASCII parser, atoi commands, unconditional 9600-baud serial forwarding and 50 ms reply delay: Bounded framed COBS/CRC transport, typed commands, correlation and capability/version checks prevent overflow, ambiguity and blocking. | blocking welcome/reset beeps, watchdog reboot loop and loop-coupled animation progress: Queued Timer1 audio, explicit reset/update owners and monotonic wall-clock rendering keep keys, UART and LED frames responsive. | commented confetti, sinelon, BPM and juggle examples: The user explicitly excluded these generic effects.","tests/led_grid_test.cpp:48 [UTF8-LF sha256=5122ffecf1d5dfdf3cf765beea48c3be0eb40bd08a6ab2de0372f0ae017011bc; anchor=rainbowClockCadence] | tests/tone_player_test.cpp:182 [UTF8-LF sha256=d1d890f6ead81d22702eb685ae710935bc7c007af5f97236454b851a3f5adc42; anchor=kCueWelcome40Led] | tests/serial_link_test.cpp:45 [UTF8-LF sha256=c103ffb2c7530bb4c85373433b123fe072bb6649f2d97b82f70fa08d404eeae8; anchor=begin(38400]","Retains the donor's reusable progress, ownership and audio ideas with role-sized atomic scenes, nonblocking transport/audio and network-delay-independent animation instead of copying its incompatible pins and business rules.","Physically verify actual grouped LED order/channel color, transition cadence, winner pulse/chase and the 590 ms welcome variation. Source and transport fixtures do not prove optical or audible behavior.","Not established by source/hash/test-code comparison; see issue #2"