Skip to content

[WP02 · SubStep 02.04] Android build identity and CI reduction - #9

Merged
deku2026 merged 11 commits into
mainfrom
codex/wp02-04-version-identity
Sep 21, 2026
Merged

deku2026 merged 11 commits into
mainfrom
codex/wp02-04-version-identity

Conversation

@deku2026

@deku2026 deku2026 commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Add Android build information with nine independently sourced version axes, keeping app version/versionCode, Contracts schema identity and runtime package versions separate. Diagnostics read the packaged source/run-bound report offline without invoking Cloud.

Apply accepted Design P2-017: remove API26/36 emulator and public-upgrade matrices, debug/test APK promotion, disposable signing, duplicate security invocation, repeated offline restore and archive rescans. Windows/Linux compilation, offline shared/tooling tests, lint, single security scans and the original release APK/AAB with permanent signing remain. Transport/device/public-download helpers are local opt-in. Active docs and AGENTS match the pipeline; historical admissions/evidence stay immutable.

Validation: 56 Python tests passed, repository/provenance and YAML dependency checks passed. r6 retains r5 resource/input rules; only the verifier recipe and promoted archive set change. Earlier recorded local Android diagnostics are historical; this CI reduction does not rerun devices or claim public installation/upgrade coverage. Required latest-head reduced CI must pass before merge. Post-merge checks stop at merge/build/publication status and primary fast-forward.

@deku2026 deku2026 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Full review completed at 8458218 against main 9d0ca5b. No unresolved findings.

Reviewed all source, runtime UI, generator, catalog, independent candidate checks, signing/public companion paths, device readback, workflow, licensing and documentation changes. The r5 profile preserves all r4 fixed/compiled resources, 122 input archives, original source mappings, exclusions, R8 settings and dependency-table expectations; only one identity asset per archive and its source recipes are added. Existing immutable records remain intact. Dependency locks and signing identity are unchanged.

Findings fixed before this review: Windows UTF-8 label conversion in the device helper; test environment fixture accidentally removing PATH; the CodeQL Android compilation entry point requiring the same CI version allocation. The obsolete first PR run is retained and superseded, not treated as acceptance.

Verified locally: 56 Python tests; all nine synthetic producer mutations affect only their own axis; wrong/missing/aliased sources and resealed metadata fail; full Windows formatting, Kotlin/JVM tests and Android lint; release/debug/test APK and AAB independent archive verification at this exact clean source; actual API 36 installed minified release diagnostic view matches source/build/epoch/all nine axes/report digest, followed by one real Cloud Hello request. Local signing is explicitly disposable, separate from protected public signing. No WSL wrapper, explicit proxy, vcpkg install or dependency upgrade was used.

Merge remains gated on all applicable latest-head CI, including API 26/36 actual devices and Kotlin CodeQL. After merging, main publication and actual public APK upgrades must pass before the substep is closed.

@deku2026 deku2026 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Full PR review repeated at 67eb6eb. No unresolved findings; all previous source, provenance, independent version, archive/signing and CI conclusions were rechecked against the complete current diff.

The first completed run exposed an API 26 focus interaction: closing the diagnostic dialog restored the input field/IME, covering the test's greeting tap. The retained screenshot still showed Ready to connect; the earlier five instrumentation tests and identity readback had passed. Opening diagnostics now clears Compose text focus before showing the native dialog. A sixth device regression explicitly starts with focused input and proves diagnostics clears it while making zero greeting calls. No RPC retry or timeout relaxation was added.

At this exact clean head, Windows full formatting/Kotlin/JVM/lint/all-four-archive build and independent resource/identity verification passed. The existing API 36 emulator, run read-only at a 320x640 small-screen configuration, passed all six instrumentation tests. The actual minified release APK then displayed the correct build identity and received Hello, World! after a single user action. Its embedded report equals the independently verified archive companion.

All original resource, dependency, licence and signing constraints remain enforced. The older failed run and its screenshots are retained. Merge still requires all latest-head CI, specifically the API 26 and 36 device jobs. Main publication and public APK upgrade verification remain mandatory afterward.

@deku2026 deku2026 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Complete current-diff review at 97ef9d1: no unresolved findings.

The API 26 native-window return required an explicitly touch-focusable non-input target. Clearing Compose focus alone left the framework free to restore the editable field. The final implementation focuses the diagnostic entry before showing the dialog, and the regression now asserts that target retains focus while the greeting callback remains unused. The unhelpful window-input flag experiment was not retained. No transport retries, deadline changes or test bypasses were introduced.

Before pushing this head, the existing local API 26 and API 36 images both passed all six instrumentation tests and the unmodified device-smoke flow against the actual minified release APK. Each installed APK read and verified its complete sealed identity, then returned Hello, World! after one user action. API 26 manual input still opens its keyboard normally. All four APK/AAB resource, notice and independent identity checks passed at this exact clean commit; the full Windows formatter, Kotlin/JVM tests and lint passed too.

All previously reviewed source catalogs, Apache reuse admission, immutable resource profiles, signing/publication boundaries, dependency locks and CodeQL version allocation remain unchanged. Both failed remote API 26 attempts and their screenshots are retained, and neither counts as acceptance. Latest-head CI must still pass before merge, followed by main publication and actual public upgrade verification.

@deku2026 deku2026 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Full current-diff review repeated at 80b40ad. Application, build identity, provenance and signing implementation bytes remain identical to the locally verified 97ef9d1 runtime; only the Security PR trigger and its documentation changed.

The complete CI at 97ef9d1 passed both OS builds, all six device tests and minified runtime checks on API 26/36, plus every reusable security job. The final check-rollup audit correctly blocked merge because GitHub's separate CodeQL check reported NEUTRAL: main's three standalone security.yml analysis configurations were missing on the PR. API inspection confirmed these are distinct from ci.yml's three reusable configurations. Adding the existing standalone workflow's pull_request trigger supplies the missing analyses automatically while retaining every existing configuration and the CI publication gate. No security result/history was deleted or bypassed.

All source, archive, runtime and licence findings remain resolved. Merge requires both current-head workflows and the separate CodeQL comparison to pass; main publication and actual public upgrades remain mandatory afterward.

@deku2026 deku2026 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Full current-diff review repeated at 5bd4667, including the final instrumentation-only correction and documentation. The prior API 36 failure retained eight successful direct Cloud protocol calls but its UI tree showed the IME-resized layout and no greeting invocation. The test now waits for the keyboard state, dismisses it through the existing platform API, waits for the hidden state and asserts the scrolled button is displayed before one click. No production input, transport, timeout, retry, resource oracle or dependency changed. The initial default-IME-action probe failed locally and was not committed.

Both existing local API 26/36 emulators passed all six tests with the final test code. Formatting/test compilation and all 56 Python tests passed. Production runtime bytes retain the previously verified 97ef9d1 local evidence, while hosted CI will build the exact current source identity. All prior source, licence, immutable provenance, candidate, signing and CodeQL findings are resolved. No outstanding finding; merge still requires every latest-head CI/security/CodeQL check to pass, followed by actual main publication and public upgrade/readback verification.

@deku2026 deku2026 changed the title [WP02 · SubStep 02.04] Seal Android build identity and verify installed diagnostics [WP02 · SubStep 02.04] Android build identity and CI reduction Sep 21, 2026

@deku2026 deku2026 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the complete CI reduction at 6c9102b, including an independent review. No outstanding code findings: the promoted candidate contains only release APK/AAB, r6 preserves prior immutable resource admissions, the signing handoff retains source/run/integrity and permanent certificate continuity, and no emulator/live/public-install job remains. 56 offline Python tests, repository/provenance and YAML dependency checks passed. Awaiting retained latest-head CI; compilation/publication is not device acceptance.

@deku2026 deku2026 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the final two-file fix at 21d56bb, independently confirmed: licence staging shares the release APK/AAB inventory, fixtures no longer create debug/test archives, and the retained native-payload tampering check targets the release APK. All 12 relevant tests passed. Earlier full reduction review remains applicable; no outstanding findings. Merge waits for all retained latest-head build/security results.

@deku2026

Copy link
Copy Markdown
Contributor Author

Final coordinator review: root completed the full source/documentation review, with independent review of the candidate/signing/resource-profile boundaries and final release-only licence-inventory fix at 21d56bb. No actionable findings remain. The 56-test offline tooling suite and 12 relevant licence tests passed locally. Windows/Linux builds, retained security jobs, Verify and aggregate CodeQL are now successful at this exact reviewed head. Only the three obsolete empty main security.yml baselines were retired after exact identity assertions; current categories and PR history remain. Authorized to merge with branch/worktree retained, followed by main publication status only.

@deku2026
deku2026 merged commit 56f815a into main Sep 21, 2026
10 checks passed
@deku2026
deku2026 deleted the codex/wp02-04-version-identity branch September 21, 2026 22:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant