Почему это важно
src/lib.rs одновременно экспортирует core API, общие модели, Android bridge, notification/vibration state and tests. Для зрелой архитектуры core должен оставаться платформенно-нейтральным, а Android bridge должен жить отдельно за cfg.
Что сделать
- Вынести Android-specific bridge/UI glue из
src/lib.rs в отдельный модуль, например src/android.rs или src/platform/android.rs.
- Оставить core models (
AgentPulse, AgentBurnDetector, summaries, API helpers) доступными без Android feature.
- Не менять Android package, JNI exports or Slint behavior.
Acceptance Criteria
src/lib.rs заметно короче и в основном содержит exports/core wiring.
- Android-only код защищён
#[cfg(all(target_os = "android", feature = "android-gui"))].
- Android APK build не ломается.
cargo test --locked, cargo clippy --all-targets --features gui -- -D warnings, cargo fmt --check проходят.
Что нельзя трогать
Cargo.toml version
- Android package id
- API JSON output format
.env files
SUBMISSION.ru.md
Почему это важно
src/lib.rsодновременно экспортирует core API, общие модели, Android bridge, notification/vibration state and tests. Для зрелой архитектуры core должен оставаться платформенно-нейтральным, а Android bridge должен жить отдельно заcfg.Что сделать
src/lib.rsв отдельный модуль, напримерsrc/android.rsилиsrc/platform/android.rs.AgentPulse,AgentBurnDetector, summaries, API helpers) доступными без Android feature.Acceptance Criteria
src/lib.rsзаметно короче и в основном содержит exports/core wiring.#[cfg(all(target_os = "android", feature = "android-gui"))].cargo test --locked,cargo clippy --all-targets --features gui -- -D warnings,cargo fmt --checkпроходят.Что нельзя трогать
Cargo.tomlversion.envfilesSUBMISSION.ru.md