One app, two machines
Side by side
Aegion is one codebase. The laptop adds a heavy engine beside it. The phone adds a background trainer and the radios.
| Laptop | Tank 3 Pro | |
|---|---|---|
| App | Aegion via ./aegis, plus classic GTK | Aegion APK 0.2.3 |
| Library | DuckDB, full text | SQLite pack, plus whatever has been saved on the device |
| Voice out | Kokoro | The phone’s speech engine |
| Voice in | Vosk and Artemis. The on-screen keyboard dictates with the open recognizer. | The system recognizer, where the build allows it. The keyboard does not dictate. |
| Learning in the background | Curiosity thread inside the backend service | Shield of Zeus foreground service |
| Signal Walk | Viewer | Recorder and map |
| Guardian scan | Read-only, Linux only | Hidden |
| Keyboard | On-screen window: emoji, saved emails, mic dictation, above the top search | System keyboard 1.4: emoji, GIFs, photos, saved emails |
| Internet | Often the phone, through the proxy switch | The hotspot or the tether |
| Shared archive | Can host server/ | Downloads facts, and may contribute item ids if you agree |
What stays in step
Question wordings live in one catalogue, assets/intent_phrases.json, and both sides load it. The phone’s fact and definition parsing is copied from the laptop and has to be updated on both sides. The archive’s PHP checker is a port of the phone’s curiosity check, and the test vectors are generated from the Python so they cannot drift quietly.
What is deliberately not merged
Personal documents, the PHP games, CoreDefense, and the agentic analyzer stayed out. Duplicate zip folders were listed and not deleted. The fact archive and the GIF catalog are different servers on purpose: one stores checked facts, the other only lists a few silent GIF files.
Linking them
Settings, Laptop link, Sync now. Teachings move both ways. A taught answer always wins. Walks go from the phone to the other device. The knowledge pack is saved beside the app and preferred when it is newer than the copy baked into the APK. The pairing code is on the Handshake settings tab. The backend still binds to localhost until you change the service to listen on the LAN.