Files
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

76 lines
4.3 KiB
Markdown

# 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
```sh
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.