When I was running dagger on GHA, caching was not a thing because github would restart dagger every time. Now that I'm self hosted, the dagger daemon is caching tasks. But too aggressively; it is skipping tasks that it should not.
I was looking at the docs, and it mentions "introducing a volatile time variable at a specific point in the Dagger workflow" as a hack. How can I declare the keys and values that gate cache invalidation in a more principled way? Workflow engines like Airflow, Dagster and Flyte use the task inputs to determine if the task can be cached. Does Dagger take a similar approach?