This file serves as a persistent record of the project's progress, ensuring context is preserved across AI sessions.
Milestone 2: Language Intelligence & Native Toolchains
- Native SWC Integration — compiled
aarch64-linux-androidbinaries, patched with$ORIGINRUNPATH logic for Next.js. - PtyBridge Symlinks — automated SWC symlink creation in
node_modulesafter npm runs. - Multi-arch APK splits —
arm64-v8a,armeabi-v7a,x86,x86_64.
- LSP Client Completion — prefix backtracking to prevent duplicate text insertion.
- Syntax Highlighting — red/orange underlines driven by LSP diagnostics.
- Multi-Tab Polish — suggestion cleanup on tab switch and closure.
- Python LSP (
pylsp) — zero-config background pip install with--no-depsworkaround for ujson. - LSP path bug fix — corrected
projDirto useprojectsRootso ProcessBuilder starts in the correct project directory.
-
installCppToolchain()— on-demand download of Clang 21.1.8 + 6 dependency packages from Termux repositories. - Pure-Java XZ decompression — replaced broken
tar -xJf(no systemxzon Android) withorg.tukaani:xzXZInputStreamin Java, thentar -xfon the plain.tar. - Symlink-aware
copyDirContents()— usesjava.nio.file.Files.isSymbolicLink()+Files.createSymbolicLink()to handlewindres → llvm-windresand other symlinks in the clang package. - Concurrency guard —
isInstallingCppsynchronized flag prevents multiple parallel download coroutines. -
tarexit-code check — throws with full output if extraction fails, ending the silent-failure loop. -
BinaryManager.markToolInstalled("clang", "21.1.8")— skips VersionChecker (clangd can't self-exec in the Android sandbox); writes active version to prefs and rebuilds wrappers. -
clangdLSP startup — fullstartNativeLspflow for.c/.cppafter toolchain install completes.
Phase 6 — Polish & Stability
- Verify
clangdautocomplete end-to-end after toolchain extraction completes on real hardware. - Add
compile_commands.jsongeneration support soclangdresolves project-specific include paths. - React Native support.
- Flutter support.
| File | Purpose |
|---|---|
viewmodel/TerminalViewModel.kt |
LSP lifecycle, process orchestration, toolchain installation |
bridge/BinaryManager.kt |
Binary download, extraction, versioning, wrapper scripts |
lsp/LspClient.kt |
JSON-RPC STDIO bridge |
lsp/LspTypes.kt |
LSP data classes |
ui/IDEView.kt |
Editor UI, autocomplete dropdown |
app/build.gradle.kts |
Dependencies (incl. org.tukaani:xz:1.10 for C++ install) |
| Dependency | Version | Reason |
|---|---|---|
org.tukaani:xz |
1.10 |
Pure-Java XZ decompression for Clang .deb packages |
com.google.code.gson:gson |
2.10.1 |
LSP JSON-RPC serialization |
| Node.js | v25 | JS/TS/HTML/CSS/JSON/Bash LSPs |
| Python | 3.13.13 | Python runtime + pylsp |
| Clang/clangd | 21.1.8 | C/C++ compiler + LSP |