fix(contracts): state the scroll keyboard clip once for every platform - #2537
Open
thymikee wants to merge 2 commits into
Open
fix(contracts): state the scroll keyboard clip once for every platform#2537thymikee wants to merge 2 commits into
thymikee wants to merge 2 commits into
Conversation
Size Report
Startup median (7 runs, lower is better):
|
|
This was referenced Sep 12, 2026
Member
Author
|
No actionable findings on 1b8548a. The shared contract and Apple surface extraction preserves the previously reviewed source, with the dispatch changes correctly left in the dependent PRs. Typed errors, response fields, MCP schema, fixtures, help, and docs are aligned for this layer. Current checks pass and there are no conflicts. Ready for human review and merge. |
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.
Summary
First layer of #2500: the rule that keeps a scroll's swipe out of the keyboard, stated once in TypeScript, with the golden table both native runners read. iOS implements it in #2503 and Android in #2514, so nothing here moves a gesture yet.
clipScrollViewportAboveKeyboardis the whole decision: a keyboard that reaches the swipe's centre line takes the band below it, and when what remains cannot carry a swipe the command refuses withscrollKeyboardOccludesSurfaceErrorrather than scrolling a surface the keys own.contracts/fixtures/scroll-keyboard-policy.jsonis the cross-language table, so the Swift and Java lanes assert against the same rows instead of each platform inventing its own thresholds.Behaviour stated here
keyboardAvoidedandkeyboardMinYjoin a scroll response only when the clip ran, and the CLI help, MCP output schema and command docs name them here, so both platforms answer with one shape.fill/scroll/fillloop;keyboard dismissstays an explicit command.Validation
pnpm checkgreen at1b8548af6d, which covers the golden parity table (18 rows, including the Android-shapedadjustPan window with only 88px of 900px left above the IME is refusedand the iOS-shapedlandscape keyboard leaving 28pt of a 402pt axis is refused instead of swiping under the keys), the Apple-side mapping tests, MCP metadata and the production-exports lane.No device run belongs to this layer — it dispatches nothing. The live simulator and emulator evidence for the paths it states is posted on #2503 and #2514.
Size
11 files, 615 gross lines: one shared module, its golden table, and the surface that names its two response keys.
Part of the #2500 stack: this PR -> #2503 (iOS runner) -> #2514 (Android). Do not merge out of order.