A run keeps the inputs its flow declared at submit

Run.declared (migration 2e7ca7d10044) snapshots the declarations on submit
and import. The run detail's Inputs panel reads them, and a run from before
falls back to the flow's current declarations.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WgBfkm4rCmtd1T4vHWjEPx
This commit is contained in:
2026-10-15 10:20:29 +02:00
co-authored by Claude Opus 5.5
parent edd01ee330
commit df2620cede
10 changed files with 77 additions and 6 deletions
+3
View File
@@ -456,6 +456,9 @@ def test_a_run_records_the_inputs_it_actually_starts_from():
assert spelled.params_digest == defaulted.params_digest
# Only what the caller chose says which value was the flow's own.
assert (defaulted.passed, spelled.passed) == (["epochs"], ["epochs", "lr"])
# And what the flow declared then, so an input it adds later is not
# drawn on this run as a default it never received.
assert defaulted.declared == {"lr": 0.01, "epochs": None}
finally:
with Session(db_engine) as session:
for run in session.exec(select(Run).where(col(Run.id).in_(made))).all():