Java dies with “Not enough space” before the run starts

scripts/validate_mimic.sh hands the run to scripts/validate.sh, and that helper picks the Java heap size. It used to trust the MemAvailable number from /proc/meminfo and cap the heap at 32 GB. On a default WSL2 install that number oversells what you can actually get: the kernel advertises a large amount of address space while the real commit limit is much smaller, so Java asks for a heap the OS was never going to grant and dies immediately with “Not enough space”. The helper now also reads the kernel CommitLimit and clamps the heap to 75% of that budget, still bounded between 2 GB and 32 GB, so the default validation run only asks for memory the OS will actually commit. If you want a smaller heap anyway, set PIPELINE_HEAP (in MB) before re-running:
export PIPELINE_HEAP=4096
bash scripts/validate_mimic.sh

A big run asks for too much memory or fills the disk

scripts/run_pipeline.sh and scripts/run_input.sh use the same clamp for normal runs. Autoscale starts from CPU and RAM, clamps the Java heap against Linux CommitLimit when it is available, and checks free space on the output/work filesystem, so a machine with a small backing disk does not start an oversized heap or too many concurrent dataset runners. The knobs:
export CTAKES_AUTOSCALE_MEM_PERCENT=70
export CTAKES_AUTOSCALE_COMMIT_PERCENT=75
export CTAKES_AUTOSCALE_DISK_RESERVE_MB=20480
export CTAKES_AUTOSCALE_MAX_INSTANCES=4

The output folder has no CSV files

That is the default, not a failure. The normal run writes everything into annotations.sqlite instead of per-note CSV/XMI/HTML files. If the site needs the older folder layout for a debug or handoff run:
bash scripts/run_pipeline.sh -i input/batch1 -o outputs/batch1_standard --writers standard

DocTimeRel, temporal relations, or coreference chains are empty

Expected for this release. The shipped .piper files leave out TsTemporalSubPipe and TsCorefSubPipe because those stages add noticeable compute and are not part of the default production footprint. The lightweight local WSD layer is still on by default, but it is a heuristic reranker, not a substitute for full temporal reasoning or cross-mention coreference resolution. If you need temporal or coreference annotations, add those sub-pipelines in your own descriptor and treat the result as a custom deployment: re-benchmark the runtime, re-run the semantic validation, and confirm the new outputs are actually populated before anyone queries them.