Skip to content

replay(staging3): carry staging2 #110–#117 onto the 2.24 baseline - #122

Merged
bytemain merged 8 commits into
staging3from
cc/staging3-replay-110-117
Aug 6, 2026
Merged

replay(staging3): carry staging2 #110–#117 onto the 2.24 baseline#122
bytemain merged 8 commits into
staging3from
cc/staging3-replay-110-117

Conversation

@bytemain

@bytemain bytemain commented Aug 6, 2026

Copy link
Copy Markdown
Member

Per artin's directive in #Kuiklybase (task #95): replay staging2's post-freeze fixes onto staging3 one by one, skipping anything the 2.24 upstream baseline already fixes equivalently.

Equivalence verdict: upstream has NONE of them — all 8 carried

Each defect site was inspected on staging3 before picking and found in pristine pre-fix shape (every cherry-pick applied with exact context, which independently confirms the site state):

Verification

  • All 8 replays are git patch-id --stable identical to their staging2 originals (c5730e28, 461bbe5f, 1547d162, 81905958, dbc38307, 74045764, c7a02127, d691975d); provenance is recorded per-commit via (cherry picked from commit …) and original sign-off trailers are preserved.
  • Identity/DCO rewritten to satisfy the staging3 migration gate (author == committer + matching DCO): tools/check-staging3-migration.py --expected-head 473de9a8…staging3_migration=pass locally; git diff --check clean.
  • Each commit carries its own regression tests (incl. KNodeViewportShrinkPendingOffsetTest, KeyboardHeightListenerRegistryTest, DrawModifierNodeViewDispatchTest, arbiter suites) — PR CI executes them against the 2.24 baseline.

Note: the full staging3 exact matrix (iOS/OHOS fixtures) runs on push to staging3 or via workflow_dispatch with expected_sha; it can be dispatched on this head pre-merge if wanted.

🤖 Generated with Claude Code

CC-希乐 and others added 8 commits August 6, 2026 08:45
Dirty restored lazy descendants and force their draw ancestry after offscreen visibility is restored. Cover the real native mount, placement, restore, and clean-leaf lifecycle with production-callsite mutation teeth.

Signed-off-by: MingQi <raft-mobile-mingqi@mail.build>
(cherry picked from commit c5730e2)
Signed-off-by: CC-希乐 <raft-mobile-cc-xile@mail.build>
Preserve child content for bare draw nodes, route view-aware fallback through ordinary draw overrides, and retain explicit view-aware precedence.

Add behavior coverage for all three implementer classes and a self-testing production-wiring constraint for LayoutNodeDrawScope.drawDirect.

Signed-off-by: MingQi <raft-mobile-mingqi@mail.build>
(cherry picked from commit 461bbe5)
Signed-off-by: CC-希乐 <raft-mobile-cc-xile@mail.build>
Signed-off-by: BiSheng <raft-mobile-bisheng@mail.build>
Co-authored-by: BiSheng <raft-mobile-bisheng@mail.build>
(cherry picked from commit 1547d16)
Signed-off-by: CC-希乐 <raft-mobile-cc-xile@mail.build>
Task Tencent-TDS#183: synchronize Compose offset after native viewport changes.

Reviewed exact: 175c8ac
Independent review: task Tencent-TDS#205 FINAL FULL-SEAT PASS / 0 blocker.
Hosted exact matrix: 30852685305.

Signed-off-by: MingQi <mingqi@mail.build>
(cherry picked from commit 8190595)
Signed-off-by: CC-希乐 <raft-mobile-cc-xile@mail.build>
Signed-off-by: Android-Developer-1 <raft-mobile-android-developer-1@mail.build>
Co-authored-by: Android-Developer-1 <raft-mobile-android-developer-1@mail.build>
(cherry picked from commit dbc3830)
Signed-off-by: CC-希乐 <raft-mobile-cc-xile@mail.build>
Signed-off-by: Jony <jony@mail.build>
Co-authored-by: Jony <jony@mail.build>
(cherry picked from commit 7404576)
Signed-off-by: CC-希乐 <raft-mobile-cc-xile@mail.build>
Signed-off-by: KMP-专家 <raft-mobile-kmp-expert@mail.build>
Co-authored-by: KMP-专家 <raft-mobile-kmp-expert@mail.build>
(cherry picked from commit c7a0212)
Signed-off-by: CC-希乐 <raft-mobile-cc-xile@mail.build>
Keep the active programmatic scroll target aligned with the native scroller when a viewport shrink commits a smaller frame. Preserve owner fencing across synchronous native echoes, lock the behavior with a renderer-level regression fixture, and remove the obsolete source-code assertion gate.

Signed-off-by: MingQi <mingqi@mail.build>
(cherry picked from commit d691975)
Signed-off-by: CC-希乐 <raft-mobile-cc-xile@mail.build>
@bytemain

bytemain commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

Independent review: PASS / 0 blocker for merging this PR into staging3 only.

Frozen candidate:

  • base staging3@d37094f3a7e2e105d1959e2509dd1d3c5828f769
  • head 473de9a8b8d26e4f0522f2a64b5528231321900c
  • tree 334c4c4559203611192ec08507da45b6fac1e67f
  • direct linear ancestry; 25 paths, +1462/-418; git diff --check clean

Replay integrity:

  • all 8 successor commits have stable patch IDs exactly equal to the staging2 originals c5730e28, 461bbe5f, 1547d162, 81905958, dbc38307, 74045764, c7a02127, and d691975d
  • tools/check-staging3-migration.py --expected-head 473de9a8… passes the frozen upstream/fork/merge ancestry plus first-parent identity and matching DCO contract
  • the relevant production blobs on the staging3 base are byte-identical to the original pre-fix defect states: KNode/Subcompose, DrawModifierNode, common/Android/iOS text input, KRKeyboardModule, and KRSelectableTextView. Therefore upstream 2.24 did not already supply an equivalent implementation at any affected site; carrying all eight is justified.

Fresh exact Hosted proof:

  • manual exact matrix run 31086310304, headSha=473de9a8…: 6/6 success, 0 skipped
  • Linux artifact: 45 XML reports / 270 tests / 0 failures / 0 errors / 0 skipped. The replay suites executed, including Subcompose reactivation 1, DrawModifier dispatch 3, text-input arbiter 20, viewport correction 10, keyboard registry 6, and viewport-shrink pending offset 4 tests
  • iOS: exact checkout, Kotlin/Native main+tests, KRTextInputEventSequencerTest PASS, production renderer -Werror build succeeded on Xcode 16.2
  • OHOS: host fixtures PASS, fresh 108-object arm64 link, ELF64/AArch64 libkuikly.so SHA-256 d609fc1fcc5472b3b0a5edc7377b833eadda4d1d1b61ed5fcd38da53a30f9bfa
  • local independent source guards for DrawModifier dispatch and cross-renderer layout formatting also pass

Scope boundary: this verdict permits only the reviewed replay into staging3. It does not by itself approve PR #109 into main, a Mobile gitlink/HAR change, package publication, or product cutover. Mainline still needs the previously recorded six conditional-upstream-group disposition, cutover CI/branch-policy transfer, and then an exact Mobile build/device validation. Any head or base drift voids this PASS.

@bytemain
bytemain merged commit 473de9a into staging3 Aug 6, 2026
6 checks 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