Skip to content

Manage Jobs and Results

Run these commands from the submission directory so they share the default registry:

caddforge list-jobs
caddforge status <job-id>
caddforge logs <job-id>
caddforge logs <job-id> --follow

Status refresh reconciles scheduler information with recorded results. Log following is useful during long runs; Ctrl+C stops following without cancelling the job. logs prints stdout; inspect stderr.log directly in the recorded run directory when needed. Core currently has no general CLI cancel command. Use your scheduler's cancellation mechanism when appropriate, then refresh status.

After completion, use named result paths rather than assuming output directory names:

from caddforge.core.execution import load_result_for_job
from caddforge.core.job_registry import get_job

job = get_job("replace-with-your-job-id")
if job is None:
    raise LookupError("Job not found in this registry")
result = load_result_for_job(job)
if result is None:
    raise RuntimeError("No canonical result yet; check status and logs")
print(result.status.value)
print(result.paths)

caddforge export <job-id> uses recorded submission metadata to copy completed outputs when an export is applicable. Do not remove scratch or original runs until outputs have been verified. caddforge restart <job-id> creates a new recorded execution from the saved tool configuration; it does not guarantee engine-specific checkpoint continuation. Check restart --help and the tool's checkpoint inputs.

For an isolated registry in Python, pass registry_path to submission and lookup helpers. CLI status and logs use the default registry; not every CLI command accepts an override. See the CLI reference and canonical result layout.