Files
fileworkbench/docs/VALIDATION.md
T
zemion db873063f8
Verify source and build Android / android (push) Canceled after 0s
initial commit v 0.2.0
2026-09-24 22:49:27 +02:00

4.3 KiB

Validation — Fileworkbench 0.2.3

Date: 2026-09-24. Complete diagnostic source release; no verified APK supplied.

Scope and provenance

The shipped 0.2.2 source ZIP was extracted into a fresh working directory. The previously supplied SAF-D1 diagnostic changes were applied there and incorporated into this complete project. The current source retains the earlier PDF lifecycle and nullable-cursor-result corrections. Gradle is pinned to 8.14.5; the daemon, module toolchains and bytecode targets select 17. Root plugin aliases are distinct.

The user still reports the folder-listing failure. No subsequent device trace has established its cause. This release instruments that failure; it does not claim to fix it. A versioned footer identifies the diagnostic source, and a genuinely null query cursor has the distinct [SAF-D1/NULL_CURSOR] message.

Executed checks for this source

Check Result Boundary
Common core + JVM adapter suite 112/112 passed Local Kotlin compiler; not Gradle/Android compilation
Actual production listing block + diagnostic harness 16/16 passed Real shared models and Android test doubles; no Binder/real provider/permission validation
Build-configuration invariants 18 passed Static pins/aliases/hashes/markers, not Gradle plugin resolution
Build-guard regression cases 8/8 passed Accepts the baseline with local SDK/IDE files; rejects wrong Gradle/JVM, duplicate plugin aliases/IDs and stale shell/Windows bootstrap tags
Kotlin PSI syntax 44 files, zero parse errors Includes Kotlin source and Gradle Kotlin scripts; no Android/Compose/Gradle type resolution
Existing project/XML/security invariants Passed Permission-free main manifest, isolated PDF service, read-only picker boundaries, portable core, prior PDF regression guard
Shell syntax Passed Bash/sh syntax only; PowerShell not executed
Android build attempt Blocked before Gradle/Android compilation Wrapper fetch: curl: (6) Could not resolve host: raw.githubusercontent.com
Device/emulator tests Not executed here The test sources are retained; no device is attached
iOS build/tests Not executed here Core architecture retained; no iOS shell added

The local host has OpenJDK 21.0.11 and kotlinc 1.9.0, not JDK 17 or the project's Kotlin 2.2.21 toolchain. The host harnesses now emit JVM-17 bytecode but run on that local JVM 21. Do not interpret their results as a JDK-17 Android build. The actual Gradle configuration requests an installed JDK 17; no JDK-21 fallback has been added to the project. No Android SDK or downloaded wrapper is available in this authoring runtime.

The full Android command was attempted using the newly pinned launcher. Its bootstrap failed before the settings guards or compiler could run. No APK or successful Gradle sync is claimed. The network-dependent bootstrap fallback and Windows PowerShell bootstrap remain unexecuted here.

Raw evidence for this release is under validation/0.2.3/. Previous results retain their versioned paths; the old report is preserved as VALIDATION-0.2.2.md. Old BUILD_ATTEMPT.txt/test outputs elsewhere in docs are historical, not new results.

Packaging checks

The full archive is assembled from this source tree, excluding out, build caches, local IDE/SDK state, keystores and generated test JARs. Prior source modules, resources, fixtures, licence, documentation and examples remain present. It ships no APK, wrapper JAR, JDK or Android SDK. The first wrapper invocation bootstraps the verified external JAR. See SOURCE-MANIFEST.sha256 for per-file integrity hashes and validation/0.2.3/archive-checks.txt for extraction/integrity checks.

Reproduce host checks

python3 scripts/check-project.py
python3 scripts/test-build-config.py
bash scripts/test-core.sh
python3 scripts/test-folder-listing.py
bash scripts/check-kotlin-syntax.sh

Next local acceptance step

Follow BUILD.md: fresh extraction, installed JDK 17, wrapper Gradle 8.14.5, SDK 36, then tests/assembly/lint. Install the resulting APK with the existing signing identity, confirm Fileworkbench 0.2.3 · Browser diagnostics SAF-D1 in Browse → Locations, and reproduce the folder problem. Preserve the existing app data. Capture the full new error instead of inferring permission or provider failure from the earlier ambiguous wording.