Repository navigation
v0.33.0
This release includes a breaking change to the JSON output of CLI list commands and adds new
public columns (start_time, compute_node_id) to the job table so running jobs can be
observed without waiting for completion. It also lands CSV output, stdin spec input, adaptive
poll backoff in the job runner, TUI pagination/sorting, and a consistent timestamp display policy
across the CLI, TUI, and dashboard.
API version: 0.19.0 → 0.20.0
- CLI list JSON shape standardized on items (#345). All torc -f json list
commands now wrap records under {"items": [...]} instead of per-resource keys like jobs,
results, workflows. This matches the REST API's paginated response shape and lets you
use jq '.items[]' across every resource type. Migration: replace .jobs / .results /
.workflows / etc. with .items in your scripts. ID-only commands
(files list-required-existing, user-data list-missing, list_job_ids) are unchanged.
New features
- -f csv output for every list command (#346). CSV joins table and json as a first-class
output format; columns match the table view exactly. Single-record commands and multi-section
reports reject csv with a clear error. -
- as workflow-spec input (#347). create, run, submit, slurm generate, and
slurm plan-allocations now accept - to read the spec from stdin, enabling pipelines like
torc slurm generate w.yaml | torc submit -.
- as workflow-spec input (#347). create, run, submit, slurm generate, and
- start_time and compute_node_id on the job table (#350). Surfaces how long a running
job has been running and which node it's on, without waiting for completion. The CLI jobs list,
TUI jobs view, and torc-dash now show compute node and elapsed time for running jobs. The
fields are cleared on every transition out of Running, including recover and reinitialize,
so the displayed elapsed time never reflects a killed attempt. - Server-side jobs filtering (#344). GET /jobs now supports name and command substring
filters (LIKE %value%), and the TUI Jobs filter (f) uses them so it searches across the
entire workflow, not just the loaded page.
CLI / TUI / dashboard
- Consistent timestamp display (#351). Humans (TUI, dash, CLI table mode, CLI detail views)
see local time with an explicit ±HHMM offset suffix; JSON keeps the server's raw UTC RFC3339.
File mtimes get the same treatment. Python's convert_timestamp now returns a tz-aware UTC
datetime instead of silently inheriting the client's local zone. - Adaptive poll backoff in the job runner (#343). Idle polls double up to
client.run.claim_backoff_max_secs (default 300s), cutting the request rate dramatically on
large allocations queued with long-running jobs. SIGCHLD still snaps the runner back to the
base interval immediately, so finishing jobs don't pay the backoff cost. - TUI pagination + sorting parity (#344). List views load on demand at 250 records per page
with ]/[ to page through Workflows, Jobs, Results, and Compute Nodes. Workflows and
Compute Nodes gain hotkey sorting with header indicators. - TUI Results tab improvements (#342, cd223e1). New Runtime column (sorted with E) and
Completion Time column; Run and Attempt columns removed for clarity. - CLI results trimmed (cd223e1). torc results list hides WF ID, Run ID, and Attempt from
the table; the data remains available in JSON and CSV. - More fields in CLI detail views (#344). torc workflows get prints execution_config;
torc jobs get shows job priority; torc workflows list/get surface run_id,
is_canceled, and is_archived. - TUI Workflows default sort is now newest-first (#352), matching the dashboard.
Bug fixes
- Dashboard status badges and Peak CPU column (#352). The dash was treating
JobStatus/ResultStatus as integer indices into local arrays, so badges fell back to
status-unknown, the Jobs table "Elapsed" column always showed -, and the DAG visualizer
rendered every node in the default gray. Status is now routed through string-keyed helpers
everywhere. The Results tab was also showing avg_cpu_percent instead of peak_cpu_percent;
it now matches the CLI. - Peak CPU restored in torc results list/get (8934410). The list column was showing
Avg CPU; peak_cpu_percent is always populated (sacct's AveCPU is copied into peak as a
fallback), so it now reads "Peak CPU %" consistently with Peak Mem and the TUI. - Slurm job-runner log path lookup in reports (18c2589). Reports were rebuilding the log
filename from compute_node.hostname / compute_node.pid, but the runner writes it using
SLURM_NODEID / SLURM_TASK_PID. The compute node's scheduler JSON now carries those values
so the path matches; older nodes fall back to the previous behavior. - job-dependencies list subcommands (#345). The three job-dependencies list subcommands
were leaking pagination metadata and not auto-paginating; they now use the standard
paginate-then-emit-items shape.
What's Changed
- TUI runtime column + results CPU/log-path fixes by @daniel-thom in #342
- Adaptive poll backoff in the job runner by @daniel-thom in #343
- TUI pagination/sorting + server-side jobs filtering, plus CLI fixes by @daniel-thom in #344
- Standardize CLI list JSON output on
itemskey by @daniel-thom in #345 - Add
-f csvoutput format for list commands by @daniel-thom in #346 - Accept stdin (
-) as workflow-spec input for CLI commands by @daniel-thom in #347 - Update docs for correct CLI options and links by @daniel-thom in #349
- Add start_time and compute_node_id to the job table by @daniel-thom in #350
- Render timestamps as local-with-offset for humans, UTC for JSON by @daniel-thom in #351
- Fix dash status badges + Peak CPU column, default TUI workflows to newest-first by @daniel-thom in #352
Full Changelog: v0.32.0...v0.33.0