Skip to main content

max / makenotwork

sando: fix TUI compile + gate both crates via workspace (ultra-fuzz Run 2 C1) The TUI crate stopped compiling at a0a22c5 (boot_smoke /health probe added PassNote::HealthyProbe and GateFailure::BootHealthProbeFailed to the daemon) because its exhaustive matches were never updated, and nothing built the TUI crate so it went unnoticed. Add the two match arms, then add a root workspace Cargo.toml over daemon+tui so cargo build/test at sando/ covers both crates and a future daemon enum-variant addition is a build error. Self-update/bootstrap build with -p sando-daemon against the relocated workspace target/. Also: distinct mark for an unknown gate status (vs in-flight), and surface a notice when a confirmed action can't be sent (full channel) instead of dropping it silently.
Co-Authored-By
Claude Opus 4.8 <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-06-23 00:47 UTC
Signed with PGP, not checked
Commit: 2d2eb4eb984719e9fa72c01f3fdfd7375428a9bd
Parent: 095d05c
6 files changed, +167 insertions, -583 deletions
@@ -242,14 +242,15 @@
242 242 systemctl daemon-reload
243 243
244 244 if [[ "$BUILD_SANDOD" == "1" ]]; then
245 - log "12/13 sandod binary (cargo build --release → /usr/local/bin/sandod)"
245 + log "12/13 sandod binary (cargo build --release -p sando-daemon → /usr/local/bin/sandod)"
246 246 daemon_dir="$SANDO_REPO/daemon"
247 247 if [[ ! -d "$daemon_dir" ]]; then
248 248 log " warn: cannot locate sando/daemon source at $daemon_dir; skipping build"
249 249 else
250 - # cargo only needs network + tmp; resulting binary owned root, mode 755.
251 - (cd "$daemon_dir" && cargo build --release --quiet)
252 - install -m 0755 "$daemon_dir/target/release/sandod" /usr/local/bin/sandod
250 + # Build from the workspace root so the binary lands in the shared
251 + # sando/target; -p sando-daemon skips the TUI. Binary owned root, mode 755.
252 + (cd "$SANDO_REPO" && cargo build --release --quiet -p sando-daemon)
253 + install -m 0755 "$SANDO_REPO/target/release/sandod" /usr/local/bin/sandod
253 254 fi
254 255 else
255 256 log "12/13 skipping sandod build (BUILD_SANDOD=0)"
@@ -48,11 +48,13 @@
48 48 cd '$REPO_DIR'
49 49 git fetch --prune origin
50 50 git checkout --detach '$SHA'
51 - cd sando/daemon
52 - cargo build --release --locked
51 + cd sando
52 + cargo build --release --locked -p sando-daemon
53 53 "
54 54
55 - NEW_BIN="$REPO_DIR/sando/daemon/target/release/sandod"
55 + # Workspace shares one target dir at sando/target; -p sando-daemon avoids
56 + # compiling the TUI on the build host.
57 + NEW_BIN="$REPO_DIR/sando/target/release/sandod"
56 58 [[ -x "$NEW_BIN" ]] || { echo "sando-self-update: build produced no binary at $NEW_BIN" >&2; exit 3; }
57 59
58 60 # Install + restart as root. install is atomic (writes a temp then renames), so
@@ -475,6 +475,7 @@
475 475 fn pass_note_short(n: &PassNote) -> String {
476 476 match n {
477 477 PassNote::StayedUp { duration_s } => format!("up {duration_s}s"),
478 + PassNote::HealthyProbe { after_ms } => format!("/health {after_ms}ms"),
478 479 PassNote::BurnInElapsed { hours } => format!("{hours}h elapsed"),
479 480 PassNote::Migrated { backup_path } => {
480 481 // Show just the basename; full path lives in /state if needed.
@@ -507,6 +508,9 @@
507 508 GateFailure::BootPanic { .. } => "panic".into(),
508 509 GateFailure::BootExitedEarly { exit_code: Some(c) } => format!("exited {c}"),
509 510 GateFailure::BootExitedEarly { .. } => "exited early".into(),
511 + GateFailure::BootHealthProbeFailed { last_error } => {
512 + format!("no /health: {}", last_error.chars().take(40).collect::<String>())
513 + }
510 514 GateFailure::SpawnFailed { message } => format!("spawn: {message}"),
511 515 GateFailure::Timeout { gate, after_s } => format!("{gate} timeout {after_s}s"),
512 516 GateFailure::Unclassified { legacy_detail: Some(d) } => {
@@ -524,7 +528,10 @@
524 528 Some("passed") => ("ok", Style::default().fg(Color::Green)),
525 529 Some("failed") => ("FAIL", Style::default().fg(Color::Red).add_modifier(Modifier::BOLD)),
526 530 Some("blocked") => ("blocked", Style::default().fg(Color::Yellow)),
527 - Some(_) | None => ("...", Style::default().fg(Color::DarkGray)),
531 + // A genuinely unknown status string from the daemon is a contract drift,
532 + // not an in-flight gate — surface it distinctly rather than masking it as "...".
533 + Some(_) => ("?", Style::default().fg(Color::Magenta)),
534 + None => ("...", Style::default().fg(Color::DarkGray)),
528 535 }
529 536 }
530 537
@@ -586,8 +593,10 @@
586 593 loop {
587 594 term.draw(|f| draw(f, daemon, shared))?;
588 595
589 - if event::poll(Duration::from_millis(120))? {
590 - if let XEvent::Key(k) = event::read()? {
596 + if event::poll(Duration::from_millis(120))?
597 + && let XEvent::Key(k) = event::read()?
598 + {
599 + {
591 600 // Ctrl+C always quits, even mid-confirmation.
592 601 if k.code == KeyCode::Char('c') && k.modifiers.contains(KeyModifiers::CONTROL) {
593 602 return Ok(());
@@ -601,7 +610,13 @@
601 610 if let Some(act) = pending {
602 611 match k.code {
603 612 KeyCode::Char('y') | KeyCode::Char('Y') | KeyCode::Enter => {
604 - let _ = action_tx.try_send(act);
613 + // Don't swallow a full-channel drop: the operator must not
614 + // believe a promote was sent when it wasn't.
615 + if let Err(e) = action_tx.try_send(act) {
616 + let act = e.into_inner();
617 + shared.lock().unwrap().notice =
618 + Some(format!("{act} not sent (daemon busy) - retry"));
619 + }
605 620 }
606 621 _ => {
607 622 shared.lock().unwrap().notice = Some(format!("{act} cancelled"));
@@ -1050,7 +1065,7 @@
1050 1065 }
1051 1066
1052 1067 #[test]
1053 - fn format_event_gate_done_blocked_is_not_FAIL() {
1068 + fn format_event_gate_done_blocked_is_not_fail() {
1054 1069 // The whole point of the Blocked variant: an unstarted burn-in
1055 1070 // clock is not a defect, so the TUI renders it distinctly from a
1056 1071 // genuine failure. No "FAIL" string.
@@ -145,9 +145,9 @@
145 145
146 146 [[package]]
147 147 name = "bitflags"
148 - version = "2.11.1"
148 + version = "2.13.0"
149 149 source = "registry+https://github.com/rust-lang/crates.io-index"
150 - checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
150 + checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
151 151 dependencies = [
152 152 "serde_core",
153 153 ]
@@ -175,9 +175,9 @@
175 175
176 176 [[package]]
177 177 name = "bytes"
178 - version = "1.11.1"
178 + version = "1.12.0"
179 179 source = "registry+https://github.com/rust-lang/crates.io-index"
180 - checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
180 + checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593"
181 181
182 182 [[package]]
183 183 name = "cassowary"
@@ -196,9 +196,9 @@
196 196
197 197 [[package]]
198 198 name = "cc"
199 - version = "1.2.62"
199 + version = "1.2.65"
200 200 source = "registry+https://github.com/rust-lang/crates.io-index"
201 - checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98"
201 + checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
202 202 dependencies = [
203 203 "find-msvc-tools",
204 204 "shlex",
@@ -218,9 +218,9 @@
218 218
219 219 [[package]]
220 220 name = "chrono"
221 - version = "0.4.44"
221 + version = "0.4.45"
222 222 source = "registry+https://github.com/rust-lang/crates.io-index"
223 - checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0"
223 + checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
224 224 dependencies = [
225 225 "iana-time-zone",
226 226 "js-sys",
@@ -232,9 +232,9 @@
232 232
233 233 [[package]]
234 234 name = "compact_str"
235 - version = "0.8.1"
235 + version = "0.8.2"
236 236 source = "registry+https://github.com/rust-lang/crates.io-index"
237 - checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32"
237 + checksum = "7fd622ebbb56a5b2ccb651b32b911cdeb2a9b4b11776b2473bf26a26a286244e"
238 238 dependencies = [
239 239 "castaway",
240 240 "cfg-if",
@@ -323,7 +323,7 @@
323 323 "crossterm_winapi",
324 324 "mio",
325 325 "parking_lot",
326 - "rustix",
326 + "rustix 0.38.44",
327 327 "signal-hook",
328 328 "signal-hook-mio",
329 329 "winapi",
@@ -413,9 +413,9 @@
413 413
414 414 [[package]]
415 415 name = "displaydoc"
416 - version = "0.2.5"
416 + version = "0.2.6"
417 417 source = "registry+https://github.com/rust-lang/crates.io-index"
418 - checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
418 + checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f"
419 419 dependencies = [
420 420 "proc-macro2",
421 421 "quote",
@@ -450,7 +450,7 @@
450 450 checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
451 451 dependencies = [
452 452 "libc",
453 - "windows-sys 0.52.0",
453 + "windows-sys 0.61.2",
454 454 ]
455 455
456 456 [[package]]
@@ -486,6 +486,12 @@
486 486 "smallvec",
487 487 ]
488 488
489 + [[package]]
490 + name = "fastrand"
491 + version = "2.4.1"
492 + source = "registry+https://github.com/rust-lang/crates.io-index"
493 + checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
494 +
489 495 [[package]]
490 496 name = "find-msvc-tools"
491 497 version = "0.1.9"
@@ -642,11 +648,22 @@
642 648 "cfg-if",
643 649 "js-sys",
644 650 "libc",
645 - "r-efi",
651 + "r-efi 5.3.0",
646 652 "wasip2",
647 653 "wasm-bindgen",
648 654 ]
649 655
656 + [[package]]
657 + name = "getrandom"
658 + version = "0.4.3"
659 + source = "registry+https://github.com/rust-lang/crates.io-index"
660 + checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
661 + dependencies = [
662 + "cfg-if",
663 + "libc",
664 + "r-efi 6.0.0",
665 + ]
666 +
650 667 [[package]]
651 668 name = "hashbag"
652 669 version = "0.1.13"
@@ -729,9 +746,9 @@
729 746
730 747 [[package]]
731 748 name = "http"
732 - version = "1.4.0"
749 + version = "1.4.2"
733 750 source = "registry+https://github.com/rust-lang/crates.io-index"
734 - checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a"
751 + checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425"
735 752 dependencies = [
736 753 "bytes",
737 754 "itoa",
@@ -774,9 +791,9 @@
774 791
775 792 [[package]]
776 793 name = "hyper"
777 - version = "1.9.0"
794 + version = "1.10.1"
778 795 source = "registry+https://github.com/rust-lang/crates.io-index"
779 - checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca"
796 + checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498"
780 797 dependencies = [
781 798 "atomic-waker",
782 799 "bytes",
@@ -806,7 +823,7 @@
806 823 "tokio",
807 824 "tokio-rustls",
808 825 "tower-service",
809 - "webpki-roots 1.0.7",
826 + "webpki-roots 1.0.8",
810 827 ]
811 828
812 829 [[package]]
@@ -1020,13 +1037,12 @@
1020 1037
1021 1038 [[package]]
1022 1039 name = "js-sys"
1023 - version = "0.3.99"
1040 + version = "0.3.102"
1024 1041 source = "registry+https://github.com/rust-lang/crates.io-index"
1025 - checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11"
1042 + checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31"
1026 1043 dependencies = [
1027 1044 "cfg-if",
1028 1045 "futures-util",
1029 - "once_cell",
1030 1046 "wasm-bindgen",
1031 1047 ]
1032 1048
@@ -1091,6 +1107,12 @@
1091 1107 source = "registry+https://github.com/rust-lang/crates.io-index"
1092 1108 checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
1093 1109
1110 + [[package]]
1111 + name = "linux-raw-sys"
1112 + version = "0.12.1"
1113 + source = "registry+https://github.com/rust-lang/crates.io-index"
1114 + checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
1115 +
1094 1116 [[package]]
1095 1117 name = "litemap"
1096 1118 version = "0.8.2"
@@ -1108,9 +1130,9 @@
1108 1130
1109 1131 [[package]]
1110 1132 name = "log"
1111 - version = "0.4.29"
1133 + version = "0.4.33"
1112 1134 source = "registry+https://github.com/rust-lang/crates.io-index"
1113 - checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
1135 + checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
1114 1136
1115 1137 [[package]]
1116 1138 name = "loom"
@@ -1167,9 +1189,9 @@
1167 1189
1168 1190 [[package]]
1169 1191 name = "memchr"
1170 - version = "2.8.0"
1192 + version = "2.8.2"
1171 1193 source = "registry+https://github.com/rust-lang/crates.io-index"
1172 - checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
1194 + checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
1173 1195
1174 1196 [[package]]
1175 1197 name = "metrics"
@@ -1221,9 +1243,9 @@
1221 1243
1222 1244 [[package]]
1223 1245 name = "mio"
1224 - version = "1.2.0"
1246 + version = "1.2.1"
1225 1247 source = "registry+https://github.com/rust-lang/crates.io-index"
1226 - checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
1248 + checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda"
1227 1249 dependencies = [
1228 1250 "libc",
1229 1251 "log",
@@ -1237,7 +1259,7 @@
1237 1259 source = "registry+https://github.com/rust-lang/crates.io-index"
1238 1260 checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
1239 1261 dependencies = [
1240 - "windows-sys 0.59.0",
1262 + "windows-sys 0.61.2",
1241 1263 ]
1242 1264
1243 1265 [[package]]
@@ -1443,9 +1465,9 @@
1443 1465
1444 1466 [[package]]
1445 1467 name = "quinn"
1446 - version = "0.11.9"
1468 + version = "0.11.11"
1447 1469 source = "registry+https://github.com/rust-lang/crates.io-index"
1448 - checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20"
1470 + checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8"
1449 1471 dependencies = [
1450 1472 "bytes",
1451 1473 "cfg_aliases",
@@ -1463,9 +1485,9 @@
1463 1485
1464 1486 [[package]]
1465 1487 name = "quinn-proto"
1466 - version = "0.11.14"
1488 + version = "0.11.15"
1467 1489 source = "registry+https://github.com/rust-lang/crates.io-index"
1468 - checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098"
1490 + checksum = "4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e"
1469 1491 dependencies = [
1470 1492 "bytes",
1471 1493 "getrandom 0.3.4",
@@ -1498,9 +1520,9 @@
1498 1520
1499 1521 [[package]]
1500 1522 name = "quote"
1501 - version = "1.0.45"
1523 + version = "1.0.46"
1502 1524 source = "registry+https://github.com/rust-lang/crates.io-index"
1503 - checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
1525 + checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
1504 1526 dependencies = [
1505 1527 "proc-macro2",
1506 1528 ]
@@ -1511,6 +1533,12 @@
1511 1533 source = "registry+https://github.com/rust-lang/crates.io-index"
1512 1534 checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
1513 1535
1536 + [[package]]
1537 + name = "r-efi"
1538 + version = "6.0.0"
1539 + source = "registry+https://github.com/rust-lang/crates.io-index"
1540 + checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
1541 +
1514 1542 [[package]]
1515 1543 name = "rand"
1516 1544 version = "0.8.6"
@@ -1649,9 +1677,9 @@
1649 1677
1650 1678 [[package]]
1651 1679 name = "regex-syntax"
1652 - version = "0.8.10"
1680 + version = "0.8.11"
1653 1681 source = "registry+https://github.com/rust-lang/crates.io-index"
1654 - checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
1682 + checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
1655 1683
1656 1684 [[package]]
1657 1685 name = "reqwest"
@@ -1688,7 +1716,7 @@
1688 1716 "wasm-bindgen",
1689 1717 "wasm-bindgen-futures",
1690 1718 "web-sys",
1691 - "webpki-roots 1.0.7",
1719 + "webpki-roots 1.0.8",
1692 1720 ]
1693 1721
1694 1722 [[package]]
@@ -1740,15 +1768,28 @@
1740 1768 "bitflags",
1741 1769 "errno",
1742 1770 "libc",
1743 - "linux-raw-sys",
1771 + "linux-raw-sys 0.4.15",
1744 1772 "windows-sys 0.59.0",
1745 1773 ]
1746 1774
1747 1775 [[package]]
1748 - name = "rustls"
1749 - version = "0.23.40"
1776 + name = "rustix"
1777 + version = "1.1.4"
1750 1778 source = "registry+https://github.com/rust-lang/crates.io-index"
1751 - checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b"
1779 + checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
1780 + dependencies = [
1781 + "bitflags",
1782 + "errno",
1783 + "libc",
1784 + "linux-raw-sys 0.12.1",
1785 + "windows-sys 0.61.2",
1786 + ]
1787 +
1788 + [[package]]
1789 + name = "rustls"
1790 + version = "0.23.41"
1791 + source = "registry+https://github.com/rust-lang/crates.io-index"
1792 + checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f"
1752 1793 dependencies = [
1753 1794 "once_cell",
1754 1795 "ring",
@@ -1799,16 +1840,20 @@
1799 1840 "async-trait",
1800 1841 "axum",
1801 1842 "chrono",
1843 + "http-body-util",
1802 1844 "metrics",
1803 1845 "metrics-exporter-prometheus",
1804 1846 "ops-exec",
1847 + "reqwest",
1805 1848 "semver",
1806 1849 "serde",
1807 1850 "serde_json",
1808 1851 "sqlx",
1852 + "tempfile",
1809 1853 "thiserror 2.0.18",
1810 1854 "tokio",
1811 1855 "toml",
1856 + "tower",
1812 1857 "tracing",
1813 1858 "tracing-subscriber",
1814 1859 ]
@@ -1960,9 +2005,9 @@
1960 2005
1961 2006 [[package]]
1962 2007 name = "shlex"
1963 - version = "1.3.0"
2008 + version = "2.0.1"
1964 2009 source = "registry+https://github.com/rust-lang/crates.io-index"
1965 - checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
2010 + checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
1966 2011
1967 2012 [[package]]
1968 2013 name = "signal-hook"
@@ -2019,21 +2064,21 @@
2019 2064
2020 2065 [[package]]
2021 2066 name = "smallvec"
2022 - version = "1.15.1"
2067 + version = "1.15.2"
2023 2068 source = "registry+https://github.com/rust-lang/crates.io-index"
2024 - checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
2069 + checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
2025 2070 dependencies = [
2026 2071 "serde",
2027 2072 ]
2028 2073
2029 2074 [[package]]
2030 2075 name = "socket2"
2031 - version = "0.6.3"
2076 + version = "0.6.4"
2032 2077 source = "registry+https://github.com/rust-lang/crates.io-index"
2033 - checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e"
2078 + checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
2034 2079 dependencies = [
2035 2080 "libc",
2036 - "windows-sys 0.60.2",
2081 + "windows-sys 0.61.2",
2037 2082 ]
2038 2083
2039 2084 [[package]]
@@ -2306,9 +2351,9 @@
2306 2351
2307 2352 [[package]]
2308 2353 name = "syn"
2309 - version = "2.0.117"
2354 + version = "2.0.118"
2310 2355 source = "registry+https://github.com/rust-lang/crates.io-index"
2311 - checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
2356 + checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
2312 2357 dependencies = [
2313 2358 "proc-macro2",
2314 2359 "quote",
@@ -2335,6 +2380,19 @@
2335 2380 "syn",
2336 2381 ]
2337 2382
2383 + [[package]]
2384 + name = "tempfile"
2385 + version = "3.27.0"
2386 + source = "registry+https://github.com/rust-lang/crates.io-index"
2387 + checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
2388 + dependencies = [
2389 + "fastrand",
2390 + "getrandom 0.4.3",
2391 + "once_cell",
2392 + "rustix 1.1.4",
2393 + "windows-sys 0.61.2",
2394 + ]
2395 +
2338 2396 [[package]]
2339 2397 name = "thiserror"
2340 2398 version = "1.0.69"
@@ -2724,9 +2782,9 @@
2724 2782
2725 2783 [[package]]
2726 2784 name = "unicode-segmentation"
2727 - version = "1.13.2"
2785 + version = "1.13.3"
2728 2786 source = "registry+https://github.com/rust-lang/crates.io-index"
2729 - checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
2787 + checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8"
2730 2788
2731 2789 [[package]]
2732 2790 name = "unicode-truncate"
@@ -2816,9 +2874,9 @@
2816 2874
2817 2875 [[package]]
2818 2876 name = "wasip2"
2819 - version = "1.0.3+wasi-0.2.9"
2877 + version = "1.0.4+wasi-0.2.12"
2820 2878 source = "registry+https://github.com/rust-lang/crates.io-index"
2821 - checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6"
2879 + checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"
2822 2880 dependencies = [
2823 2881 "wit-bindgen",
2824 2882 ]
@@ -2831,9 +2889,9 @@
2831 2889
2832 2890 [[package]]
2833 2891 name = "wasm-bindgen"
2834 - version = "0.2.122"
2892 + version = "0.2.125"
2835 2893 source = "registry+https://github.com/rust-lang/crates.io-index"
2836 - checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409"
2894 + checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a"
2837 2895 dependencies = [
2838 2896 "cfg-if",
2839 2897 "once_cell",
@@ -2844,9 +2902,9 @@
2844 2902
2845 2903 [[package]]
2846 2904 name = "wasm-bindgen-futures"
2847 - version = "0.4.72"
2905 + version = "0.4.75"
2848 2906 source = "registry+https://github.com/rust-lang/crates.io-index"
2849 - checksum = "9473dbd2991ae90b6291c3c32c30c6187ac49aa32f9905d1cce280ec1e110b0f"
2907 + checksum = "503b14d284f2c8dac03b819967e155ea753f573586193b2b2c95990cb5d69280"
2850 2908 dependencies = [
2851 2909 "js-sys",
2852 2910 "wasm-bindgen",
@@ -2854,9 +2912,9 @@
2854 2912
2855 2913 [[package]]
2856 2914 name = "wasm-bindgen-macro"
2857 - version = "0.2.122"
2915 + version = "0.2.125"
2858 2916 source = "registry+https://github.com/rust-lang/crates.io-index"
2859 - checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6"
2917 + checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d"
2860 2918 dependencies = [
2861 2919 "quote",
2862 2920 "wasm-bindgen-macro-support",
@@ -2864,9 +2922,9 @@
2864 2922
2865 2923 [[package]]
2866 2924 name = "wasm-bindgen-macro-support"
2867 - version = "0.2.122"
2925 + version = "0.2.125"
2868 2926 source = "registry+https://github.com/rust-lang/crates.io-index"
2869 - checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e"
2927 + checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd"
2870 2928 dependencies = [
2871 2929 "bumpalo",
2872 2930 "proc-macro2",
@@ -2877,18 +2935,18 @@
2877 2935
2878 2936 [[package]]
2879 2937 name = "wasm-bindgen-shared"
2880 - version = "0.2.122"
2938 + version = "0.2.125"
2881 2939 source = "registry+https://github.com/rust-lang/crates.io-index"
2882 - checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437"
2940 + checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f"
2883 2941 dependencies = [
2884 2942 "unicode-ident",
2885 2943 ]
2886 2944
2887 2945 [[package]]
2888 2946 name = "web-sys"
2889 - version = "0.3.99"
2947 + version = "0.3.102"
2890 2948 source = "registry+https://github.com/rust-lang/crates.io-index"
2891 - checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436"
2949 + checksum = "a6430a72df5eb332242960fe84b3002a241163998241eb596d4f739b9757061d"
2892 2950 dependencies = [
2893 2951 "js-sys",
2894 2952 "wasm-bindgen",
@@ -2910,14 +2968,14 @@
2910 2968 source = "registry+https://github.com/rust-lang/crates.io-index"
2911 2969 checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9"
2912 2970 dependencies = [
2913 - "webpki-roots 1.0.7",
2971 + "webpki-roots 1.0.8",
2914 2972 ]
2915 2973
2916 2974 [[package]]
2917 2975 name = "webpki-roots"
2918 - version = "1.0.7"
2976 + version = "1.0.8"
2919 2977 source = "registry+https://github.com/rust-lang/crates.io-index"
2920 - checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d"
2978 + checksum = "bf85cb06032201fa7c6f829d7db5a7e5aa45bcc0655327713065f6f0576731bf"
Lines truncated
@@ -1,0 +1,8 @@
1 + # Workspace root so `cargo build`/`cargo test` at sando/ covers BOTH crates.
2 + # The daemon and TUI share types (tui depends on sando-daemon by path); without
3 + # this gate a daemon enum-variant addition compiles clean while silently breaking
4 + # the TUI's exhaustive matches (ultra-fuzz Run 2, C1). Building both here makes
5 + # that a build error.
6 + [workspace]
7 + resolver = "3"
8 + members = ["daemon", "tui"]
@@ -1,3055 +1,0 @@
1 - # This file is automatically @generated by Cargo.
2 - # It is not intended for manual editing.
3 - version = 4
4 -
5 - [[package]]
6 - name = "aho-corasick"
7 - version = "1.1.4"
8 - source = "registry+https://github.com/rust-lang/crates.io-index"
9 - checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
10 - dependencies = [
11 - "memchr",
12 - ]
13 -
14 - [[package]]
15 - name = "allocator-api2"
16 - version = "0.2.21"
17 - source = "registry+https://github.com/rust-lang/crates.io-index"
18 - checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
19 -
20 - [[package]]
21 - name = "android_system_properties"
22 - version = "0.1.5"
23 - source = "registry+https://github.com/rust-lang/crates.io-index"
24 - checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
25 - dependencies = [
26 - "libc",
27 - ]
28 -
29 - [[package]]
30 - name = "anyhow"
31 - version = "1.0.102"
32 - source = "registry+https://github.com/rust-lang/crates.io-index"
33 - checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
34 -
35 - [[package]]
36 - name = "async-trait"
37 - version = "0.1.89"
38 - source = "registry+https://github.com/rust-lang/crates.io-index"
39 - checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
40 - dependencies = [
41 - "proc-macro2",
42 - "quote",
43 - "syn",
44 - ]
45 -
46 - [[package]]
47 - name = "atoi"
48 - version = "2.0.0"
49 - source = "registry+https://github.com/rust-lang/crates.io-index"
50 - checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528"
51 - dependencies = [
52 - "num-traits",
53 - ]
54 -
55 - [[package]]
56 - name = "atomic-waker"
57 - version = "1.1.2"
58 - source = "registry+https://github.com/rust-lang/crates.io-index"
59 - checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
60 -
61 - [[package]]
62 - name = "autocfg"
63 - version = "1.5.1"
64 - source = "registry+https://github.com/rust-lang/crates.io-index"
65 - checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
66 -
67 - [[package]]
68 - name = "axum"
69 - version = "0.8.9"
70 - source = "registry+https://github.com/rust-lang/crates.io-index"
71 - checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90"
72 - dependencies = [
73 - "axum-core",
74 - "axum-macros",
75 - "base64",
76 - "bytes",
77 - "form_urlencoded",
78 - "futures-util",
79 - "http",
80 - "http-body",
81 - "http-body-util",
82 - "hyper",
83 - "hyper-util",
84 - "itoa",
85 - "matchit",
86 - "memchr",
87 - "mime",
88 - "percent-encoding",
89 - "pin-project-lite",
90 - "serde_core",
91 - "serde_json",
92 - "serde_path_to_error",
93 - "serde_urlencoded",
94 - "sha1",
95 - "sync_wrapper",
96 - "tokio",
97 - "tokio-tungstenite",
98 - "tower",
99 - "tower-layer",
100 - "tower-service",
101 - "tracing",
102 - ]
103 -
104 - [[package]]
105 - name = "axum-core"
106 - version = "0.5.6"
107 - source = "registry+https://github.com/rust-lang/crates.io-index"
108 - checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1"
109 - dependencies = [
110 - "bytes",
111 - "futures-core",
112 - "http",
113 - "http-body",
114 - "http-body-util",
115 - "mime",
116 - "pin-project-lite",
117 - "sync_wrapper",
118 - "tower-layer",
119 - "tower-service",
120 - "tracing",
121 - ]
122 -
123 - [[package]]
124 - name = "axum-macros"
125 - version = "0.5.1"
126 - source = "registry+https://github.com/rust-lang/crates.io-index"
127 - checksum = "7aa268c23bfbbd2c4363b9cd302a4f504fb2a9dfe7e3451d66f35dd392e20aca"
128 - dependencies = [
129 - "proc-macro2",
130 - "quote",
131 - "syn",
132 - ]
133 -
134 - [[package]]
135 - name = "base64"
136 - version = "0.22.1"
137 - source = "registry+https://github.com/rust-lang/crates.io-index"
138 - checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
139 -
140 - [[package]]
141 - name = "base64ct"
142 - version = "1.8.3"
143 - source = "registry+https://github.com/rust-lang/crates.io-index"
144 - checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
145 -
146 - [[package]]
147 - name = "bitflags"
148 - version = "2.11.1"
149 - source = "registry+https://github.com/rust-lang/crates.io-index"
150 - checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
151 - dependencies = [
152 - "serde_core",
153 - ]
154 -
155 - [[package]]
156 - name = "block-buffer"
157 - version = "0.10.4"
158 - source = "registry+https://github.com/rust-lang/crates.io-index"
159 - checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
160 - dependencies = [
161 - "generic-array",
162 - ]
163 -
164 - [[package]]
165 - name = "bumpalo"
166 - version = "3.20.3"
167 - source = "registry+https://github.com/rust-lang/crates.io-index"
168 - checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
169 -
170 - [[package]]
171 - name = "byteorder"
172 - version = "1.5.0"
173 - source = "registry+https://github.com/rust-lang/crates.io-index"
174 - checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
175 -
176 - [[package]]
177 - name = "bytes"
178 - version = "1.11.1"
179 - source = "registry+https://github.com/rust-lang/crates.io-index"
180 - checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
181 -
182 - [[package]]
183 - name = "cc"
184 - version = "1.2.62"
185 - source = "registry+https://github.com/rust-lang/crates.io-index"
186 - checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98"
187 - dependencies = [
188 - "find-msvc-tools",
189 - "shlex",
190 - ]
191 -
192 - [[package]]
193 - name = "cfg-if"
194 - version = "1.0.4"
195 - source = "registry+https://github.com/rust-lang/crates.io-index"
196 - checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
197 -
198 - [[package]]
199 - name = "cfg_aliases"
200 - version = "0.2.1"
201 - source = "registry+https://github.com/rust-lang/crates.io-index"
202 - checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
203 -
204 - [[package]]
205 - name = "chrono"
206 - version = "0.4.44"
207 - source = "registry+https://github.com/rust-lang/crates.io-index"
208 - checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0"
209 - dependencies = [
210 - "iana-time-zone",
211 - "js-sys",
212 - "num-traits",
213 - "serde",
214 - "wasm-bindgen",
215 - "windows-link",
216 - ]
217 -
218 - [[package]]
219 - name = "concurrent-queue"
220 - version = "2.5.0"
221 - source = "registry+https://github.com/rust-lang/crates.io-index"
222 - checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
223 - dependencies = [
224 - "crossbeam-utils",
225 - ]
226 -
227 - [[package]]
228 - name = "const-oid"
229 - version = "0.9.6"
230 - source = "registry+https://github.com/rust-lang/crates.io-index"
231 - checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
232 -
233 - [[package]]
234 - name = "core-foundation-sys"
235 - version = "0.8.7"
236 - source = "registry+https://github.com/rust-lang/crates.io-index"
237 - checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
238 -
239 - [[package]]
240 - name = "cpufeatures"
241 - version = "0.2.17"
242 - source = "registry+https://github.com/rust-lang/crates.io-index"
243 - checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
244 - dependencies = [
245 - "libc",
246 - ]
247 -
248 - [[package]]
249 - name = "crc"
250 - version = "3.4.0"
251 - source = "registry+https://github.com/rust-lang/crates.io-index"
252 - checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d"
253 - dependencies = [
254 - "crc-catalog",
255 - ]
256 -
257 - [[package]]
258 - name = "crc-catalog"
259 - version = "2.5.0"
260 - source = "registry+https://github.com/rust-lang/crates.io-index"
261 - checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853"
262 -
263 - [[package]]
264 - name = "crossbeam-epoch"
265 - version = "0.9.18"
266 - source = "registry+https://github.com/rust-lang/crates.io-index"
267 - checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
268 - dependencies = [
269 - "crossbeam-utils",
270 - ]
271 -
272 - [[package]]
273 - name = "crossbeam-queue"
274 - version = "0.3.12"
275 - source = "registry+https://github.com/rust-lang/crates.io-index"
276 - checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115"
277 - dependencies = [
278 - "crossbeam-utils",
279 - ]
280 -
281 - [[package]]
282 - name = "crossbeam-utils"
283 - version = "0.8.21"
284 - source = "registry+https://github.com/rust-lang/crates.io-index"
285 - checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
286 -
287 - [[package]]
288 - name = "crypto-common"
289 - version = "0.1.7"
290 - source = "registry+https://github.com/rust-lang/crates.io-index"
291 - checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
292 - dependencies = [
293 - "generic-array",
294 - "typenum",
295 - ]
296 -
297 - [[package]]
298 - name = "data-encoding"
299 - version = "2.11.0"
300 - source = "registry+https://github.com/rust-lang/crates.io-index"
301 - checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8"
302 -
303 - [[package]]
304 - name = "der"
305 - version = "0.7.10"
306 - source = "registry+https://github.com/rust-lang/crates.io-index"
307 - checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"
308 - dependencies = [
309 - "const-oid",
310 - "pem-rfc7468",
311 - "zeroize",
312 - ]
313 -
314 - [[package]]
315 - name = "digest"
316 - version = "0.10.7"
317 - source = "registry+https://github.com/rust-lang/crates.io-index"
318 - checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
319 - dependencies = [
320 - "block-buffer",
321 - "const-oid",
322 - "crypto-common",
323 - "subtle",
324 - ]
325 -
326 - [[package]]
327 - name = "displaydoc"
328 - version = "0.2.5"
329 - source = "registry+https://github.com/rust-lang/crates.io-index"
330 - checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
331 - dependencies = [
332 - "proc-macro2",
333 - "quote",
334 - "syn",
335 - ]
336 -
337 - [[package]]
338 - name = "dotenvy"
339 - version = "0.15.7"
340 - source = "registry+https://github.com/rust-lang/crates.io-index"
341 - checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
342 -
343 - [[package]]
344 - name = "either"
345 - version = "1.16.0"
346 - source = "registry+https://github.com/rust-lang/crates.io-index"
347 - checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e"
348 - dependencies = [
349 - "serde",
350 - ]
351 -
352 - [[package]]
353 - name = "equivalent"
354 - version = "1.0.2"
355 - source = "registry+https://github.com/rust-lang/crates.io-index"
356 - checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
357 -
358 - [[package]]
359 - name = "errno"
360 - version = "0.3.14"
361 - source = "registry+https://github.com/rust-lang/crates.io-index"
362 - checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
363 - dependencies = [
364 - "libc",
365 - "windows-sys 0.61.2",
366 - ]
367 -
368 - [[package]]
369 - name = "etcetera"
370 - version = "0.8.0"
371 - source = "registry+https://github.com/rust-lang/crates.io-index"
372 - checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943"
373 - dependencies = [
374 - "cfg-if",
375 - "home",
376 - "windows-sys 0.48.0",
377 - ]
378 -
379 - [[package]]
380 - name = "event-listener"
381 - version = "5.4.1"
382 - source = "registry+https://github.com/rust-lang/crates.io-index"
383 - checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
384 - dependencies = [
385 - "concurrent-queue",
386 - "parking",
387 - "pin-project-lite",
388 - ]
389 -
390 - [[package]]
391 - name = "evmap"
392 - version = "11.0.0"
393 - source = "registry+https://github.com/rust-lang/crates.io-index"
394 - checksum = "1b8874945f036109c72242964c1174cf99434e30cfa45bf45fedc983f50046f8"
395 - dependencies = [
396 - "hashbag",
397 - "left-right",
398 - "smallvec",
399 - ]
400 -
401 - [[package]]
402 - name = "fastrand"
403 - version = "2.4.1"
404 - source = "registry+https://github.com/rust-lang/crates.io-index"
405 - checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
406 -
407 - [[package]]
408 - name = "find-msvc-tools"
409 - version = "0.1.9"
410 - source = "registry+https://github.com/rust-lang/crates.io-index"
411 - checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
412 -
413 - [[package]]
414 - name = "flume"
415 - version = "0.11.1"
416 - source = "registry+https://github.com/rust-lang/crates.io-index"
417 - checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095"
418 - dependencies = [
419 - "futures-core",
420 - "futures-sink",
421 - "spin",
422 - ]
423 -
424 - [[package]]
425 - name = "foldhash"
426 - version = "0.1.5"
427 - source = "registry+https://github.com/rust-lang/crates.io-index"
428 - checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
429 -
430 - [[package]]
431 - name = "foldhash"
432 - version = "0.2.0"
433 - source = "registry+https://github.com/rust-lang/crates.io-index"
434 - checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
435 -
436 - [[package]]
437 - name = "form_urlencoded"
438 - version = "1.2.2"
439 - source = "registry+https://github.com/rust-lang/crates.io-index"
440 - checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
441 - dependencies = [
442 - "percent-encoding",
443 - ]
444 -
445 - [[package]]
446 - name = "futures-channel"
447 - version = "0.3.32"
448 - source = "registry+https://github.com/rust-lang/crates.io-index"
449 - checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d"
450 - dependencies = [
451 - "futures-core",
452 - "futures-sink",
453 - ]
454 -
455 - [[package]]
456 - name = "futures-core"
457 - version = "0.3.32"
458 - source = "registry+https://github.com/rust-lang/crates.io-index"
459 - checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
460 -
461 - [[package]]
462 - name = "futures-executor"
463 - version = "0.3.32"
464 - source = "registry+https://github.com/rust-lang/crates.io-index"
465 - checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d"
466 - dependencies = [
467 - "futures-core",
468 - "futures-task",
469 - "futures-util",
470 - ]
471 -
472 - [[package]]
473 - name = "futures-intrusive"
474 - version = "0.5.0"
475 - source = "registry+https://github.com/rust-lang/crates.io-index"
476 - checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f"
477 - dependencies = [
478 - "futures-core",
479 - "lock_api",
480 - "parking_lot",
481 - ]
482 -
483 - [[package]]
484 - name = "futures-io"
485 - version = "0.3.32"
486 - source = "registry+https://github.com/rust-lang/crates.io-index"
487 - checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
488 -
489 - [[package]]
490 - name = "futures-sink"
491 - version = "0.3.32"
492 - source = "registry+https://github.com/rust-lang/crates.io-index"
493 - checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893"
494 -
495 - [[package]]
496 - name = "futures-task"
497 - version = "0.3.32"
498 - source = "registry+https://github.com/rust-lang/crates.io-index"
499 - checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
500 -
Lines truncated