Skip to content

v2.8.0

Latest

Choose a tag to compare

@bpiwowar bpiwowar released this 29 Oct 16:00

[2.8.0] - 2026-10-29

Bug Fixes

  • core: Field() without default no longer makes a parameter optional (0ba531d)
  • core: Discard object from serialized set on serialization exception (#300) (5e54d36)
  • deps: Update vulnerable dependencies flagged by Dependabot (850c179)
  • filewatcher: Use reentrant locks to avoid finalizer self-deadlock (68a6add)
  • filter: Make regex and in/not in operators work in job filters (6014234)
  • graph: The cached objects of a run follow the run (10f0fa3)
  • grid: Ignore duplicate grid search values with a warning (53132b0)
  • launchers: Move OutputCaptureHandler out of test code (c01f7f1)
  • logs: Fold progress bars across web log polls, show stderr first (8a50f08)
  • logs: Render logs as a terminal (cursor up of nested progress bars) (a8399a4)
  • monitor: Follow the process of a relaunched job (e128e70)
  • objects: Prefer importing top-level modules over their recorded file path (#293) (8d547b5)
  • remote: Read job information from the experiment, not the whole list (28abc64)
  • remote: Read the service logs locally and do not sync their directory (99227d4)
  • remote: Deduplicate the throttled notifications per entity, not per event type (f00f319)
  • remote: Keep the job counts of the cached experiments up to date (c91aeb6)
  • remote: Use psutil to check stale cache owners (ec8908f)
  • serialization: Keep objects.jsonl consistent after a failed write (a2ee67c)
  • services: Start without waiting for the sync, stop at any time, do not store the state (298d489)
  • ssh: Apply the job events to the jobs the UIs display (c9cea9c)
  • tests: Make the faulthandler hang watchdog opt-in (8ca536c)
  • tokens: Do not miss a release while a job waits for a token (cfb3764)
  • webui: Tell a loading experiment list from an empty one (c49ef69)
  • webui: Stop requesting the graph again for every job received (422ef49)
  • webui: Show and copy the remote job path for SSH workspaces (ecf4b04)
  • webui: Copy the job id on click, the job folder on shift-click; toasts at the top right (01bb3ff)- Skip progress reporting if running outside an experimaestro task (579bcae)
  • Implement getstate for Identifier pickling (22e3c0c)
  • Stray job deletion, job updates in the web UI, killing re-attached jobs (c564ae8)
  • Same experiment status and CO2 in the TUI and the web UI (972f06f)
  • Stop leaking watcher threads and zombie job processes (9fe1fe6)
  • DELETED is no longer an alias of MISSING_OUTPUTS (48fd524)
  • Raise error if invalid keys are passed (and ruff) (176ee9d)
  • Add networkx dependency, and fix dag complexity (ebac83d)
  • Atomic writes for files shared between processes (c582ebd)

Build

CI

  • Test on Python 3.11 to 3.15 (ddb75d5)
  • Cache Playwright browsers in the UI browser job (bcdc5db)

Documentation

  • cli: Fix the state filter example, document reconnection and filter completion (2062440)
  • experiment: Refer to experimaestro run instead of run-experiment (9fb8ac3)- Add contributing guidelines requiring pre-commit (fb7a369)
  • Fix RTD icon (7bf01d4)
  • Use python 3.11 (7b247e4)
  • Remove references to the workspace database and stale commands (3c16e48)
  • Point README to stable docs and show documented version (4ae4453)
  • Show documented version as a badge on the home page (fc952d6)

Features

  • cli: Remote (SSH) workspaces for all commands (4529773)
  • cli: Inspect shortcut, remote jobs through the state provider (#307) (d2f248a)
  • dag: Stack similar nodes based on configs and graph (003832d)
  • experiment: Add python_path to make modules importable in task workers (#292) (49db410)
  • graph: Progress of running jobs and init task style (8311c85)
  • logs: Read remote logs by blocks, load earlier lines on scroll (ea442bb)
  • remote: Report the methods an older remote server lacks (881f346)
  • remote: Trace the requests on both sides (fc33890)
  • remote: Reconnect automatically when the SSH connection drops (3c5f68d)
  • sphinx: Link Config.C(...) usages in code blocks with sphinx-codeautolink (ccacfa2)
  • ssh: Configurable timeout for the remote server to start (380be0d)
  • ui: Search and sort the experiments, with the TUI keys in the web UI (5f9527e)
  • ui: Only send the events of the watched experiments (b18812d)
  • webui: Shared filter DSL, experiment kill/delete and job grouping (d05e983)
  • webui: Bulk orphan actions with confirmation (9f7039e)
  • webui: Services without a running experiment, shared start/stop (d270242)
  • webui: Semantic URLs with browser history (a51fb78)
  • webui: Link the Services, Actions and Orphans views to the docs (4345289)
  • webui: More compact tables, sort controls and full-page graph (2f02bec)
  • webui: Tab icon showing the conductor's hand (901d984)
  • webui: Show the starting and running services on every page (47d0724)
  • webui: Auto-complete the job filter (044dfe0)- Warn loudly if unrecognized keys are found in configurations (25ab777)
  • Add a DAG drawing tool (87af6fc)
  • New dag cli command with docs (3c385b0)
  • Inspect params tool (fbc941d)
  • Add param inspector in the monitoring TUI (39a151f)
  • Shared job status order between the TUI and the web UI (e74f196)
  • Experiment tags, experiment grouping and hidden job tags (b63ff85)

Miscellaneous Tasks

  • Collapse generated files in diffs (91b5a51)
  • Untrack dev notes (ed39f33)
  • Update pre-commit hooks, format Python in Markdown (1e32c4a)
  • Updated demo (1fa16ca)
  • Updated demo (750c66d)

Performance

  • cli: Do not load the scheduler when starting the command line (9b5d4cb)
  • remote: Send experiment summaries in the list (782dfe7)
  • services: List sub-services without recreating the services (fd531ec)
  • webui: Request the jobs of the shown experiment, off the event loop (7df95f4)
  • webui: Read the experiments when the server starts (09c0be9)- Lazy imports to speed up the command line start (912173a)

Refactor

  • cli: Reorganize the command line by what commands act on (53f98d8)
  • dag: Integrate the DAG view into the web UI (0379379)
  • dynamic-outputs: Read task outputs on the scheduler loop (75a031b)
  • launchers: Remove OAR support (da62ece)
  • scheduler: Track pending work in the experiment (6ceb307)
  • scheduler: Run job completion work as hooks (c569a03)
  • scheduler: Wait on tracked work instead of counters (9290566)- Dag can load from remote workspaces (9ef71ea)
  • Share kill/delete and folder sizes between the TUI, web UI and CLI (9af4918)
  • Use builtin generics and PEP 604 unions (ruff UP rules) (697466c)

Testing

  • inspect: Generate a sample workspace instead of local fixtures (5cb11b9)
  • services: Wait on the inner service start in the SSH starting-state test (a25ccb6)
  • ui: Failing tests for the UI feedback (logs, copy, relaunch, graph, toasts) (bcd1fb3)- UI feature tests shared by the TUI and the web UI (6bc879e)
  • Write the reschedule test files atomically (5bf3f96)

Merge

  • SSH reconnection into the todo branch (fcddfcb)

Security