Implement milestone 2 around a portable X11 release bundle instead of\nkeeping distro packages as the only end-user path.\n\nAdd make/package scripts plus a portable installer helper that builds the\ntarball, creates a user-scoped venv install, manages the user service, handles\nupgrade rollback, and supports uninstall with optional purge.\n\nFlip the end-user docs to the portable bundle, add a dedicated install guide\nand validation matrix, and leave the roadmap milestone open only for the\nremaining manual distro validation evidence.\n\nValidation: python3 -m py_compile src/*.py packaging/portable/portable_installer.py tests/test_portable_bundle.py; PYTHONPATH=src python3 -m unittest tests.test_portable_bundle; PYTHONPATH=src python3 -m unittest tests.test_aman_cli tests.test_diagnostics tests.test_portable_bundle; PYTHONPATH=src python3 -m unittest discover -s tests -p 'test_*.py'
7.4 KiB
Aman X11 GA Roadmap
What is missing today
Aman is not starting from zero. It already has a working X11 daemon, a settings-first flow, diagnostics commands, Debian packaging, Arch packaging inputs, and a release checklist. What it does not have yet is a credible GA story for X11 users across mainstream distros.
The current gaps are:
- No single distro-agnostic end-user install, update, and uninstall path. The repo documents a Debian package path and partial Arch support, but not one canonical path for X11 users on Fedora, openSUSE, or other mainstream distros.
- No explicit support contract for "X11 users on any distro." The current docs describe target personas and a package-first approach, but they do not define the exact environment that GA will support.
- No clear split between service mode and foreground/manual mode. The docs describe enabling a user service and also tell users to run
aman run, which leaves the default lifecycle ambiguous. - No representative distro validation matrix. There is no evidence standard that says which distros must pass install, first run, update, restart, and uninstall checks before release.
- Incomplete trust surface. The project still needs a real license file, real maintainer/contact metadata, real project URLs, published release artifacts, and public checksums.
- Incomplete first-run story. The product describes a settings window and tray workflow, but there is no short happy path, no expected-result walkthrough, and no visual proof that the experience is real.
- Diagnostics exist, but they are not yet the canonical recovery path for end users.
doctorandself-checkare present, but the docs do not yet teach users to rely on them first. - Release process exists, but not yet as a GA signoff system. The current release checklist is a good base, but it does not yet enforce the broader validation and support evidence required for a public 1.0 release.
GA target
For this roadmap, GA means:
- X11 only. Wayland is explicitly out of scope.
- One canonical portable install path for end users.
- Distro-specific runtime dependency guidance for major distro families.
- Representative validation on Debian/Ubuntu, Arch, Fedora, and openSUSE.
- A stable support contract, clear recovery path, and public release surface that a first-time user can trust.
"Any distro" does not mean literal certification of every Linux distribution. It means Aman ships one portable X11 installation path that works on mainstream distros with the documented runtime dependencies and system assumptions.
Support contract for GA
The GA support promise for Aman should be:
- Linux desktop sessions running X11.
- Mainstream distros with
systemd --useravailable. - System CPython
3.10,3.11, or3.12available for the portable installer. - Runtime dependencies installed from the distro package manager.
- Service mode is the default end-user mode.
- Foreground
aman runremains a support and debugging path, not the primary daily-use path.
Native distro packages remain valuable, but they are secondary distribution channels. They are not the GA definition for X11 users on any distro.
Roadmap principles
- Reliability beats feature expansion.
- Simplicity beats distro-specific cleverness.
- One canonical end-user path.
- One canonical recovery path.
- Public docs should explain the supported path before they explain internals.
- Each milestone must reduce ambiguity, not just add artifacts.
Canonical delivery model
The roadmap assumes one portable release bundle for GA:
- Release artifact:
aman-x11-linux-<version>.tar.gz - Companion checksum file:
aman-x11-linux-<version>.tar.gz.sha256 - Installer entrypoint:
install.sh - Uninstall entrypoint:
uninstall.sh
The bundle installs Aman into user scope:
- Versioned payload:
~/.local/share/aman/<version>/ - Current symlink:
~/.local/share/aman/current - Command shim:
~/.local/bin/aman - User service:
~/.config/systemd/user/aman.service
The installer should use python3 -m venv --system-site-packages so Aman can rely on distro-provided GTK, X11, and audio bindings while still shipping its own Python package payload. This keeps the runtime simpler than a full custom bundle and avoids asking end users to learn uv.
Canonical recovery model
The roadmap also fixes the supported recovery path:
aman doctoris the first environment and config preflight.aman self-checkis the deeper readiness check for an installed system.journalctl --user -u amanis the primary service log surface.- Foreground
aman run --verboseis the support fallback when service mode is not enough.
Any future docs, tray copy, and release notes should point users to this same sequence.
Milestones
- Milestone 1: Support Contract and GA Bar
Status: completed on 2026-03-12. Evidence:
README.mdnow defines the support matrix, daily-use versus manual mode, and recovery sequence;docs/persona-and-distribution.mdnow separates current release channels from the GA contract;docs/release-checklist.mdnow includes GA signoff gates; CLI help text now matches the same service/support language. - Milestone 2: Portable Install, Update, and Uninstall
Implementation landed on 2026-03-12: the portable bundle, installer,
uninstaller, docs, and automated lifecycle tests are in the repo. Leave this
milestone open until the representative distro rows in
portable-validation-matrix.mdare filled with real manual validation evidence. - Milestone 3: Runtime Reliability and Diagnostics Make startup, failure handling, and recovery predictable.
- Milestone 4: First-Run UX and Support Docs Turn the product from "documented by the author" into "understandable by a new user."
- Milestone 5: GA Candidate Validation and Release Close the remaining trust, legal, release, and validation work for a public 1.0 launch.
Cross-milestone acceptance scenarios
Every milestone should advance the same core scenarios:
- Fresh install on a representative distro family.
- First-run settings flow and first successful dictation.
- Reboot or service restart followed by successful reuse.
- Upgrade with config preservation.
- Uninstall and cleanup.
- Offline start with already-cached models.
- Broken config or missing dependency followed by successful diagnosis and recovery.
- Manual validation by someone who did not implement the feature.
Final GA release bar
Before declaring Aman GA for X11 users, all of the following should be true:
- The support contract is public and unambiguous.
- The portable installer and uninstaller are the primary documented user path.
- The runtime and diagnostics path are reliable enough that failures are usually self-explanatory.
- End-user docs include a 60-second quickstart, expected visible results, screenshots, and troubleshooting.
- Release artifacts, checksums, license, project metadata, and support/contact surfaces are complete.
- Validation evidence exists for Debian/Ubuntu, Arch, Fedora, and openSUSE.
- The release is tagged and published as
1.0.0.
Non-goals
- Wayland support.
- New transcription or editing features that do not directly improve reliability, install simplicity, or diagnosability.
- Full native-package parity across all distros as a GA gate.