Command Document
True Roadmap
Rendered as a real command-center page. Source notes remain in the repo for agents, but navigation uses pages and real files.
NyrA True Roadmap
Audited: 2026-06-16 America/New_York
This is the no-spin state of NyrA Swarm Little Buddy. The app is not sellable yet. The version number moved faster than the actual product. From here, a new alpha only counts if it removes a user-visible blocker and has proof from desktop, Android emulator, hosted alpha, or the physical phone.
What Is Going On
- Current package version:
0.1.0-alpha.76. - Android versionCode:
76. - Hosted alpha URL:
https://olympics-answers-defence-necklace.trycloudflare.com. - Current hosted APK:
release/current/android/NyrA.apk. - Current hosted APK SHA256:
ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d. - Current local APK SHA256:
ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d. - Hosted/local status: hosted alpha proof matches the current local alpha76 APK.
- Hosted update manifest proof: usable by phone, public APK route, checksum matched when last checked.
- Hosted support-log proof: passed when last checked.
- Hosted provider proof: 4/4 configured: OpenAI
gpt-5.2, Anthropicclaude-sonnet-4-6, Geminigemini-2.5-flash, Grok/xAIgrok-4.3. - Release gate:
INTERNAL_ALPHA_ONLY. - Money/deploy gate:
NO_GO_LIVE_MONEY. - Command-center readiness: live-money deployability is about 4%.
- Deployability blockers: 26 P0 and 1 P1.
- Physical phone proof:
NO_PHONE_SELF_TEST_LOG; alpha76 now retries auto proof upload until a support log succeeds. - Current bridge boundary: temporary
trycloudflare.comtunnel. - Current auth boundary: bundled internal alpha token.
The blunt answer: NyrA has a lot of infrastructure and not enough trustworthy app behavior. Alpha75 contains a real Hide Bot / Show Bot recovery patch, and alpha76 fixes a log-proof retry bug that could leave Codex blind after one failed phone upload attempt. The phone experience is still not proven. The user-visible goal is still unmet: a single transparent buddy that can chat, listen correctly, control the active device where Android/Windows allow it, explain blocked permissions clearly, and use the swarm mind visibly.
Why Version Churn Happened
Recent builds spent too much effort on delivery and evidence plumbing:
- APK packaging and hosted download routes.
- Update manifest checks.
- Support-log upload and readback.
- Command-center pages, CSVs, and workbook generation.
- Provider summary checks.
- Android build/rebuild scripts.
- Roadmap and launch docs.
Those are useful only after the core app works. They do not satisfy the product standard. Until NyrA behaves correctly on the phone and desktop, version numbers are noise.
What Actually Improved
- Android can build a signed internal alpha APK.
- Hosted alpha can serve an APK from a public route instead of a localhost-only link.
- Hosted update checks and support-log checks exist.
- The hosted bridge has seen all four providers configured.
- Typed chat can reach the hosted bridge when the bridge and token are valid.
- The UI has a Captain/Crew provider status surface.
- Android self-test/reporting code exists.
- Phone-control code paths exist for Android actions such as open app, back/home, and tap/type experiments.
- Alpha75 adds a native hidden-buddy recovery path so Hide Bot can have a real Show Bot path instead of depending on generic close behavior.
- Alpha76 replaces the one-shot automatic phone proof upload with an in-session retry loop so a cold bridge or temporary upload failure should not permanently prevent support-log evidence for that installed version.
What Is Still Broken Or Not Proven
- Physical phone logs are not coming back yet, so Codex is debugging from screenshots and emulator proof instead of real device evidence.
- The app still appears as a black/blank foreground plane in cases where it should be a transparent floating buddy over the current phone screen.
- The user has seen duplicate bots. That means the foreground WebView and native overlay lifecycle are still not clean enough.
- Hide Bot, Close, Show Bot, reopen, and chat-panel state are not proven reliable on the physical phone.
- Mic/listening is not production quality. Trigger words, pause mode, wake behavior, and permission recovery need real validation.
- Phone control is not proven end to end on the physical phone: open app, tap, type, Back, Home, Recents, scroll, and screen look all need real evidence.
- Swarm routing is not visible enough per response. The app needs to show who answered, who was consulted, and what fallback happened.
- The APK still points at a temporary tunnel and bundles an internal alpha token.
- The app cannot be sold while deployability is
NO_GO_LIVE_MONEY.
Hard Stop Rules
- No marketing, billing, legal, Stripe, or launch-site polish until core app behavior passes.
- No new version bump for docs-only changes.
- No new version bump unless the build fixes a user-visible app blocker.
- No claim that phone control works until physical phone evidence exists.
- No claim that swarm mind works until the app shows provider state, selected provider, fallback behavior, and route evidence.
- No paid beta while the APK uses a temporary tunnel or bundled shared alpha token.
- No live-money launch while any P0 deployability blocker remains.
Product Definition
NyrA is supposed to be:
- A little buddy first, not a chat window first.
- One visible character, not duplicate overlays.
- Transparent around the character, not a black/white app plane.
- Always available, but not always interrupting.
- Trigger-word/listening aware, with pause and wake behavior.
- Able to act on the current device through approved OS permissions.
- Honest when Android/Windows blocks a capability.
- A Captain/Crew swarm mind that uses multiple AI providers, not just a single OpenAI-style chat box.
If a build does not move one of those bullets forward with proof, it should not be called progress.
Current Scorecard
| Area | Current state | Verdict |
|---|---|---|
| Android install | Builds an installable internal APK | Partial |
| Hosted download | Public route serves the current alpha75 APK hash | Partial, still temporary tunnel/auth |
| Transparent buddy | Not proven; black plane still seen | Broken |
| Single buddy lifecycle | Alpha75 patch exists; physical phone not proven | Not proven |
| Typed chat | Works when bridge reachable | Partial |
| Voice/mic | Permission and realtime failures still seen | Broken |
| Phone control | Code paths exist; physical phone not proven | Not proven |
| Desktop control | Test scaffolding exists; parity not proven in current build | Not proven |
| Swarm mind | Providers configured; per-response swarm behavior not clear enough | Partial |
| Logs/debugging | Support-log path exists; no physical phone self-test log | Broken |
| Paid launch | 26 P0 deployability blockers | Blocked |
P0 Recovery Gates
1. Buddy-First Launch
Required behavior:
- Android starts with one visible NyrA buddy.
- Chat panel is hidden by default unless setup is needed.
- No duplicate bot appears.
- Tapping/right-clicking opens the panel.
- Hide Bot hides the buddy.
- Show Bot restores the buddy.
- Close closes the panel without killing the buddy unless hidden mode is active.
Evidence required:
- Emulator screenshot.
- Physical phone screenshot or uploaded phone self-test log.
test:surface-parity.test:android-buddy-overlay.
2. Real Transparent Buddy Mode
Required behavior:
- NyrA appears over the current phone screen.
- Background behind the buddy is transparent/system-overlay based, not a black or white app plane.
- Foreground setup screens are only used when setup is actually needed.
Evidence required:
- Physical phone proof showing another app behind NyrA.
- Android overlay lifecycle check.
- Visual proof attached to the command center.
3. Reliable Chat And Listening
Required behavior:
- Typed chat works even if voice is unavailable.
- Mic permission denial does not break the app.
- Listening uses trigger/wake behavior instead of responding to everything.
- "Pause listening" enters log/context mode until timer expiry,
NyrA wake, or user action. - Voice state is visible and honest.
Evidence required:
- Voice/manual smoke logs.
- Support log entries from the installed phone build.
test:mobile-runtime-bridge-status.
4. Phone Control That Actually Acts
Required behavior:
- NyrA can open apps, tap, type, Back, Home, Recents, scroll, and report screen context where Android allows it.
- If Android blocks restricted Accessibility permissions, NyrA explains the exact manual path and records the blocker.
- Controls are exposed in a tester panel until the model can call them reliably.
Evidence required:
- Physical phone self-test log.
- At least five successful phone actions from the physical phone.
test:android-phone-control.test:mobile-phone-self-test.
5. Real Captain/Crew Swarm Surface
Required behavior:
- Main chat surface shows Captain and Crew provider state.
- OpenAI, Anthropic, Gemini, and Grok readiness is visible.
- A response records which provider handled it.
- Provider failure degrades gracefully instead of
Failed to fetch. - The app can explain why it picked a model.
Evidence required:
test:nyra-swarm-council.- Hosted smoke response with provider name.
- Main UI screenshot showing swarm state and chosen route.
6. Desktop Parity
Required behavior:
- Desktop NyrA can see screen context, click, type, and continue tasks through the approved local automation path.
- Desktop and phone use the same action language.
- Desktop diagnostics are exportable.
Evidence required:
test:computer-use.test:computer-use:screen.test:computer-use:actions.- Desktop smoke screenshot.
7. Stable Cloud, Update, And Logs
Required behavior:
- Stable bridge domain, preferably
bridge.porterlabz.com. - R2 or equivalent durable APK hosting.
- No bundled shared alpha token for customer builds.
- Update button checks a stable manifest and verifies checksum.
- Phone logs upload to a place Codex can inspect.
Evidence required:
cloud:mobile-bridge:check.- Stable Worker URL saved in command center.
- R2 APK object saved.
- Phone self-test evidence ingested.
- Hosted update proof with stable domain.
Execution Roadmap
Phase 0: Truth Reset
Status: now.
Deliverable:
- This roadmap is the source of truth.
- Version bumps are frozen unless tied to app behavior proof.
- Hosted alpha proof must be refreshed when local APK hash changes.
Acceptance:
test:true-roadmap.test:product-roadmap.test:deployability-preflight.
Phase 1: Usability Recovery Build
Status: highest priority.
Deliverable:
- One-buddy Android and desktop app with reliable hide/show/close, transparent overlay, typed chat, and honest mic state.
Acceptance:
- Emulator proof.
- Desktop proof.
- Physical phone proof or phone self-test log.
- No duplicate-buddy state in support logs.
Phase 2: Physical Phone Evidence Loop
Status: next.
Deliverable:
- Installed phone can send redacted self-test logs automatically or from a button.
- Codex can read those logs without relying on screenshots.
Acceptance:
mobile-phone-self-test-evidence.jsonchanges fromNO_PHONE_SELF_TEST_LOGto a real physical-phone result.- The command center lists exact failed checks and next actions.
Phase 3: Phone Action Build
Status: after Phase 2.
Deliverable:
- NyrA can perform allowed phone actions and records exact action results.
Acceptance:
- Physical phone self-test shows at least five successful actions.
- Android restricted permission failures are reported clearly.
Phase 4: Real Swarm Build
Status: queued after basic UX is stable.
Deliverable:
- Captain/Crew model routing visible in the app with provider choice and fallback proof.
Acceptance:
- Each configured provider can be tested.
- UI shows available providers and chosen provider.
- Provider failure does not kill chat.
Phase 5: Stable Hosted Build
Status: blocked on stable cloud setup.
Deliverable:
- Stable mobile bridge, durable APK hosting, stable update manifest, cloud support logs, and customer-safe auth.
Acceptance:
- APK no longer points at a temporary tunnel.
- Shared alpha token is removed from customer builds.
- Phone logs arrive in the command center without screenshots.
Phase 6: Paid Beta Readiness
Status: hold.
Deliverable:
- Signed/store-trusted release, support/legal/privacy, Stripe, billing backend, customer portal, and final current screenshots.
Acceptance:
- Release candidate preflight has zero P0 blockers.
- Deployability is no longer
NO_GO_LIVE_MONEY. - A non-developer tester can install, launch, use, update, and export diagnostics.
Immediate Engineering Work
- Refresh hosted alpha only after confirming the local alpha75 APK is the intended build.
- Verify alpha75 Hide Bot / Show Bot behavior on emulator.
- Capture alpha75 screenshots for hidden recovery, restored buddy, panel open, and hidden state.
- Update visual inventory from alpha74 to alpha75 only after screenshots prove the behavior.
- Rebuild desktop evidence after the alpha75 UI patch.
- Run the physical-phone self-test path and ingest the uploaded log.
- Fix the first actual physical-phone failure from that log.
- Only then continue phone-control and voice/listening work.
Owner Split
Codex owns:
- Code fixes.
- Test scripts.
- Emulator verification.
- Desktop verification.
- Hosted alpha checks.
- Command-center evidence ingestion.
- APK and desktop builds.
- Turning phone logs into actionable bug fixes.
User owns:
- Installing the APK on the physical phone.
- Granting Android permissions that the OS requires manually.
- Providing screenshots only when the app cannot upload logs.
- Supplying stable cloud/account secrets when cloud deployment is ready.
Bottom Line
NyrA is an internal alpha prototype with some useful infrastructure and a failing user experience. The path forward is not another version bump. The path forward is a tight recovery build that proves the buddy is visible, transparent, controllable, able to chat, able to upload logs, and able to act on the phone and desktop.