ATL-2026-004experimentrepeatable
Сравнить три явные политики владения, когда реальный Flutter-маршрут закрывается до завершения контролируемого асинхронного источника.
async-operation-after-route-close
Точная ревизия эксперимента
open8381011/experiments/async-operation-after-route-close ↗9f52fc820fb8578341227e6d12b3448a5946a71cEVIDENCE SIGNATURE
a365aa26a37fcf2b0629207cf56139129325cb6ea646fed9c530f25005d58e092026-09-03Окружение
- os
- macOS 26.5.1 (25F80)
- architecture
- arm64
- flutter
- 3.47.2 stable (d3b14c876900e553bc736ca19295fc09e3853e8e)
- dart
- 3.13.2 stable
- usecase_forge
- 1.0.0
Запуск
./tool/run_checks.shВходные данные
https://api.flutter.dev/flutter/widgets/BuildContext/mounted.html ↗https://api.flutter.dev/flutter/widgets/State/dispose.html ↗https://api.dart.dev/dart-async/Future-class.html ↗https://api.dart.dev/dart-async/StreamSubscription/cancel.html ↗Ожидаемые результаты
https://gitlab.com/open8381011/experiments/async-operation-after-route-close/-/blob/9f52fc820fb8578341227e6d12b3448a5946a71c/results/observations.json ↗Наблюдаемый результат
0eecda610ab6eeab755613e7a1fa56fbfbd05b8f64da673f20d6b0f8d1800a2a1×Ограничения
- Контролируемый источник подтверждает последовательность приложения, но не семантику отмены конкретного HTTP-, database-, isolate- или platform API.
- Widget disposal не является завершением процесса, а сохранённый в памяти результат не заменяет долговечный persistence.