Skip to content

Releases: writes-the-spec/flowlite

flowlite 0.2.0

Choose a tag to compare

@writes-the-spec writes-the-spec released this 10 Oct 20:26

What's new

  • A login for the dashboard. An [auth] section puts flowlite serve behind a login checked against an OAuth2 identity provider, so the dashboard can be served to other people. Without it nothing changes: there is no login, and /login is a 404. See UI in the reference.
  • The config file is now flowlite.toml. It was config.toml. flowlite.toml says which tool the file belongs to, which matters when the data directory is a repository holding other tools' config.

Upgrading from 0.1.0

Rename config.toml in your data directory to flowlite.toml. 0.2.0 does not read the old name. A directory that keeps it starts on the defaults: no [secrets], no [smtp] or [slack], and a job that names one of those is refused at startup.

Run history carries over as before: stop serve, replace the binary and start it again. This release adds no database migrations.

Install

cargo install --git https://github.com/writes-the-spec/flowlite --tag v0.2.0

See the README and REFERENCE.md.

flowlite 0.1.0

Choose a tag to compare

@writes-the-spec writes-the-spec released this 04 Oct 08:53

The first release of flowlite: a job scheduler and orchestrator in a single binary, for scripts, pipelines and AI agents alike.

What's in it

  • Jobs and schedules as YAML. A DAG of tasks per job, six-field cron with time zones, parameters, env: and secret_env:, and runs that snapshot the definition they executed so a rerun replays exactly that run.
  • Execution. Retries, timeouts and idle timeouts. A stop or timeout sends SIGTERM to the whole process group and SIGKILL after a grace period. Per-job overlap limits, a global attempt cap and named concurrency limits. Crash recovery that marks an unaccountable run invalid and kills what it left behind.
  • For agentic jobs. A task writes a result to $FLOWLITE_TASK_OUTPUT and its dependents read it from $FLOWLITE_INPUT_<TASK>. A retry gets the failed attempt's log and result. stdin: passes a prompt with no shell quoting, and each run gets its own working directory. A task can submit child runs, which are stopped and deleted with it, and a task waiting on a child holds no slot.
  • Interfaces. A CLI with --json on every job and job-run command, a localhost dashboard, and flowlite mcp, an MCP server with ten tools.
  • Operations. Email and Slack notifications that quote the failing output, retention per job and across jobs, and one server per data directory, enforced by a lock.

Install

cargo install --git https://github.com/writes-the-spec/flowlite --tag v0.1.0

Upgrading

From 0.1.0 on, run history upgrades in place. A flowlite.db written by a pre-release build may refuse to start with a migration checksum error. Copy it aside if its history matters, then delete it. Jobs and schedules come back from the YAML.

See the README and REFERENCE.md.