The DAQ validated the samples-spreadsheet WS payload against its own copy
of DataCollectionParameters (aare/common/models.py), which had drifted from
the contract: transmission was still an int percent while AareDB now
sends a 0-1 fraction (aarecommon 0.7.2), and it still carried five fields
that never existed at the beamline. A parity check of all 35 classes in
aare/common/models.py against aarecommon 0.7.4 found the ONLY semantic
differences inside this class, so it is now imported from aarecommon;
everything else in the module stays local (follow-up: fold the rest of
aare.common into aarecommon the same way).
- aarecommon==0.7.4 added as a dependency (PSI index)
- aaredb client 0.1.2a5 -> 0.83.1: the old generated client typed
transmission as StrictInt and would reject the fraction payload before
the updater even ran; the new one carries the fraction + canonical names
(all 11 imported symbols and the 4 SamplesRunner/TellsRunner calls verified)
- spreadsheetupdater re-validates aaredb_params through the contract
explicitly, so the generated client's copy is transport only
- manual_sample_panel builds its DataCollectionParameters from the shared
class instead of the generated client's
- daq.py read getattr(aaredb_params, 'totalrange'), which is always None on
the canonical model (renamed to totalangle years ago) -> the requested
total angle never prefilled; fixed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GPer4T34EcvqVJGpeiEJ4Y