DejaVu 0.4.0 release validation¶
Status: passed
Validation date: September 9, 2026.
The implementation tested is commit b92a252815b25cd05e9d40654a2680fe7e38f666.
The final release commit adds only documentation, agent guidance, the passing validation record,
and release-workflow guards. No production code, test source, dependency, or compiler settings
changed after this full local run began.
Compatibility¶
- Compose Multiplatform 1.11.1; Kotlin 2.4.0; AGP 9.1.0; Gradle 9.6.0.
- Android baseline: BOM 2026.06.01, resolving Compose runtime 1.11.4.
- Android compatibility checkpoints: BOM 2026.05.00 and 2026.06.00.
- Minimum Compose line: 1.11. Compose 1.10 consumers remain on DejaVu 0.3.1.
- All six Maven publications: root metadata, Android, JVM, iOS arm64, iOS simulator arm64, WasmJs.
Local release suite¶
ANDROID_SERIAL=emulator-5554 \
DEJAVU_VALIDATION_DIR=build/release-validation/0.4.0 \
./test.sh --all-boms
-PrerunTests forces fresh JVM, iOS, Wasm, and Android unit execution while preserving compilation
caches. Each Android BOM resolves through enforcedPlatform, so newer transitive Compose versions
cannot silently replace the runtime being tested. Instrumentation ran serially on the selected device.
| Suite | Tests | Failures | Skips |
|---|---|---|---|
| Core JVM | 229 | 0 | 0 |
| Core iOS simulator arm64 | 229 | 0 | 0 |
| Core Wasm in Chrome | 229 | 0 | 0 |
| Experimental JVM | 20 | 0 | 0 |
| Experimental iOS simulator arm64 | 20 | 0 | 0 |
| Experimental Wasm in Chrome | 20 | 0 | 0 |
| Android unit per BOM | 27 | 0 | 0 |
| Android demo per BOM | 224 | 0 | 0 |
| Android experimental per BOM | 20 | 0 | 0 |
The suite also compiles every supported library target, builds Android test APKs and desktop/Wasm demos, checks public API snapshots, and runs Android lint. Test XML reports are preserved separately for each BOM in the validation directory above.
Environment and coverage limits¶
- macOS Apple Silicon; JetBrains JDK 21 toolchain; JVM bytecode target 17.
- Android Pixel 10 emulator, API 37, arm64, 16 KB pages (
emulator-5554). - iOS 26.5 simulator arm64 and headless Chrome for Wasm tests.
- Historical hosted Android API 26 and 31 jobs were not reproduced locally. This release records API 37 device coverage and does not claim a fresh pass on older Android device APIs.
- iOS device arm64 is compiled and packaged; UI execution uses the arm64 simulator.
- Off-screen lazy items must be brought into view before assertions. Non-Android multi-instance tag resolution can fall back to a shared function count; exact per-function ground truth remains the oracle where per-instance attribution is unavailable.
Additional verification¶
- Reproduced the previously excluded lazy-layout crashes on iOS/Wasm, fixed mutable inspection-set registration identity, and restored all eight lazy-row/grid tests on both targets (issue 21).
- Reproduced all seven Wasm diagnostic-message failures, fixed async result propagation and helper lifetime, and restored all seven tests (issue 22).
- An isolated deliberately failing Wasm canary suspended before failing. The runner reported the failure, confirming the async tests cannot pass by dropping their result. The canary was then removed.
:dejavu:publishToMavenLocal --no-configuration-cacheproduced all six publications.- A separate consumer project resolved
me.mmckenna.dejavu:dejavu:0.4.0from Maven Local and passed one packaged-artifact test on each of JVM, iOS simulator, and Wasm. The test suspends, verifies exact recomposition counts, and catches an expected budget assertion. The consumer includes Compose UI in its application source set so the Compose plugin supplies Skiko's browser runtime. actionlint1.7.12 checked the modified publishing/docs workflows; shell syntax andgit diff --checkpassed. Both updated agent skills passed the skill validator.
Passing local checks are the release gate under the approved CI budget policy. The publishing job uses this checked-in record and the exact tagged commit SHA instead of rerunning the hosted suite.
Publication tracking¶
All six target artifacts and their POM coordinates were verified publicly on Maven Central on September 9, 2026 at 16:24 UTC. The GitHub release was published at 16:25 UTC, and versioned documentation is live.
The upload workflow completed at 15:08 UTC while Central still reported publication in progress; the GitHub release remained a draft until the public artifact checks passed. The shared tracker contains social drafts; no social posts were sent.
Known integration limitation¶
Later packaged-consumer checks found that mixing Android rules and KMP helpers in one process
can hide inspection tables or leave tracing disabled in 0.4.0. Enabling tracking after activity
launch can also miss initial inspection registration. DejaVu 0.5.0 fixes these lifecycle paths
and verifies exact counts with independent SideEffect counters. The 0.4.0 GitHub release notes
record the mixed-harness limitation.