harbor 0.20.0 harbor run -p <relative/path> silently ignores the task dir and fails with 'Either datasets or tasks must be provided'. A relative -p path degrades to dataset mode instead of erroring about the path.
Pass -p as an ABSOLUTE path (e.g. str(Path(task_dir).resolve()) when shelling out from Python). harbor only treats -p as a task dir when the path is absolute; relative paths fall through to dataset resolution and produce the unrelated 'Either datasets or tasks must be provided' error.