Skip to content

Releases: oyarsa/fleche

v9.0.0

12 Jun 15:31

Choose a tag to compare

Changed (breaking)

  • Bare fleche run <arg> now treats <arg> strictly as a configured job name.
    Use fleche run --command "..." for ad hoc commands. This prevents job-name
    typos from silently becoming shell commands.
  • Commands that default to a recent job now scope implicit job selection to the
    current project when fleche.toml is present. Numeric indices shown by
    fleche status resolve within the same project scope.
  • outputs_synced is now set only after downloading all configured outputs from
    a terminal job. Downloads using --path, --glob, or --partial no longer
    mark the whole job as synced.

Added

  • fleche init now creates a runnable local smoke job.
  • Local jobs can run from configs without a [remote] section when the job or
    CLI host is local.
  • README examples for GPU Python and uv configurations.

v8.2.0

05 Jun 17:09

Choose a tag to compare

Fixed

  • doctor/diagnostics cleanup suggestions and the clean "specify a target"
    error message now reference --before instead of the removed --older-than.

v8.1.0

05 Jun 14:57

Choose a tag to compare

Changed

  • Updated the bundled AI-agent skill (docs/skill.md, shown by fleche skill)
    to match the current CLI: the unified -f/--filter 'type:query' selection,
    download --glob, and clean --before. No code changes.

v8.0.0

05 Jun 14:46

Choose a tag to compare

Changed (breaking)

  • clean --older-than is replaced by clean --before, which accepts either a
    relative delta (7d, 24h, 30m) or an absolute timestamp (2026-06-05,
    '2026-06-05 14:30', or an RFC3339 datetime). Bare/naive timestamps are read
    in the local timezone. The cutoff is exclusive (created before), so
    --before=2026-06-05 cleans jobs up to but not including the start of that
    local day. Migrate --older-than 7d to --before 7d.

v7.0.0

05 Jun 09:39

Choose a tag to compare

Changed (breaking)

  • Job filtering is unified under a single -f/--filter 'type:query' flag
    across status, watch, logs, download, cancel, clean, wait, and
    stats. Types are status, name (ID regex), tag (key=value), and note
    (regex). A value with no type prefix is a status, so -f completed works.
    Filters are repeatable and ANDed together (-f status:running -f tag:env=prod).
    Note filtering is now available on all of these commands.
  • download's output-glob filter moved from --filter to --glob, freeing
    --filter for job selection.

Removed (breaking)

  • The standalone --name, --tag, and --note filter flags. Migrate:
    • --tag key=value-f tag:key=value
    • --name <regex>-f name:<regex>
    • --note <regex>-f note:<regex>
    • --filter completed (status) is unchanged (-f completed still works)
    • fleche download --filter '*.json'fleche download --glob '*.json'
      Note: logs keeps -f as the short for --follow, so its job filter is the
      long --filter only.

v6.26.0

04 Jun 14:52

Choose a tag to compare

Changed

  • Long job IDs in status tables are now truncated in the middle, preserving the
    trailing random suffix that disambiguates them (e.g.
    train_glen-20260604-135603…-19ab) instead of dropping it. Truncation uses a
    single-character ellipsis () and is now Unicode-safe (notes with
    multi-byte characters no longer risk a panic).

v6.25.0

04 Jun 14:10

Choose a tag to compare

Fixed

  • Concurrent fleche run --bg submissions from one shell no longer race on
    the shared SSH ControlMaster socket. Previously all but one invocation
    failed at the rsync step ([2/4] Syncing project code) because they raced
    to create the master before it was accepting connections. Master creation is
    now serialized with a per-host file lock held only around the directory
    warm-up, so the data transfers still run in parallel. The lock is acquired
    off the async runtime and is a no-op on non-Unix platforms (which don't use
    ControlMaster).
  • rsync failures now surface the real SSH error instead of the OpenSSH_x.y
    verbose banner, which previously masked the underlying cause.

v6.24.0

04 Jun 09:16

Choose a tag to compare

Added

  • fleche watch continuously displays the recent-jobs status table, redrawing
    in place every N seconds (--interval/-i, default 1s, fractional allowed).
    It accepts the same filters as fleche status and runs until interrupted
    with Ctrl+C. Redraws use synchronized terminal output (mode 2026) to avoid
    flicker on supporting terminals.

v6.23.0

03 Jun 17:00

Choose a tag to compare

Changed

  • Release assets now build each published platform with its explicit Rust
    target triple and package the target-specific binary. The release workflow
    covers Linux x86_64, Linux aarch64, and macOS Apple Silicon, and smoke-tests
    each binary before uploading it.

v6.22.0

03 Jun 16:45

Choose a tag to compare

Fixed

  • fleche exec now also rejects empty inputs entries (the same protection
    added to fleche run in 6.21.0). Previously the exec path collected job
    inputs without validation and would silently skip empty entries; it now fails
    fast with a clear error before touching the network.