Add bread-utils and bread-onnx: shared crates for ecosystem-wide duplication
bread-utils extracts genuinely duplicated logic found across breadbox, breadclip, breadmon, breadcrumbs, bos-settings, and breadhelp: - hypr: Hyprland socket1 request/response client (breadbox's get_active_workspace + breadclip's position.rs hyprctl_json were near-identical), socket2 path resolution (breadmon), and a version-tolerant `fullscreen` field parser (Hyprland has shipped both bool and int representations across versions). - singleton: correct flock-based single-instance toggle, replacing the TOCTOU-prone read-pid/check-proc/kill/write-pid pattern duplicated verbatim between breadbox and breadclip (breadclip's own comment says "matches breadbox pattern"). - proc: breadcrumbs' timeout-guarded subprocess runner, promoted verbatim as the one implementation in the ecosystem that already got this right. - atomic + xdg: atomic (temp-then-rename) file writes with an optional .bak-before-overwrite variant, and XDG path helpers that never fall back to a literal "~/..." string (the exact breadclip-core and breadpad-shared bug: PathBuf never expands `~`). - tomlcfg (feature "toml"): the load_doc/save_doc TOML-editing discipline bos-settings and breadhelp both implemented byte-for-byte identically in the same fix pass that introduced it. - gtk_popup (feature "gtk"): layer-shell overlay window setup, visible-row navigation, and click-outside-close, deduplicated from breadbox and breadclip (~150 duplicated lines, per both apps' own "same as breadbox" comments). bread-onnx extracts the embedding pipeline (tokenize -> tensor build -> mean-pool -> L2-normalize) duplicated near-verbatim between breadarr and breadsearch, a shared execution-provider session builder with loud EP- registration logging, and a model download+integrity helper. Defaults AMD iGPU acceleration to ort::ep::MIGraphX (not ROCm) per this machine's own breadsearch-gpu-backends lesson: ROCMExecutionProvider silently no-ops to CPU on distro ROCm onnxruntime builds compiled with --use_migraphx. Both crates build and pass their own test suites standalone. Consumer migrations follow in subsequent commits.
This commit is contained in:
parent
394a252f9e
commit
853ee33415
17 changed files with 2503 additions and 5 deletions
32
bread-utils/src/lib.rs
Normal file
32
bread-utils/src/lib.rs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
//! Shared plumbing for the bread desktop-automation ecosystem.
|
||||
//!
|
||||
//! Extracted from genuine, verified duplication across breadbox, breadclip,
|
||||
//! breadmon, breadcrumbs, bos-settings, and breadhelp during the 2026-07-16
|
||||
//! ecosystem-wide utility audit. Each module's doc comment cites the
|
||||
//! original file:line locations the code was extracted from.
|
||||
//!
|
||||
//! - [`hypr`] — Hyprland IPC: socket path resolution, socket1
|
||||
//! request/response, typed `activewindow`/`monitors` queries with
|
||||
//! version-tolerant `fullscreen` field parsing.
|
||||
//! - [`singleton`] — correct, TOCTOU-free single-instance/PID-toggle.
|
||||
//! - [`proc`] — timeout-guarded subprocess execution.
|
||||
//! - [`atomic`] — atomic (temp-then-rename) file writes, with an optional
|
||||
//! `.bak`-before-overwrite variant.
|
||||
//! - [`xdg`] — XDG base directory helpers with a real (never literal-tilde)
|
||||
//! `$HOME` fallback.
|
||||
//! - [`tomlcfg`] (feature `toml`) — non-destructive TOML document
|
||||
//! load/save discipline built on [`atomic`].
|
||||
//! - [`gtk_popup`] (feature `gtk`) — shared layer-shell popup window setup,
|
||||
//! list navigation, and click-outside-to-close.
|
||||
|
||||
pub mod atomic;
|
||||
pub mod hypr;
|
||||
pub mod proc;
|
||||
pub mod singleton;
|
||||
pub mod xdg;
|
||||
|
||||
#[cfg(feature = "toml")]
|
||||
pub mod tomlcfg;
|
||||
|
||||
#[cfg(feature = "gtk")]
|
||||
pub mod gtk_popup;
|
||||
Loading…
Add table
Add a link
Reference in a new issue