Das Repository bildet einen autonomen Entwicklungsagenten mit Android-Frontend, lokalen Workspace-Services und Laufzeit-Bridge für lokale Prozesse, LLM-Checks und Build-Orchestrierung ab.
Die aktuelle Stabilisierung umfasst eine harte Initialisierung des Workspace unter /werkstatt, robustes JSON-Handling für memory.json, logische Schutzmechanismen gegen beschädigte Dateien und fehlende Verzeichnisse sowie einen defensiven Prozess- und UI-Update-Flow für Terminal und Build-Ausführung.
Die App enthält aktuell 6 Tabs:
- Dashboard
- Dokumentation
- Terminal & Exec
- Dateibaum & Code-Editor
- AppBuilder Pipeline
- Memory & Gedächtnis
Die Workspace-Initialisierung sichert automatisch die Ordner src/, logs/, appbuilder/ und build/ unter /werkstatt.
- App-Start mit
File.mkdirs()und strukturierter Workspace-Erzeugung - Terminal-Ausführung im Arbeitsverzeichnis
/werkstatt/src/ - Echtzeit-Output an das TerminalFragment
- FileTree mit
FileObserver-Refresh bei Dateiveränderungen - Direktes Lesen/Bearbeiten von Dateien aus dem Workspace
- Build-Status und Artefaktliste für AppBuilder
memory.json-CRUD mit direktem UI-Handlingstate.json- undCHANGELOG.md-Synchronisationlogs/agent.logundlogs/terminal_exec.logals Laufzeitprotokolle
app/src/main/java/de/xrdoge/agent/ui/MainActivity.kt– Tab-HostWorkspaceService.kt– Initialisierung, Status, Logs, Memory, StateTerminalExecService.kt– Shell-Ausführung mit Live-OutputAppBuilderService.kt– Build-Schleife mit Status- und Artefakt-FeedbackFileTreeFragment.kt– Dateibaum mit ObserverMemoryFragment.kt– JSON-CRUD für Speicher-EinträgeAgentRuntime.kt– Laufzeit-Container mit LogStream, Router und EngineLocalSocketBridge.kt– lokale Process-/Socket-FunktionenUniversalTaskEngine.kt– generierte Projekt- und Doku-Suite
Der Standard-Workspace ist:
/werkstatt
mit Unterordnern:
src/logs/appbuilder/build/
Darüber hinaus werden persistente Metadaten und Dokumentationsdateien verwaltet:
manifest.jsonstate.jsonmemory.jsonREADME.mdARCHITECTURE.mdPROJECT_OVERVIEW.mdCHANGELOG.md
- Benutzer wählt im Dashboard eine Aufgabe und Parameter.
- Die App validiert und initialisiert den Workspace.
- Terminal-Befehle erfolgen im
/werkstatt/src/-Ordner. - Ausgabe und Status werden in Logs und
state.jsongeschrieben. - Dateisystemänderungen werden über
FileObserverim FileTree erkannt. - Anpassungen an
memory.jsonwerden direkt im Memory-Tab persistiert. - Build-Skripte werden im Background-Thread gestartet und die Artefaktliste aktualisiert.
Das Repository unterstützt jetzt ein hybrides Setup:
- Native Termux ist der primäre Build-Host für Java/Gradle/SDK/Cache.
- Proot-Debian bleibt ein kompatibler Fallback für isolierte bzw. Debian-spezifische Befehle.
Native Termux-Variante:
chmod +x termux_native_setup.sh
./termux_native_setup.shDamit wird direkt in Termux ein passendes JDK 21, Android SDK und die Laufzeitvariablen (JAVA_HOME, ANDROID_HOME) vorbereitet. Anschließend wird der echte Android-Build mit reduzierter Parallelität und stabilen Gradle-Flags gestartet.
Proot-/Debian-Variante:
chmod +x setup_host.sh
./setup_host.shDas Skript erstellt automatisch den kompletten Workspace unter /werkstatt/ mit den erforderlichen Ordnern src/, logs/, appbuilder/ und build/. Zusätzlich werden die Fallback-Metadaten manifest.json, state.json und memory.json validiert bzw. bei Bedarf neu generiert. Danach werden gradlew und alle internen Build-Skripte mit chmod +x freigegeben.
Für den ARM64-/Android-Build gilt der harte Standard:
./gradlew clean assembleDebug --no-daemon --stacktrace --max-workers=1 \
-Dorg.gradle.daemon=false \
-Dorg.gradle.parallel=false \
-Dorg.gradle.jvmargs='-Xmx1g -Xms256m -Dfile.encoding=UTF-8 -Dcom.android.build.gradle.internal.aapt.Aapt2Daemon=false'Die gradle.properties aktivieren dabei dauerhaft:
org.gradle.daemon=falseorg.gradle.parallel=falseorg.gradle.workers.max=1org.gradle.jvmargs=-Xmx1g -Xms256m -Dfile.encoding=UTF-8 -Dcom.android.build.gradle.internal.aapt.Aapt2Daemon=false- valider
android.aapt2FromMavenOverridenur, wenn eine echte lokale AAPT2-Binärdatei vorhanden ist
Damit werden Build-Abbrüche in restriktiven ARM64-Umgebungen unterdrückt und das native Lib-Verzeichnis app/src/main/jniLibs/arm64-v8a sauber eingebunden.
.
├── README.md
├── ARCHITECTURE.md
├── PROJECT_OVERVIEW.md
├── CHANGELOG.md
├── manifest.json
├── state.json
├── memory.json
├── app/
│ └── src/main/java/de/xrdoge/agent/...
├── native/
├── laufwerk/
├── dokumentation/
├── build.gradle.kts
├── settings.gradle.kts
├── gradlew
└── build_apk.sh
Die UI-Integration wurde in den relevanten App-Klassen ergänzt. Ein lokaler Gradle-Aufruf wird in der aktuellen Sandbox durch ein Android-Toolchain-Problem blockiert:
- AGP
com.android.application:8.7.3konnte im aktuellen Runner nicht aufgelöst werden
Das betrifft die build-Umgebung, nicht die Architektur der eingebauten UI- und Workspace-Komponenten.
- Dashboard-Parameter für Ollama-URL, Modell, Iterationen, Provider und TTL aktualisieren
- Task und Arbeitsverzeichnis im Dashboard eingeben
- Terminal-Befehle über das Terminal-Tab ausführen
- Dateibaum-Dateien anklicken und Inhalte lesen oder editieren
- Status des AppBuilder anzeigen lassen
- Memory-Einträge direkt verwalten
ARCHITECTURE.mdPROJECT_OVERVIEW.mdCHANGELOG.mddokumentation/