From d5b13d7f31766c477b3913e78f1fb99265e0b852 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 31 Oct 2026 01:24:35 +0000 Subject: [PATCH] motion: mark MovingCircle.advance as a test helper, not the production path Docstring only. Co-Authored-By: Claude Opus 5.5 --- src/CelerisLab/body/motion.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/CelerisLab/body/motion.py b/src/CelerisLab/body/motion.py index b419820..9e49ad8 100644 --- a/src/CelerisLab/body/motion.py +++ b/src/CelerisLab/body/motion.py @@ -99,7 +99,12 @@ class MovingCircle: return self.centre(self.applied), self.centre(offset), velocity def advance(self, upload: Callable, step: Callable, synchronize: Callable) -> None: - """Upload the record, run one step and commit only after a successful sync. + """Single-circle transaction helper (unit tests): upload, step, sync, commit. + + Not the production path: ``Simulation._run_moving`` batches all circles, + adds the ``no_donor`` gate and uses ``commit``/``fail`` directly. + + Upload the record, run one step and commit only after a successful sync. Any exception after the upload is attempted leaves device geometry unknown: the circle is marked failed, never reports applied state again,