aman/docs/x11-ga/runtime-validation-report.md
Thales Maciel 31a1e069b3
Prepare the 1.0.0 GA release surface
Add the repo-side pieces for milestone 5: MIT licensing, real maintainer and forge metadata, a public support doc, 1.0.0 release notes, release-prep tooling, and CI uploads for the full candidate artifact set.

Keep source-tree version surfaces honest by reading the local project version in the CLI and About dialog, and cover the new release-prep plus version-fallback behavior with focused tests.

Document where raw validation evidence belongs, add the GA validation rollup, and archive the latest readiness review. Milestone 5 remains open until the forge release page is published and the milestone 2 and 3 matrices are filled with linked manual evidence.

Validation: PYTHONPATH=src python3 -m unittest discover -s tests -p 'test_*.py'; PYTHONPATH=src python3 -m unittest tests.test_release_prep tests.test_portable_bundle tests.test_aman_cli tests.test_config_ui; python3 -m py_compile src/*.py tests/*.py; PYTHONPATH=src python3 -m aman version
2026-03-12 19:36:52 -03:00

3.3 KiB

Runtime Validation Report

This document tracks milestone 3 evidence for runtime reliability and diagnostics.

Automated evidence

Completed on 2026-03-12:

  • PYTHONPATH=src python3 -m unittest tests.test_diagnostics tests.test_aman_cli tests.test_aman tests.test_aiprocess
    • covers doctor versus self-check, tri-state diagnostic output, warning versus failure exit codes, read-only model cache probing, and actionable runtime log wording for audio, hotkey, injection, editor, and startup failures
  • PYTHONPATH=src python3 -m unittest discover -s tests -p 'test_*.py'
    • confirms the runtime and diagnostics changes do not regress the broader daemon, CLI, config, and portable bundle flows
  • python3 -m py_compile src/*.py tests/*.py
    • verifies the updated runtime and diagnostics modules compile cleanly

Automated scenario coverage

Scenario Evidence Status Notes
doctor and self-check have distinct roles tests.test_diagnostics, tests.test_aman_cli Complete self-check extends doctor with service/model/startup readiness checks
Missing config remains read-only tests.test_diagnostics Complete Missing config yields warn and does not write a default file
Managed model cache probing is read-only tests.test_diagnostics, tests.test_aiprocess Complete self-check uses cache probing and does not download or repair
Warning-only diagnostics exit 0; failures exit 2 tests.test_aman_cli Complete Human and JSON output share the same status model
Runtime failures log stable IDs and one next step tests.test_aman_cli, tests.test_aman Complete Covers hotkey, audio-input, injection, editor, and startup failure wording
Repeated start/stop and shutdown return to idle tests.test_aman Complete Current daemon tests cover start, stop, cancel, pause, and shutdown paths

Manual X11 validation

These rows must be filled with release-specific evidence before milestone 3 can be closed as complete for GA signoff.

Store raw evidence for each runtime validation pass in user-readiness/<linux-timestamp>.md and reference that file in the Notes column.

Scenario Debian/Ubuntu Arch Fedora openSUSE Reviewer Status Notes
Service restart after a successful install Pending Pending Pending Pending Pending Pending Verify systemctl --user restart aman returns to the tray/ready state
Reboot followed by successful reuse Pending Pending Pending Pending Pending Pending Validate recovery after a real session restart
Offline startup with an already-cached model Pending Pending Pending Pending Pending Pending Disable network, then confirm the cached path still starts
Missing runtime dependency recovery Pending Pending Pending Pending Pending Pending Remove one documented dependency, verify diagnostics point to the correct fix
Tray-triggered diagnostics logging Pending Pending Pending Pending Pending Pending Use Run Diagnostics and confirm the same IDs/messages appear in logs
Service-failure escalation path Pending Pending Pending Pending Pending Pending Confirm doctor -> self-check -> journalctl -> aman run --verbose is enough to explain the failure