No description
- Kotlin 100%
- Switch build from kotlin("jvm") to kotlin("multiplatform"), adding
macosArm64, macosX64, and linuxX64 native targets alongside JVM
- Add okio:3.9.1 and kotlinx-datetime:0.6.1 as common dependencies
- Introduce platform abstraction layer (expect/actual) under
src/*/kotlin/uk/kagurach/ai/platform/:
- FileSystem.kt: homeDir, readFile/writeFile/appendFile, mkdirs,
listSubDirs, deleteFile/deleteRecursively, copyRecursively, chmod644/755
- Process.kt: runProcess, spawnDetached, currentExecutablePath
- System.kt: currentPid, isProcessAlive, killProcess, addShutdownHook,
nowFormatted, printError
- JVM actuals use java.io.File, ProcessBuilder, ProcessHandle, LocalDateTime
- Native actuals use okio FileSystem, POSIX popen/kill/signal, kotlinx-datetime
- Move src/main/ → src/commonMain/ and refactor all sources to use platform
abstractions instead of JVM-only APIs
- Native daemon re-spawn uses spawnDetached(currentExecutablePath(), ...)
resolving the binary via /proc/self/exe (Linux) or PATH fallback (macOS)
- Release binary: 3.7 MB self-contained executable (no JVM required)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
||
|---|---|---|
| .idea | ||
| gradle/wrapper | ||
| src | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| settings.gradle.kts | ||