Skip to content

feat: deliver accepted Phase 1 v0.2.0 integration - #5

Merged
649472774 merged 24 commits into
mainfrom
649472774-phase-one-integration
Sep 7, 2026
Merged

feat: deliver accepted Phase 1 v0.2.0 integration#5
649472774 merged 24 commits into
mainfrom
649472774-phase-one-integration

Conversation

@649472774

@649472774 649472774 commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Phase 1 scope

Integrates the approved core, native UI, Remote WebView and compatible delivery workstreams. Phase 2 web-search/MCP agent implementation is deliberately excluded.

  • Complete HTTP cancellation, auth/session lifecycle consistency, durable session/attachment migration and a truthful typed model catalog.
  • Durable draft admission, bounded import/export/Markdown/LaTeX handling, accessible controls, stable manual scrolling and readable short-window/large-font input.
  • Retained Remote lifecycle with origin/proxy/cookie/renderer/IME/Back handling.
  • Android 16 configuration, secure credential migration, verified updater, pinned signing identity and safe release/CI provenance.

Related workstreams: #1, #2, #3, #4. Only owned checkpoints were cherry-picked; duplicate prerequisite histories were not replayed. All original 44 native cases remain, with an additional bounded five-recreation Markdown lifecycle regression.

Accepted implementation

Initial acceptance source: 1fe639e9d7792c937b80b1b09aa1d8f0494ff851.
Milestone source: 90c84a7ddea7b6f36c2ca609d541bdd0c077faec.

Gate Actual result
Integrated JVM suite 238 executed, zero failures/errors/skips
Strict lint Zero errors; 56 warnings remain
Initial native acceptance Complete 45/45 on API 31 and 45/45 on API 36
Physical UI Actual IME/System Back, full editable-region visibility, multiline retention, 200% type, 320dp portrait, short landscape and gesture-navigation evidence
Legacy data Three synthetic sessions/six messages/PNG, metadata and interruption state preserved through replace-install, migration, two reopens and cold restart
Real signed higher-version verification Passed on each API while code 34 remained installed
Signed code 35 replacement Installed in place on each API without uninstall/data clear
Post-upgrade native + golden preservation 46/46 on API 31 and 46/46 on API 36
Exact-source Linux CI Run 34093954057 succeeded

Signed artifact

CopilotGo-v0.2.0-debug.apk, package com.tongxie.copilotgo.debug, code 35, minSdk 31, targetSdk 36.

APK SHA-256: 47fb1867b87554844f9abcf5171b96e952be6524bbc077c018f2260a488c7022

Certificate SHA-256: 89dbef99c2c81eb48b0bf28dd698631ffcdf8ad7cbb4dac9960914096e68928b (same published v0.1.33 signer).

The persistent local bundle includes APK/checksums, source and device provenance, release notes and the acceptance report. The release script did not publish, install, copy to user destinations or push implicitly.

Evidence boundaries

Earlier preparation-seed and stock System UI ANR failures were preserved, not relabeled as passes; controlled baseline/environment repairs and complete reruns are documented. One old test-teardown SlotTable failure remains unattributed; isolated/pair/full runs and five-recreation regressions passed without a speculative renderer/BOM change.

No real user AVD, account, conversation, credential or signing-key replacement was used. No live SSO/model, exhaustive OEM picker or full spoken TalkBack audit is claimed.

Publication gate

Ready for the parent coordinator's final report approval. Do not merge or publish a stable release before that approval. Preserve rollback history. Final C:\Code\CopilotGo synchronization is a separate clean GitHub fast-forward step; absent legacy D: is not a blocker.

Tong Xie and others added 24 commits September 7, 2026 10:41
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>
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>
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>
Separate Remote browser state, navigation, network routing, transfers and page enhancements from Compose. Keep edge-to-edge permanent, apply native target IME insets, preserve detached documents and recover explicitly from renderer or memory loss. Gate WebView proxy transitions, await browser data clearing, and reject untrusted committed documents. Add focused callback-order, origin, proxy and hermetic device regression coverage. Device acceptance remains with the integration owner; no version or release changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Strengthen the hermetic IME fixture to measure the composer against Chromium's visual viewport before and after manual scrolling and keyboard Back. Check status/navigation icon appearance after returning to native UI, not only the physical WebView bounds. Production code is unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve Chinese-first Material 3 while making the composer, model selection, message actions, settings and files usable across narrow windows and large fonts. Persist bounded draft references before idempotent submission, keep rejected input, and route deletions through the core lifecycle.

Add selectable bounded asynchronous Markdown/math, safe file-only exports, explicit loading/offline/error states, retained proxy drafts, and durable logout navigation. Include focused JVM cases and controlled native acceptance fixtures. Version and release ownership remain with integration.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Exercise real login, proxy, account and settings screens at 200 percent font scale using in-memory core fixtures and a network-blocking provider. Cover failed save/logout recovery, unsaved Back decisions, single-target switch semantics and actual-window session-list adaptation without real credentials or shared data.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add opt-in Android acceptance for the three exact legacy fixture IDs and source hashes. Drive production AppPaths, SessionStore and ChatStreamCenter through migration and two fresh reopens; verify all messages, known metadata, interruption repair, original recovery backups and the historical PNG bytes. Add an explicitly read-only migrated-state mode for milestone rechecks. Never seed, delete, access credentials, or make network requests.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Force the runBlocking test entrypoint to JVM void so JUnit4 accepts it. Keep both modes, every preflight guard and all migration assertions unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Save full-device UiAutomation screenshots beside existing Compose captures, assert successful output and recycle owned bitmaps. On initial readiness timeout only, preserve the original failure and record bounded state, URL, native viewport and DOM-ready metadata plus a controlled device screenshot. Do not log cookies, document text or query strings. The ten-second readiness condition and production code are unchanged.

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>
The data-document fixture is stopped by main-frame policy and renders Chromium's error document on both API31 and API36. Exercise normal HTTPS navigation with in-memory responses instead. The optional internal response supplier runs only after the origin guard and defaults to null in production. Keep networking blocked, CSP, the original readiness condition and timeout, and all existing regression assertions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Replace concurrent first-layout scrollToItem callers with one conflated remeasure-request owner while retaining manual reading and explicit latest intent. Size attachment removal at48dp, prioritize dialog errors, and give proxy decisions a single wrapping action layout.

Strengthen controlled instrumentation with owned full-device screenshots, actual IME visibility/screen bounds/native font scale and Back assertions. Prove long-press Copy through the real platform menu and clipboard, scope dialog assertions, and await actual discard completion without weakening thresholds.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Capture the unique Markdown text node instead of an ambiguous root collection that includes selection-handle popups. Keep real native Copy, clipboard and full-device evidence assertions unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Configure the actual ActivityScenario host synchronously and reaffirm RESIZE after content installation before IME focus. Require retained portrait chrome and bounded send-to-keyboard gap, not only an upper-bound check.

Capture physical frames before Compose capture and save before/after window, root-view, inset, rotation, font and activity identity metadata. Keep IME visibility, bounds, Back, clipboard and bitmap ownership assertions intact; no production inset changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Place the existing title, warning and all decision actions inside one bounded scrollable Material dialog, so large-font landscape windows cannot clip Discard outside the window. Preserve copy, validation and48dp actions; the fixture scrolls to and captures the real actions before requiring exactly one completed exit.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add a separate native regression that performs five real table-to-oversized replacements, checks visible final content and preview notices, recreates the Activity with the same controlled source, and finally destroys it normally. Preserve every existing test and all production/runtime dependencies; use observable completion rather than arbitrary sleeps.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Reflow the existing editor and actions side by side only when the available window is wide and short. Keep the same composed editor node, multiline draft value, and native action sizes across IME layout changes. Verify the full editor fits its scrolling viewport and retain an entered multiline draft after system Back.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use the existing Material outlined decoration on a stable native editor so the short-wide layout can reduce decoration padding without shrinking text or touch targets. Keep the message label accessible, preserve multiline input, and assert that the complete editor fits its viewport below status bars and cutouts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Advance versionCode to35 and versionName to0.2.0 only after the integrated code34 candidate passed the complete JVM/native and physical UI acceptance gates. Record the accepted source, migration/signing compatibility and remaining signed-delivery approval boundary without claiming a published release.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@649472774 649472774 changed the title feat: integrate Phase 1 reliability, native UI and compatible delivery feat: deliver accepted Phase 1 v0.2.0 integration Sep 7, 2026
@649472774
649472774 marked this pull request as ready for review September 7, 2026 07:48
@649472774
649472774 merged commit 7dabe1b into main Sep 7, 2026
1 check passed
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