Security: - Remove `bread modules install github:…`. Remote fetch pulled unreviewed third-party Lua and ran it with full bread.exec() privileges in an unsandboxed runtime. Module install is now local-only; parse_source rejects github:/git: with an explicit message. bread-sync extracted from the workspace (parked for its own project): - Removed from workspace members (now excluded); see bread-sync/EXTRACTION.md - Removed the entire `bread sync` CLI surface and now-unused deps (bread-sync, reqwest, tar, flate2; tempfile demoted to dev-dependency) - Removed the sync.status IPC method from breadd plus its integration tests - Moved the generic `expand_path` helper into bread-shared (with unit tests) CI now actually runs and gates quality: - Trigger on master/dev (was `main` — CI had never run, not once) - Added `cargo fmt --check` and `clippy -D warnings`; fixed 4 clippy warnings - Dropped the macOS matrix entry (breadd is Linux-only: udev/rtnetlink); added the libudev-dev system dependency the Linux build needs Hardening / honesty: - New ipc test: daemon survives repeated reloads and the event pipeline resumes (the prior suite only had a single happy-path reload check) - Docs scrubbed of sync across README/Documentation/Overview/DAEMON - "production-ready" and "compositor-agnostic" claims reworded to match reality rather than aspiration Note: bread-sync/src/export.rs held pre-existing local WIP authored outside this change set and is intentionally excluded from this commit.
1.7 KiB
1.7 KiB
bread-sync — slated for extraction
This crate is no longer part of the bread workspace. It is parked here
pending extraction into its own standalone project.
Why
bread's architecture deliberately scopes itself to a reactive automation
fabric — see the Non-Goals in Overview.md. State/dotfile synchronization
across machines is explicitly out of that scope. bread-sync grew into a
git-backed snapshot/restore + package + delegate-path manager, which is a
genuinely useful tool but a different product with a different lifecycle. It
was the one component pulling bread's scope discipline out of shape, so it
is being spun out rather than removed (the code is good; it just doesn't
belong in this repo).
Status
- Removed from the root
Cargo.tomlworkspace (members→exclude). - The
bread sync …CLI subcommands have been removed frombread-cli. - The
sync.statusIPC method and its integration tests have been removed frombreadd. - No code in
bread/breadd/bread-clidepends on this crate anymore.
For whoever extracts it (name polls are open)
- Move this directory into the new repository.
- It inherited workspace dependencies (
serde,git2,dirs,chrono,tempfile,glob, …). Pin concrete versions in its ownCargo.toml;*.workspace = truewill not resolve outside this workspace. - The only helper that had to leave this crate is
config::expand_path, which moved tobread-shared::expand_pathbecause non-sync code (the module installer) needed it. Reintroduce a local copy in the new project so it no longer depends onbread-shared. - Re-add the
bread syncUX as a standalone binary, or as abreaddIPC client, in the new project — not here.