Skip to content

Fix fresh-install PyTCP compatibility - #5

Draft
Lemelson wants to merge 1 commit into
mainfrom
codex/fix-pytcp-compatibility
Draft

Lemelson wants to merge 1 commit into
mainfrom
codex/fix-pytcp-compatibility

Conversation

@Lemelson

@Lemelson Lemelson commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Summary

Fresh GeoShift 1.5.2 installations can resolve pymobiledevice3 9.31.0 with pmd-pytcp 0.3.7. That backend calls PyTCP synchronously, while pmd-pytcp 0.1.0 and newer expose async methods, preventing the developer tunnel from opening and triggering a QueueFull callback flood.

Constrain pmd-pytcp to >=0.0.4,<0.1.0 in every documented installation/test command and Python CI. Add real installed-version and synchronous TCP/UDP API regression checks, a forced reinstall command for affected uv installations, and troubleshooting notes separating the callback flood from reconnect retries and misleading restore-status text.

Refs #4.

Verification

  • swift test: 21 tests passed.
  • Python worker tests: 21 tests passed in each of three separate Python 3.13 environments: constrained uv run, fresh uv tool install, and fresh pip venv. All resolved pymobiledevice3 9.31.0 + pmd-pytcp 0.0.6.
  • Regression control: the original unconstrained uv run resolved pmd-pytcp 0.3.7; the two new tests failed with eight version/API assertions before the install commands were corrected.
  • pip check: no broken requirements. The pairing helper imports successfully with the corrected backend.
  • git diff --check and packaging-script syntax checks passed.
  • Local release package built, ad-hoc signature verified, and the app's main screen and Settings opened on macOS. GUI launch used the Mac's existing compatible backend (pmd-pytcp 0.0.4).
  • English and Russian UI resources remain synchronized.
  • No generated app/build files, logs, device IDs, local paths, or pairing data included in the patch.

Physical-iPhone acceptance is pending: no USB device was visible and the saved Wi-Fi connection probe timed out. Local installation/API/unit/UI checks do not prove tunnel establishment or a real location change. No release, version bump, or published build is part of this PR.

Safety impact

The constraint restores the synchronous dependency contract required by the existing tunnel implementation. Runtime safety logic for Start, Restore GPS, target identity, reconnect, heartbeat, termination, and pending clear is unchanged. Indefinite pending-clear retries remain necessary; general error deduplication and clearer device-discovery versus tunnel-failure UI are separate follow-ups.

Keep this PR in draft until an unlocked physical iPhone with Developer Mode passes tunnel connection, Start to a selected city, location verification in Maps, Restore GPS, and reconnect checks.

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