Changelog
Full Changelog: https://github.com/Bengerthelorf/bcmr/compare/v0.6.0...v0.6.1
Changes since v0.6.0:
Features
- feat(config): per-host default flags and named profiles (#111) (#118) (80a6e58)
- feat(copy): --to for fan-out copy to multiple targets (#80) (#117) (ecb9d67)
- feat: bcmr ls / stat / du / hash for remote inspection (#71) (#116) (11bdf20)
- feat(status): --watch follows a running job's log (#110) (#114) (81ec97f)
- feat(ui): surface reflink count in Done line + result event (#112) (#115) (3ab0593)
- feat(doctor): probe non-interactive vs login PATH on remotes (#109) (#113) (e3293c4)
- feat(config): @bookmark path aliases in config (#81) (#107) (77dfb89)
- feat(completions): one-shot install / uninstall (#75) (#104) (06448e7)
- feat: add 'bcmr doctor' subcommand for setup diagnostics (#72) (#102) (ca259dd)
- feat(ui): surface 'verified' in Done line + result event when -V is used (#76) (#105) (f805429)
- feat(status): --rm / --rm --all / --gc on bcmr status (#68) (#101) (a37d316)
- feat(ux): show common-usage hint when invoked with no args (#83) (#106) (df93f27)
- feat(cli): add -q/--quiet and --config overrides (#78) (#103) (0a83ac5)
- feat(cli): rename --tui to --plain (legacy alias retained) (#77) (#98) (b73e730)
- feat(ui): surface skipped bytes in Done: summary line (#76) (#100) (0b0e88c)
- feat: bcmr copy --no-deref preserves symlinks for local copies (#47) (#95) (cce0561)
- feat: add --sudo to bcmr deploy for system-wide install (#40) (#89) (575f74b)
- feat: bcmr update --check (read-only version probe) (#60) (#94) (a2c4d89)
Bug Fixes
- fix(jobs): BCMR_JOBS_DIR env override + revert STARTUP_GRACE bump (b35a6e9)
- fix(status): bump --watch STARTUP_GRACE 1s → 2s (a4329f1)
- fix(serve): harden AEAD + protocol decoder + path open (ea6e772)
- fix(refactor): cargo fmt + drop windows-unused imports (00e8b45)
- fix(remote): refuse remote-to-remote copy/move with clear error (#69) (#96) (4e5ad19)
- fix: confirm same-size mtime-only diffs by hash before reporting modified (#42) (#93) (7bc5252)
- fix: detect multi-source basename collisions in bcmr copy (#48) (#91) (5a4c7f6)
- fix: honor NO_COLOR and TERM=dumb in progress UI selection (#55) (#85) (09d58cb)
- fix: copy to existing remote dir without trailing slash (#54) (#90) (2f146c3)
- fix: refuse FIFO / socket / device-node sources in copy and move (#59) (#92) (aed2185)
- fix: expand
~ and ~user in remote paths via SSH probe (#61, #39) (#87) (fd6caa6)
- fix: parse bracketed IPv6 in host:path / user@host:path forms (#53) (#86) (436bb71)
- fix: auto-degrade progress UI to plain text when stdout is not a TTY (#46) (#84) (756b631)
- fix: bcmr init powershell emits a powershell-flavored block (#49) (#82) (ca1a6c9)
- fix: probe non-interactive PATH after deploy + warn on mismatch (#41) (#88) (b0d7e92)
- fix: error on
bcmr copy DIR DST without -r instead of silent 0 B (#58) (#65) (bed9b60)
- fix: append basename in legacy single-file upload to host:dir/ (#37) (#66) (c29dd09)
- fix: --append refuses incompatible destinations instead of overwriting (#52) (#64) (7fee875)
- fix: share ControlMaster across legacy workers (#38) (#67) (9a19c33)
- fix: dispatch remote move via copy + delete-source (#36) (#51) (d500c19)
- fix: dispatch remote remove via ssh rm (#35) (#50) (33b87bd)
- fix: reject '..' in remote paths before transport (#45) (#63) (7d71902)
- fix: gate Put{offset} resume on CAP_PUT_OFFSET (#44) (#62) (f3bad88)
Other
- refactor: drop num_cpus, use std::thread::available_parallelism (7a7735e)
- refactor: dedup, abstract, and decouple across hot modules (79b5099)
Maintenance
- chore: release v0.6.1 (3437b04)
- ci: install GNU coreutils on macOS for timeout(1) (4df0e88)
- chore: MSRV pin, dep-feature trim, CI hardening, serve graceful shutdown (9602513)
- chore(deps): cargo update — clears 8 RustSec advisories (fcf73ad)
- chore(deps): bump clap_complete in the rust-minor group (#108) (4325ef7)
- docs(cli): add EXAMPLES / ENVIRONMENT / EXIT CODES to --help (#74) (#99) (5bfe723)
- docs(internals): document --json NDJSON event schema (#73) (#97) (2b192ed)
- chore(deps): bump signal-hook from 0.3.18 to 0.4.4 (#33) (a13d861)
- chore(deps): bump softprops/action-gh-release from 1 to 3 (#29) (116a67c)
- chore(deps): bump actions/upload-artifact from 4 to 7 (#30) (79f97df)
- chore(deps): bump self_update from 0.43.1 to 0.44.0 (#34) (d816b16)
- chore(deps): bump lz4_flex from 0.11.6 to 0.13.1 (#32) (00452f4)
- chore(deps): bump actions/download-artifact from 4 to 8 (#28) (0511fb6)
- chore(deps): bump the rust-minor group across 1 directory with 14 updates (#31) (318b835)
- docs(install): point linux install command at /install.sh (71a7e7c)
- docs(readme): /guide/* and /ablation/* are now /docs/* and /internals/* (17fa98b)
- docs(readme): point install URL at /install.sh so /install browser visits hit the docs page (ccf6e08)
- ci(docs): also rebuild snaix.homes on release publish + commands changes (2185107)
- docs: move d2 diagram sources out of docs/ tree (9c7314e)
- docs: restructure for snaix.homes rendering (dc557fd)
- docs(home): rewrite feature cards to capability-led voice, 7→8 for clean 4+4 grid (4879886)
- docs(open-questions): add FastCDC / content-defined chunking entry (dee5e9c)
- docs(ablation): fix broken anchor to CAS dedup experiment (fe5ff29)
- docs: wire new ablation pages into sidebar; correct SECURITY.md scope claim (471f370)
- docs(ablation): centralize design-thinking — Internals indexes non-goals + external rationale (98c867d)
Download
Choose the appropriate binary for your platform:
- Linux x86_64: bcmr-x86_64-linux.tar.gz (statically linked)
- Linux ARM64: bcmr-aarch64-linux.tar.gz (statically linked)
- macOS Intel: bcmr-x86_64-macos.tar.gz
- macOS Apple Silicon: bcmr-aarch64-macos.tar.gz
- Windows x86_64: bcmr-x86_64-windows.zip
- Windows ARM64: bcmr-aarch64-windows.zip
- FreeBSD x86_64: bcmr-x86_64-freebsd.tar.gz