AkurAI Build
Menu

cosmic-mobile

public

Latest change d22956783f74f68f3d7eff1dd31f885aaf0fbe3e - Checkpoint BúiOS prototype and document clean-worktree workflow by AkurAI Build

# cosmic-mobile

## Worktree discipline
- BúiOS project topic: Telegram Heima 9677. Work inline; use repo-local `pm.py` tasks and tools.
- Start with `git status --short`, `./pm.py list`, and the matching task. Create new work before editing.
- Keep one active task and one writer per worktree. Main checkout must be clean at task/session boundaries, not during edits.
- Inventory inherited changes; preserve ownership. Never reset, clean, auto-stash, or ignore source to manufacture a clean status. Ask before including unrelated work.
- Before committing: inspect tracked and untracked diffs, scan for secrets without printing values, run `cargo test`, `python3 -m unittest discover -s tests -p 'test_*.py'`, `python3 test_pm.py`, `./pm.py validate`, and `git diff --check`. Check changed shell scripts with `sh -n`.
- Commit explicit paths, including corresponding task/memory updates. Runtime images, captures, caches and logs stay ignored. No automatic commits or pushes.
- Finish with `test -z "$(git status --porcelain=v1 --untracked-files=all)"`. Nonzero means unfinished cleanup: commit authorized work or report exact remaining paths; never claim clean.
- Interrupted work may be committed as an explicit checkpoint with tests and remaining acceptance recorded. A checkpoint is not a release; feature tasks stay active/blocked until their runtime contract passes.
- Runtime changes still require headed midget verification below. Documentation/checkpoint-only commits do not deploy or claim VM health. Disposable VM recovery: stop VM; restore prior launcher files when needed.

Experimental Rust mobile shell, not affiliated with System76 COSMIC.
Keep source and VM tooling here. Use QEMU/KVM with virgl; never touch physical phones.
Build on Titan; run emulator headed on midget's real desktop. Never use headless or Xvfb as delivery target.
Default host window: 450×900 on midget, GTK OpenGL with zoom-to-fit; retain 900×1980 guest resolution and scale 2. Use fit-window.sh on every launch.
Reject software renderers instead of claiming GPU acceleration. No fabricated device status.
Verify cargo tests, live VM interaction, renderer logs and screenshots. Runtime images/logs are ignored.
No migrations or managed-service deployment: disposable VM only; stop VM to recover.

Guest input: `ssh midget 'cd ~/Emulators/cosmic-mobile && python3 qmp.py tap 350 1475'`.
`qmp.py text 'Hello!'` types US-layout text; `key ctrl-a` sends chords. Default coordinate space is guest 900×1980, not host 450×900; `--size WIDTH HEIGHT` accepts a scaled guest screenshot. `batch` reads a JSON action array from stdin over one QMP connection. Validate with `python3 tests/test_input.py`. Unsupported text is rejected before input; no clipboard or Unicode injection yet.
Virgl screenshots use `emu.py shot NAME`, not QMP screendump (`no surface`). Wait for the resulting PNG before copying; bridge completion can precede image creation.