Releases: bitroot/coflux
Releases · bitroot/coflux
Coflux 0.11.1
Immutable
release. Only release title and notes can be modified.
Server
Fixes:
- Fixes a path traversal vulnerability in the blob endpoint.
CLI
No changes.
Python Adapter
No changes.
Coflux 0.11.0
Immutable
release. Only release title and notes can be modified.
Server
Enhancements:
- Adds support for tasks requesting structured inputs from users.
- Adds a generalised
selectoperation for waiting for results, with support for specifying multiple handles, and optional cancellation of the other items.
CLI
Enhancements:
- Adds
--drain-timeoutflag toworker(default: 2 minutes) for gracefully draining in-flight executions on shutdown or reload. A second signal aborts the drain early; a third forces exit. - Adds
inputs list,inputs inspect,inputs respondandinputs dismisscommands for managing input requests from the CLI.
Python Adapter
Enhancements:
- Adds
cf.Promptandcf.Inputfor requesting structured input from users mid-execution (with optional Pydantic model for typed responses, per-run memoisation, andrequirestags for routing). - Adds
cf.selectfor waiting on the first of multiple handles (executions and/or inputs) to resolve, with optional cancellation of the rest. - Adds
cf.cancel(and.cancel()on handles) for atomic cancellation of executions and inputs. - Supports
async deffunctions in@taskand@workflowdecorators. - Adds fluent
with_*methods toTargetfor overriding decorator options at a call site.
Changes:
- Wait-expiry from
cf.suspense(timeout=...)now raises the standardTimeoutError;ExecutionTimeoutis reserved for executions exceeding their configuredtimeout.
Coflux 0.10.0
Immutable
release. Only release title and notes can be modified.
Server
Enhancements:
- Adds support for storing metrics and their definitions.
- Adds support for execution timeouts on tasks and workflows.
- Adds
suspendflag toget_resultfor non-suspending result polling. - Adds experimental Kubernetes launcher for launching workers as Kubernetes jobs.
- Adds support for run-level memoisation (
memoon workflows sets default for all steps). - Adds
acceptstags on pools/workers, restricting which executions can be assigned. - Workflow
requirestags now apply to the entire run (merged with step-level tags). - Adds support for disabling and re-enabling pools (disabled pools drain workers).
- Prevents concurrent executions of the same step; re-running cancels in-progress execution.
- Recurrent targets now only recur when the result is
None. - Adds support for exporting and importing pool configurations.
- Adds support for overriding workflow options (
requires,memo,delay,retries) at submission time. - Adds support for specifying project via header (in addition to subdomain/server config).
- Tracks total execution count on sessions and workers.
- Updates modules topic to track in-progress workflow runs.
CLI
Enhancements:
- Updates
servercommand to set default project ("default"), and improve Docker lifecycle handling. - Updates
workercommand to infer adapter (to avoid runningsetup). - Adds
--type kubernetessupport forpools createandpools update. - Adds
pools disableandpools enablecommands. - Adds
pools exportandpools importcommands. - Adds
--acceptsflag for pool commands. - Adds
--requires,--memo/--no-memo,--delay, and--retriesflags tosubmit.
Python Adapter
Enhancements:
- Adds support for writing metrics, and writing progress.
- Adds
timeoutparameter to@taskand@workflowdecorators. - Adds
ExecutionCancelledandExecutionTimeoutexceptions. - Adds
.poll()method toExecutionfor checking execution results without blocking (or suspending). - Adds
memoparameter to@task,@workflow, and@stubdecorators. - Adds
requiresparameter to@taskand@workflowdecorators.
Coflux 0.9.1
Immutable
release. Only release title and notes can be modified.
Server
No changes.
CLI
Enhancements:
- Updates
servercommand to set default project ("default"), and improve Docker lifecycle handling. - Updates
workercommand to infer adapter (to avoid runningsetup).
Python Adapter
No changes.
Coflux 0.9.0
Server
Enhancements:
- Adds authentication to worker connections and blob/log endpoints.
- Adds support for project-level tokens and Studio authentication.
- Introduces epochs for managing data retention.
- Supports conditional retries on tasks.
- Supports cancelling executions across workspaces.
- Returns API version in the discover endpoint for client compatibility validation.
- Automatically stops idle orchestration servers to reduce resource usage.
- Workspaces are auto-created on first worker connection.
Fixes:
- Fixes idempotency key handling for duplicate run submissions.
- Fixes manifest hashing for consistent change detection.
- Fixes result delivery for suspended executions.
- Makes argument waiting recursive for deeply nested dependencies.
Changes:
- Removes the bundled frontend (use Coflux Studio instead).
- Replaces sensors and checkpoints with recurrent targets.
- Renames 'spaces' back to 'workspaces'.
- Removes namespaces in favour of a simplified project model.
- Reworks ID generation for shorter, URL-friendly identifiers.
CLI
First release of the Go CLI, replacing the previous Python-based CLI.
Enhancements:
- Rewritten in Go for faster startup and standalone distribution (no Python dependency).
- Adds
submit,runs inspect,runs result,runs rerun,runs cancelandlogscommands. - Adds
manifests inspect,manifests discoverandmanifests registercommands. - Adds
assets inspect,assets downloadandblobs getcommands. - Adds
workspaces list,workspaces create,workspaces pauseandworkspaces resumecommands. - Adds
tokens list,tokens createandtokens revokecommands. - Supports real-time log streaming with
logs --follow. - Supports JSON output (
--output json) across all commands. - Workers automatically create workspaces on first connection.
- Workers gracefully handle server restarts and reconnect automatically.
- Supports authenticated connections to the server (token-based and Studio auth).
- Validates API version compatibility with the server.
- Validates protocol version compatibility with language adapters.
Python Adapter
Enhancements:
- Communicates with the new Go CLI over JSON Lines (replacing the previous all-in-one Python package).
- Adds support for conditional retries (
@task(retries=Retries(3, when=TransientError))). - Supports serialisation of additional types (datetime, UUID, Decimal, bytes, frozenset, etc.).
- Spawns a fresh process for each execution, improving isolation and memory management.
- Improved error reconstruction for remote exceptions.
- Reports protocol version during worker handshake for compatibility validation.
Changes:
- The
cofluxpackage is now a pure Python SDK — the CLI is a separate Go binary. - Replaces 'sensors' and 'checkpoints' with recurrent targets.
- Renames 'spaces' back to 'workspaces'.
CLI (0.8.1)
Set up tests (#120) * Set up tests * Remove unused adapter import * Fix adapter Actions workflow * Combine CLI/server Actions workflows, and add test job
Server (0.8.1)
Release 0.8.1 (#107) * Update changelogs * Update versions * Remove unused config files * Update changelogs
Python client (0.8.1)
Server (0.8.0)
Release 0.8 (#91) * Update documentation for assets * Update suspense docs * Version Python client * Version server * Add renames to changelogs