Skip to content

Releases: jkleinne/shuttle

v0.2.5

20 Apr 09:43
82344cf

Choose a tag to compare

Changelog

Features

  • 82344cf feat(config): require opt-in for destructive rclone sync (#17)

v0.2.4

18 Apr 22:14
6896ced

Choose a tag to compare

Changelog

Features

  • 6896ced feat: per-job max_runtime to cap rsync/rclone wall-clock duration (#16)

v0.2.3

18 Apr 07:39
cdb28a5

Choose a tag to compare

Changelog

Features

  • cdb28a5 feat: optional jobs for detachable sources (#15)

v0.2.2

16 Apr 22:25
716e6f1

Choose a tag to compare

Changelog

Bug fixes

  • 716e6f1 fix(release): build and publish linux/arm64 so brew readall passes (#14)

v0.2.1

16 Apr 21:59
a3dbd3f

Choose a tag to compare

Changelog

Bug fixes

  • a3dbd3f fix(release): shorten Homebrew formula description to satisfy brew style (#13)

v0.2.0

16 Apr 21:51
8574e7d

Choose a tag to compare

Changelog

Features

  • 8574e7d feat(cli): add --config flag and SHUTTLE_CONFIG env for alternate config path (#12)

Documentation

Other

  • 0571b60 chore(lint): expand linter ruleset and scope CI to new issues (#11)

v0.1.0

15 Apr 09:34
7d42c11

Choose a tag to compare

Changelog

Features

  • a90a92f feat(cli): add validate subcommand for config checking
  • 4a8b468 feat(engine): add ProgressWriter for brew-style live terminal display
  • 461385d feat(engine): add progress callback to rclone executor
  • 62f7a09 feat(engine): add progress callback to rsync executor
  • 8650aa0 feat(engine): flag assembly with defaults, overrides, and instrumentation
  • b09a5b1 feat(engine): rclone executor with mode selection, backup-dir, and archive cleanup
  • 48ccd7e feat(engine): rewrite sync summary with color, grouping, and collapsing
  • d041b40 feat(engine): runner orchestrator with prerequisites, locking, and job dispatch
  • afe5fde feat(engine): wire ProgressWriter into runner for live progress display
  • ccf909a feat(log): add file-only logger methods for interactive mode
  • eac0624 feat: cobra CLI with run (default), version, signal handling, and password prompt
  • 4649234 feat: dual-stream logger with terminal color and plain text file output
  • 4e16e57 feat: path resolution for sync job sources and cloud item sources
  • 8c7d8d5 feat: project scaffold with TOML config loading and validation
  • 250bd9a feat: rsync executor with arg building, output capture, and stats parsing
  • 83f1476 feat: stats types, rsync/rclone output parsers, and summary renderer

Bug fixes

  • bcd0ba3 fix(config): expand backup_path tilde, add missing tests, add .gitignore
  • d089700 fix(config): handle expandTilde errors, validate error assertions, extract constants
  • edcbc8b fix(config): validate empty remote names, add missing test cases
  • 3a18a78 fix(engine): handle cleanup errors, fix silent remote filtering, clean up API
  • b7b3837 fix(engine): include StatusNotFound in HasErrors and error accumulation
  • a7fcecd fix(engine): parse rclone progress from concatenated piped output
  • fa1f4ee fix(engine): prefer checks over zero-byte transfer line, guard nil pw, capture rclone stderr
  • c888262 fix(engine): read rclone progress from stdout, not stderr
  • ff51f2f fix(engine): show elapsed time during rclone checks, transfer stats during transfers
  • 256b97d fix(release): correct homebrew tap repo name to homebrew-tools (#9)
  • 0f5789c fix: check unchecked errors flagged by errcheck linter
  • 7fe692b fix: suppress errcheck warnings on cleanup RemoveAll calls
  • 4673515 fix: unify errcheck suppression style, wrap test reads with t.Fatalf

Refactors

  • a4a81bb build(release)+refactor(engine): goreleaser pipeline and Runner.Run dispatch extraction (#7)
  • a89c254 refactor(cli): name documented exit codes
  • 003bc57 refactor(cli): update for unified job model, rewrite example config
  • 197ca90 refactor(config): unified job schema with engine-typed defaults
  • 1775eb0 refactor(engine): add Remote field to JobResult, stop concatenating names
  • 056367c refactor(engine): executors accept pre-built args, remove hardcoded flags
  • 77061c3 refactor(engine): extract log routing helpers, deduplicate runner branching
  • 274e484 refactor(engine): split rendering into render.go, document Items invariant
  • ac4f1ce refactor(engine): unified job dispatch with per-config locking
  • fecb1c9 refactor(engine): use bufio.Scanner for rclone progress parsing
  • b8aab7a refactor(stats): remove cloud: prefix stripping from summary
  • eb9a698 refactor: rename Go module and cmd directory from sync-station to shuttle
  • e1c14ae refactor: update all runtime references from sync-station to shuttle

Documentation

  • fde97b8 docs: update all references from sync-station to shuttle

Other

  • 7d42c11 Log rotation and CLI output flags (--color, --quiet, --verbose) (#10)
  • 3403ea2 build(release): add homebrew tap publishing via goreleaser (#8)
  • 73eb18a chore(lint): add gocyclo, nestif, mnd linters
  • a5fa923 test(cli): add exit code integration tests for shuttle binary
  • 4053a30 test(cli): use temp dir path for missing source determinism
  • ca0f6fe test(engine): add HasErrors, FormatItemStats, and RenderSummary edge case tests
  • 7683914 test(engine): add check-to-transfer transition test for rclone progress
  • ba95c6c test(engine): add rclone executor and CleanupArchives integration tests
  • def1b15 test(engine): add selectMode unit tests for all branch combinations
  • 687f0c4 test(engine): document rclone test isolation strategies
  • 49076d5 test(log): handle ReadFile errors, add New and LogPath tests