Skip to content

Add loopback native host attach and iOS XCTest runner - #10

Merged
tiensonqin merged 8 commits into
mainfrom
devin/1793939225-native-platform-hosts
Nov 6, 2026
Merged

tiensonqin merged 8 commits into
mainfrom
devin/1793939225-native-platform-hosts

Conversation

@tiensonqin

@tiensonqin tiensonqin commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Add explicit loopback attach for native test hosts and a separate public-XCTest iOS runner. Existing semantic defaults and native protocol v1 remain unchanged. LUI's Android host and DEBUG iOS read-only probe are integrated separately in logseq/lui#329; MyGo remains unsupported on its current SDK pin.

Live.connect_tcp ~host ~port / drive --tcp HOST:PORT accepts only IPv4 loopback, localhost mapped without DNS, or IPv6 loopback, and is mutually exclusive with other CLI transports. Forwarding and host startup remain explicit; transport never implies native capabilities or semantic fallback.

Native actions now share one deadline across writing, socket backpressure, framing and completion; timeout/failure poisons and closes the session. Per-call nonblocking sends preserve concurrent buffered readers. Fatal protocol errors now fail assertion/final polling too. Existing Live.create calls remain compatible; an optional deadline-aware send_line_until supports blocking custom transports, whose callback prerequisites are documented. Close callbacks are idempotent.

apple/ provides a standalone UI-testing-only Xcode generator and runner. A DEBUG app exposes read-only snapshots on loopback; all input stays in a separate XCTest process, using current unique native identifiers, native text replacement and correlated snapshot/result completion. An already-running atomic XCTest call cannot be forcibly interrupted. Guides distinguish sampled settling from network/application idle and list unsupported keys/editors/scenes. Apple CI compiles the runner with build-for-testing without executing UI tests or installing an app.

Validation: dune build @all, dune runtest (22 tests), Node syntax, Xcode project generation and git diff --check pass. The two new boundary regressions fail before the fixes. Real-socket Unix/TCP/WS backpressure/deadline and fragmented-read probes pass; they are protocol evidence, not native UI evidence. The standalone XCTest runner passes Apple-SDK compilation. Latest browser/CDP regression recording on 2aeaf98 passes and replaces earlier evidence in the existing PR comment. Native Android/iOS device input remains unverified.

Link to Devin session: https://app.devin.ai/sessions/9bf68438070747fb8b5c0c6718836a56
Open in Devin Desktop: https://app.devin.ai/desktop/session/9bf68438070747fb8b5c0c6718836a56?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 commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Browser regression passed on 2aeaf98 after the bounded-write/fatal-poll fixes, through the real CLI → WebSocket → CDP → visible Chromium path with an isolated fixture.

Annotated browser regression

Native click/tap, Unicode/empty replacement, focus/keys, wheel, held drag, auto-scroll and PNG capture passed immediate scenario assertions. Primary CLI exited 0 with 45 trusted / 0 synthetic observed events.

Held native drag Primary completion
Pointer held Primary exit 0
Failure protections and scope

Ambiguous, disabled, occluded, hidden and stale targets failed without executing the sentinel. Semantic-only native rejection, finite-animation completion, settle bounds and completion deadline checks passed.

Settle/deadline protections

A temporary harness listener-start race was corrected outside the repository and rerun. Exact Unicode content was asserted, not full glyph appearance (the VM lacks Chinese/emoji fonts). This is browser regression evidence, not send-backpressure, sticky malformed-protocol, TCP/Unix or mobile-device verification; those protocol seams have separate shell evidence.

Written by Devin

@devin-ai-integration devin-ai-integration Bot changed the title Add loopback TCP attach for native test hosts Add loopback native host attach and iOS XCTest runner Nov 6, 2026
@tiensonqin
tiensonqin merged commit 3bb5f34 into main Nov 6, 2026
2 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