Skip to content

feat(distribution): add native support validation contract - #280

Draft
Kibnet wants to merge 36 commits into
mainfrom
docs/distribution-support-contract
Draft

feat(distribution): add native support validation contract#280
Kibnet wants to merge 36 commits into
mainfrom
docs/distribution-support-contract

Conversation

@Kibnet

@Kibnet Kibnet commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • Продолжает согласованную работу по достоверности README и контракту distribution/support.
  • Делает Android-проверку в CI диагностируемой: каждый тайм-аут и отсутствие запущенного процесса оставляют структурированное evidence.

Changes

  • Изолированы AVD-файлы двух Android emulator jobs и ограничено ожидание их готовности.
  • Проверка запуска приложения не блокируется на am start -W; результат ADB-команд и тайм-ауты записываются в evidence.
  • Для adb install -r действует отдельный 120-секундный тайм-аут. При ошибке install создаётся evidence.json; общий 30-секундный тайм-аут не протекает в cleanup-команды.
  • До PID-проверки снимается API runtime logcat. Поэтому artifact сохранит logcat и когда install/start успешны, но процесс приложения отсутствует.
  • Добавлены регрессии для install timeout, cleanup isolation и «процесс отсутствует», а также строки EXEC в двух согласованных спецификациях.

Validation

  • Текущий head: 1959ad88.
  • Локально: bash -n scripts/test-android-distribution.sh; pwsh -File scripts/test-android-build-scripts.ps1 — PASS (116.4 s); pwsh -File scripts/test-distribution-contract.ps1 -Area All — PASS, 182 negative fixtures (65.7 s); git diff --check — PASS.
  • TDD: новая статическая проверка порядка «logcat до PID» сначала была RED, затем вошла в общий PASS.
  • Run 30009325379 зафиксировал действительную причину API 36 timeout на прежнем head: adb install -r завершался с exit 124 при общем лимите 30 s.
  • Run 30010971884 после увеличения install timeout: API 36 прошёл install / force-stop / am start с exit 0, но PID не появился. В artifact того запуска не было logcat; текущий commit устраняет именно этот диагностический пробел.
  • Новый CI-прогон для 1959ad88 ожидается. Успешный старый run Tests / Android package / CodeQL не заменяет валидацию нового head.

Risks / Rollback

  • Runtime-совместимость API 36 пока не доказана: следующий artifact должен показать причину отсутствующего процесса. Product-код не менялся.
  • Linux NuGet NU3012 по отозванной цепочке подписи ReactiveUI остаётся известным отдельным блокером; remediation требует отдельного review и одобрения spec specs/2026-07-21-reactiveui-signature-chain-remediation.md.
  • Откат диагностического дополнения: revert 1959ad8; откат install timeout: revert ab42062 и 3d21399.

Links

  • Spec: specs/2026-07-18-distribution-support-contract.md
  • Spec: specs/2026-07-19-headless-appautomation-storage-lifecycle.md
  • Roadmap: specs/2026-07-17-readme-reliability-roadmap.md

Kibnet added 30 commits July 20, 2026 22:42
Resolve fixture paths with the selected Bash runtime and keep nested calls on that runtime. Harden Windows-hosted Android fixtures and normalize GNU escaped checksum output without weakening digest validation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant