The difference is: how do we decide what steps to run?
1: The user directly tells Dagster which steps should run.
2: The user tells Dagster "decide which steps to run". Then Dagster looks on the filesystem and runs only the steps that don't correspond to files there.
We support (1), but only have experimental support for (2). In both cases, steps can use the files on the filesystem as inputs, even if they came from different runs.
Does that make sense?