Skip to content

feat: expose captured pointer and mixed checkbox contracts - #289

Merged
devin-ai-integration[bot] merged 6 commits into
mainfrom
table-pointer-latest
Oct 28, 2026
Merged

devin-ai-integration[bot] merged 6 commits into
mainfrom
table-pointer-latest

Conversation

@tiensonqin

@tiensonqin tiensonqin commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Expose owned Row/Box pointer capture with cancellation, mixed Checkbox state and modifier-aware toggles, and focus-owned typed navigation on the latest runtime. Preserve current virtual-window, dynamic-anchor and typography behavior; append the wire vocabulary and regenerate contracts from the canonical schema.

Based on cb082e6 (pending-model reads, #288), now merged into main; the pending-model implementation and tests are unchanged. The merged main tree is identical to that predecessor, so this PR now targets main directly. Pin MyGo to published shared input baseline 63195e6c2f5973633e380400b7fde3828b3008a7 (logseq/mygo#8), rather than selecting incompatible captured-input and committed-editor refs. Record the public migrations and host qualification in docs/api-migrations.md.

Apple and Android now validate the new properties with explicit Boolean shapes and kind restrictions. Migrate one Apple negative fixture from Checkbox to Switch, where indeterminate remains invalid, and expect generation 3: a decoded wrong-kind operation consumes its generation under the existing backend contract. Preserve the rejection assertion and production semantics. Shared vocabulary/admission does not qualify Apple/Android for captured gestures, mixed rendering or detail events.

Final native-input successor 7175d6b2123b2c5f357f1dd2e4b685fbcd2dcc3b fixes real Native OCaml window input: Checkbox click/Enter/Space preserve legacy Boolean proposals and optionally emit modifier-aware ToggleChangedDetail, including mixed-to-true proposals without mutating the accepted model. Disabled/inert ancestors suppress activation. Navigation-enabled Row/Box nodes become focus candidates and receive typed navigation only while they own focus; child checkbox/editor and existing Button behavior remain intact. This qualifies native pointer/keyboard input only, not mixed painting, accessibility state or accessibility-action producers. Web/MyGo retain mixed rendering and accessibility support.

Local validation passed: dune build @all, forced dune runtest, canonical schema checks, Go test/vet/build and diff checks on the final native successor; existing native input/window/JSON suites passed. A temporary external JSON scenario drove the production Ui.handle path red on 9cfc3c7 and green on the successor, then was removed. Earlier unchanged Web checks (156), browser regressions (204), Go race, official tooling/test_mygo.sh contract/startup/allocation chain and Android unit tests passed. No Dune changes, app sources or old generated-history merges are included. All 16 CI checks on the final 7175d6b head passed, including macOS Apple tests; all checks remain green after retargeting onto the identical merged-main tree. Whole-file OCaml formatting drift already exists in the unchanged predecessor; unrelated reformatting was not added.

The earlier compact-sheet cancellation CI failure did not reproduce: the unchanged existing browser suite passed on both the pending-model baseline and the successor. No Sheet source, browser assertions, sleeps or timeouts were changed.

These framework/headless checks do not qualify app integration, worker-backed GUI or real OS IME/candidate windows. The separate upstream MyGo repository retains documented baseline test/race failures; this does not claim that entire repository is green.

Link to Devin session: https://app.devin.ai/sessions/4a14d15bc6d44d18a9254cd088d5cc5e
Open in Devin Desktop: https://app.devin.ai/desktop/session/4a14d15bc6d44d18a9254cd088d5cc5e?variant=devin
Requested by: @tiensonqin

@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration
devin-ai-integration Bot changed the base branch from app-model-pending-read-main to main October 28, 2026 05:46
@devin-ai-integration
devin-ai-integration Bot merged commit c7ebb8d into main Oct 28, 2026
16 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