fix: harden updater, Android configuration and signed release delivery - #3
Draft
649472774 wants to merge 8 commits into
Draft
fix: harden updater, Android configuration and signed release delivery#3649472774 wants to merge 8 commits into
649472774 wants to merge 8 commits into
Conversation
Align AGP built-in Kotlin and Compose plugins, use supported AndroidX versions, add WebKit and Compose test dependencies, restore lint failures, and exclude credential stores from cloud and device backups. Preserve the existing app version and debug package identity. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep non-streaming body reads off the caller thread, close responses across callback cancellation races, and cancel the underlying socket through response consumption. Add readiness-gated proxy clients without invalidating live dispatchers and controlled HTTP lifetime regressions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add generation-safe auth and verified no-backup credential migration; typed cached model discovery without retired fallbacks; SSE error/completion framing; atomic session snapshots, backups, tombstones, summary cache and bounded inactive state. Add content-addressed attachment references, bounded coherent prompt history with retained vision, durable send receipts and awaited UI action APIs. Preserve v0.1.33 JSON and existing public adapters for coordinated UI integration. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve queued stream deltas before errors, join concurrent logout operations, scope catalog and submissions to account generations, reject changed idempotency payloads, and keep orphaned replies out of unrelated prompt turns. Harden proxy and attachment boundaries and no-follow atomic writes. Add complete regression discovery coverage, portable real-DataStore JVM fixtures, and isolated default-Android-backend plus Keystore instrumentation cases; production key alias and DI defaults are unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use the published OkioStorage and PreferencesSerializer APIs for token/proxy JVM migration fixtures. createWithPath also selects FileStorage under DataStore 1.1.7 and retains the Windows temp-file replacement bug. Keep all persistence assertions and native default-backend instrumentation unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use full-response cancellation and initialized proxy-aware transport, bounded trusted release downloads, SHA-256 verification and atomic private cache files. Check actual APK package, version, Android requirements and current signer identity before handing control to the system installer. Serialize update operations, retain truthful retry/permission states, and wire shared proxy readiness and model catalog DI. Add controlled JVM and Android fixture coverage without touching a live account or device. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve the existing public debug signing identity and fail on native command errors, dirty sources, wrong SDK/package/version/certificate, and ambiguous devices. Separate version preparation from committed-source builds, keep prior APKs and rollback history, generate checksums/source provenance/release notes, and make installation/copy/push opt-in. Label ephemeral CI packages as validation-only, enforce quality gates, and replace stale maintenance guidance with current architecture and migration rules. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add a read-only native fixture that validates explicit marker/path/hash/version arguments before file IO, restricts the candidate to private updates cache, and exercises the real APK verifier for code35 while code34 remains installed. No production/version/device changes, downloads, installations, cleanup, or credential access. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Release infrastructure lane for the coordinated overnight upgrade. Version remains 0.1.33 / code 34; no main merge, device install, signing-key replacement, or GitHub Release publication is included.
.debugapplication identity.Integration dependencies
Owned checkpoints:
8a128d0(shared configuration),2922e70(updater/DI),d037cb7(signing/delivery/CI/docs).This branch also adopts core-owned prerequisites without independent core edits:
93aa260cadd321da66b99c90f4d97371ff0eaaaa48986614939e4546Integration should deduplicate these prerequisites and apply the owned checkpoints above. The stable DataStore 1.1.7 Windows/JVM rename regression is addressed with explicit real Okio-backed JVM fixtures, not skipped assertions or a production dependency downgrade. Native production-factory/real-Keystore fixtures are retained.
Evidence and remaining acceptance
assembleDebug,assembleDebugAndroidTest, strictlintDebug: passed; lint has 0 errors.release.ps1 -SkipBump -SkipInstall -SkipCopy: passed and produced a local bundle; no deployment or publication occurred.89dbef99c2c81eb48b0bf28dd698631ffcdf8ad7cbb4dac9960914096e68928b(matches recorded published/local baseline).69f2830283b81fefbdd036212da34a25855370ad3f5f598f5fb7604244b1ea2c.Integration owns device execution and milestone publication. Seven isolated Android cases are ready: 3 APK archive rejection cases, 2 large-font cancellable update-dialog cases, and 2 core real-backend credential migration cases. No live account testing is claimed.