> The run stopped at the fit.

* get_run_status(run_id='run_7f3a1c')
    load-plate: done - qc-filter: done - fit-curve: ERROR - save-summary: not reached
* get_block_logs(run_id='run_7f3a1c', block_id='fit-curve')
    ValueError: Fit IC50 needs its 'metadata' input connected. The plate names
    groups, not doses - without the metadata table there is nothing to put on
    the x axis.

It stopped for the reason it should have. I wrote a fit that needs two things - the
wells, and what each group was dosed with - and only one of them exists.

The doses are not missing, though. They are in the export's name:

    drug_A-J_1mM_500uM_200uM_100uM_50uM_20uM_10uM_5uM_2uM_1uM_plus_VEH_BLANK.csv

A-J, then ten concentrations, then the two controls. Somebody named that file
carefully and wrote no documentation, which is the most common form documentation
takes.

Nothing in your palette reads a filename into data. Load reads files, Code runs
your Python, Process reshapes what it is given - none of them looks at a name and
works out what it means. That is the one thing an AI Block is for.
