This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user