Documentation archive · Archivo de documentación
Original recorded source; its language and historical claims are preserved. Download original file
# Evidencia de Koru 0.2.0-dev Resultados obtenidos el 2026-10-13. Los archivos son salidas reales; no fixtures que simulen ejecución Android. Herramientas oficiales solo se usan en QA, fuera del build normal. Este informe conserva las mediciones y salidas capturadas antes del cambio a Cobra. Después se añadió Cobra exclusivamente al CLI; la suite actual `go test ./...`, `go vet ./...` y `go test -race -count=1 ./...` volvió a pasar. Los porcentajes de cobertura y snapshots CLI de abajo no incluyen ese cambio. ## Compilador y toolchain - 114 casos/subcasos Go aprobados en 16 paquetes: go-tests.jsonl. - Cobertura medida: 74.2% global, incluyendo CLI/validadores nuevos: coverage.txt. - El lector de string pools limita coste decodificado a 64 MiB, contabilizando cada referencia y unidades UTF-16; evita amplificación por offsets compartidos. La prueba adversarial y el APK byte a byte inalterado están registrados. - go vet y go test -race: sin errores, vet.txt y race.txt. - Node: 2 pruebas del protocolo aprobadas, js-tests.txt. - JNI C: referencias y attach/detach comprobados con tabla controlada, native-unit.txt. - Fuzz AXML/ARSC/firma: sin fallos en campañas registradas. Se conserva también la campaña XML inicial de solo 12 ejecuciones; estas campañas cortas no representan exploración exhaustiva. Ver fuzz-*.txt. - dexdump, aapt y apksigner oficiales aceptan salida propia: official-tests.txt. - Binario Linux estático CGO=0, trimpath y buildvcs=false para reproducirlo desde una entrega sin metadata Git. Build con PATH vacío y APK byte a byte idéntico: offline-isolated.txt. El build no descarga herramientas ni lanza subprocesses. - Compilación cruzada, sin ejecución en otros hosts: host-portability.txt. ## Android real Emulador oficial, Android 11/API 30, x86_64, imagen default r11. Ejecución software sin KVM. Se instalaron y arrancaron APKs generados por Go, y se actualizaron con la misma identidad. El certificado de las muestras es bfee8015a6fbf4e44d5ac5f01d59470a08e33ea3534b5da1e3cbe82da6f719f5. La clave privada no se distribuye. - android-smoke.json: origen HTTPS local, HTML/JS/CSS/SVG, módulo ES, errores estructurados, dispositivo/app/storage/vibración/notificación y native.info JNI en el hilo principal. Red Wi-Fi y datos desactivados, sin permiso INTERNET. - android-back.json: navegación a second.html, Atrás a index.html y almacenamiento después de reinicio. WebView reemplaza el target DevTools al restaurar historial; la prueba se reconecta. Los logs back-diagnosis son fallos anteriores corregidos. - android-worker.json: service worker registrado y respuesta local offline. - android-keyboard.json: entrada real KoruKeyboard, IME visible y cierre con Atrás. La prueba se reconecta también cuando WebView reemplaza el inspector al redimensionar. - android-share.json: chooser nativo mostrado y cancelado, sin enviar a destinatarios. - external-navigation-result.json: navegación a un origen externo bloqueada. - demo-install/demo-launch: APK release portable instalado y Activity iniciada. demo-release-screen.png muestra CSS, SVG, JavaScript y Contador: 1 tras toque real. - wifi-state/mobile-state: ambos 0 en la prueba final. - storage-after-restart.json: valor conservado después de force-stop/nuevo arranque. - update-* registra instalación de versionCode 3 y conservación de datos con la misma firma. Los logs iniciales contienen fallos de desarrollo corregidos y diálogos de System UI durante el arranque del emulador. Las capturas first/controlled/all son evidencia histórica; la captura demo-release-screen corresponde a la entrega final. ## Medidas reproducibles benchmarks.txt (Linux amd64, AMD EPYC 9V74; resultado puntual): | Operación | Tiempo | Bytes/op | Allocations/op | | ---------------------------- | ---------: | ---------: | -------------: | | DEX mínimo | 6.414 µs | 3,926 | 70 | | Activity experimental mínima | 239.823 µs | 98,662 | 1,422 | | Build APK con caché | 11.602 ms | 13,266,993 | 6,266 | El benchmark Activity mide el experimento inicial, no todo el runtime con plugins. El APK release portable ocupa 22,852 bytes en esta muestra. El APK debug con JNI x86_64 tiene otro tamaño y no es una medición equivalente. bridgeMillis es una latencia puntual en emulación software, no una comparación de rendimiento. ## Límites de la evidencia La matriz ejecutada solo cubre API 30/x86_64. Faltan pruebas en hardware ARM, otros API y fabricantes, y del diálogo POST_NOTIFICATIONS de API 33+. El APK portable no incluye bibliotecas nativas y no impone una ABI, pero eso no equivale a haberlo probado en todas las arquitecturas. No se ha comparado con Capacitor. No implementados: firmas v3/v4, AAB, alarmas programadas, multidex, anotaciones DEX generales y análisis completo de tipos por registro. Los seis plugins iniciales usan framework/DEX; JNI es opcional y su prebuilt incluido solo es x86_64.