Removed positional patient identifiers from scripts/predict_isup.py.
Added a direct vxData SDK query for patient identifiers where default_split != "train", then passed the resulting list to the existing predict_isup API.
Verified the production query returns 2,457 identifiers without logging them.
Validated CLI argument rejection, private output mode, compilation, Ruff, formatting, and the changed call path with calldiff.
Committed and pushed a8306351 on feat/isup-inference.
Lessons Learned: Pitfalls
vxData SDK 3 TypedNamespace.query() accepts no positional filter. The working form is query().filter(expression), not query(expression).
Lessons Learned: Improvements
Keep cohort selection at the CLI boundary so the reusable predict_isup(model_id, patients) API remains useful for explicit programmatic cohorts.
Validate concise SDK examples against the deployed SDK before committing, even when their intended semantics are clear.