Skip to content

test(engine): phone smoke test of /remote over LAN and NetBird #1910

Open

Description

@LHagfoss

Scope

Step 5 of the delivery sequence. Plan: docs/architecture/mobile-remote-plan.md (sections named below). v1 decisions: the terminal owns execution and must stay open; the client is a native iOS app in a separate repository. Depends on the gateway issue and on the app.

With a real iPhone: attach to two running TUIs, continue one from the phone, answer a question and an approval, inspect subagents, lose and regain the connection, background and foreground the app, /remote off, revoke the device.

Acceptance criteria

  • Each case is recorded as passed or failed with the build and network path (same LAN, NetBird) it was run on.
  • docs/mobile.md documents the LAN and NetBird setup that was actually used and how the app is built and installed.
  • Platform checks that could not be run are listed as such.

Activity

  1. LHagfoss commented on Oct 9, 2026

    @LHagfoss
    OwnerAuthor

    Remote preparation is merged: full-height pairing panel #1919, authoritative timing/outcomes and app UI guide #1921, teardown race #1922, reconnect/timestamp/title compatibility #1923, and session-time limit documentation #1924.

    Verified: complete local workspace check/tests, formatting, protocol schemas/goldens, authenticated gateway reconnect/history, 20 share/attach/off cycles, and Linux/macOS/Windows CI. The updated TUI was force-installed locally (v0.64.0, built from 6ce5560; Rust source matches merged main d05f79a; installed release SHA256 01a3f5ba26c00d812c8b815582d8c99d032e4837a473aaccc0ddd54de1ddefe8).

    The actual iPhone scenarios on LAN and NetBird remain unrun in this task. Keep this issue open until those device/network cases are recorded with the app build. The app can sync the merged protocol via Scripts/sync-protocol.sh and use APP-UI.md for field/action mappings, reducers and concrete live/history JSON.

  2. LHagfoss commented on Oct 10, 2026

    @LHagfoss
    OwnerAuthor

    Overnight release/update handoff:

    • RustCode 0.64.1 published after fix(engine): choose the LAN address for QR pairing #1927/chore(ci): release v0.64.1 #1928. Linux/macOS/Windows release builds passed; all four expected assets, Homebrew metadata, checksummed local updater and installed version verified. Full cargo check --workspace --tests, cargo test --workspace and formatting passed again on the released commit.
    • App 0.1.1 (build 2) published after app Restrict tool calling in system prompt and start context display at 0… #2/Remove agent tool-calling loop and configurations #3. Public Simulator/unsigned-device artifacts downloaded and checksums, version/build/platform/privacy metadata verified; no private provisioning profile in public artifacts.
    • 182 app package/real-host tests passed, including QR credential pairing through the automatically selected Mac LAN address and a real terminal session. Six iPhone Simulator UI tests passed. 24 release/install helper tests used fake device commands.
    • The installed host gateway was restarted on its automatically selected LAN address. Two paired devices and the shared session were preserved; there were no active device connections at restart.
    • A signed local development archive is ready at ~/code/rustcode_app/build/releases/v0.1.1/RustCode.xcarchive. When ready, connect/unlock the registered iPhone and run cd ~/code/rustcode_app && Scripts/install-on-iphone.sh. It installs over the existing app and preserves pairing data. Then start a fresh RustCode terminal, run /remote, and scan on the same Wi-Fi. Explicit NetBird setup remains for access from other networks.

    Physical iPhone camera/local-network permission/LAN/NetBird acceptance remains open because the user explicitly asked us not to install or launch on their phone tonight. No physical phone actions were performed. TestFlight was not uploaded; the environment lacks working App Store Connect credentials and matching distribution signing.

    The authoritative field/control mapping for further app UI work is in APP-UI.md. App decoding/rendering now preserves unknown optional timing, correlates all transcript roles, groups one terminal footer per logical turn, and retains turn IDs even before timing arrives.

  3. LHagfoss commented on Oct 19, 2026

    @LHagfoss
    OwnerAuthor

    #1948 closed in favor of this issue. Still needs the physical iPhone run on LAN and NetBird; nothing here can be done without the device.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions