packages/os/linux/variants/milady-tails/docs/production-readiness.md
This document is deliberately blunt. elizaOS Live is a real live-OS integration, but the current branch is still a demo/productization branch, not a final enterprise release.
Product positioning: elizaOS Live is a USB-bootable distro built on Tails live-OS plumbing. The primary user experience should be elizaOS Live, not a visibly rebranded Tails session. Tails remains credited in license/about materials and preserved in engineering internals where renaming would break upstream contracts.
These parts are aligned with normal Tails/live-build practice:
amnesia live user rather
than replacing the whole desktop stack.dd.These parts are acceptable for a working demo but need hardening before a production release:
| Area | Current Shape | Production Direction |
|---|---|---|
| App payload | Large bundled Electrobun runtime tree staged into the live image | Slim signed app bundle with deterministic packaging and rollback |
| Runtime packages | Many copied runtime packages and generated optional-plugin stubs | First-class production dependency graph; no hidden dev workspace resolution |
| CEF profile/sandbox | Tails-specific profile layout and sandbox fallbacks | Upstreamable Electrobun/CEF fix; explicit renderer sandbox decision |
| Model boot | Fallbacks prevent startup from requiring a private model download | Signed model catalog; onboarding-driven download/provider choice |
| Privileged actions | Conservative capability runner, mostly status/root-status | Approval-gated policy, audit log, AppArmor/polkit review |
| Branding | Direct Tails UI/string overrides where needed | Stable brand overlay package; keep required Tails internals untouched |
| Updates | Baked runtime plus checked signed-runtime verifier foundation; rebuild ISO for OS/base changes | Production keys, downloader, revocation, signed app/model updates, plus signed OS delta or full-image updater |
| USB flasher | Guarded developer script | Signed GUI + CLI for macOS, Windows, Linux with the same disk-safety policy |
| Enterprise controls | Planning docs only | Signed manifests, rings, policy pins, mirrors, rollback, and non-secret audit evidence |
None of these should be hidden. They should stay explicit in docs and checks until replaced.
The latest source audit found no new elizaOS-owned broad sudo rule beyond
the checked root-status path, but it did find production blockers that
must stay visible:
just milady-app before a full ISO buildIt is accurate to describe elizaOS Live as a Tails-derived live USB Linux distribution. The product ambition is larger: a portable agentic AI OS with the elizaOS app as the home surface and the normal Linux desktop still available underneath.
The current branch already has the right foundation for the demo:
amnesiaThe production product should add these first:
/opt/milady factory runtime.Clear near-term wins before marketing this as a production AI OS:
The concrete policy lives in security-model.md.
Cheap validation lives in scripts/security-smoke.sh.
Default security smoke is a development gate:
scripts/security-smoke.sh
It fails on elizaOS-owned policy violations and warns on inherited Tails exceptions or missing production infrastructure. Release candidates must run strict mode:
ELIZAOS_SECURITY_STRICT=1 scripts/security-smoke.sh
Strict mode treats unexpected broad sudoers, missing production update keyring,
and missing SBOM/provenance artifacts as blockers. The inherited Tails broad
sudoers rules are explicitly reviewed in
inherited-tails-sudoers-review.md and
must not grow silently. The USB writer has a signature-verification path, but
production still needs a real release keyring.
The app should not "just have root." The correct product model is:
amnesiaRoot access is powerful for an AI OS because it can manage system packages, networking, services, persistence, devices, and recovery flows. It is also the fastest way to break Tails' guarantees if unbounded. The broker model is the release path.
Current checked policy:
/usr/local/lib/elizaos/capability-runner root-statuscapability-runner may expose status, privacy-mode status, the Persistent
Storage launcher, and exact root-status smoke onlyKnown production finding: inherited Tails sudoers for Persistent Storage, Greeter, Tor Browser, IUK updates, and WhisperBack contains broad internal authority. elizaOS does not add to it; the current accept/mitigate decision is documented in the inherited sudoers review. Enterprise release still needs an external audit of that inherited trust boundary.
Current checked persistence policy:
.eliza, .milady,
.config/elizaOS, legacy .config/milady names, and elizaOS CEF cache
paths/home/amnesia, /etc,
/usr, /var, /root, /opt, or an unencrypted external pathfind -P -xdevCurrent checked update policy:
/opt/milady runtime when selector trust is missingThe demo is complete when the fresh ISO passes:
~/.eliza, app data, models, Wi-Fi, and
credentials after unlockProduction-grade requires the demo gates plus:
ELIZAOS_SECURITY_STRICT=1 scripts/security-smoke.sh passesThe branch should not be marketed as finished enterprise software before those gates are complete.
The enterprise backlog is not just packaging. Required work: