columba/python/requirements.txt
torlando-tech 9f9eef4c52 fix: revert to Python 3.11 and fix delivery status UI refresh
Python 3.13's socket.if_nametoindex() doesn't work on Android/Chaquopy,
causing AutoInterface to crash. Python 3.11 works correctly.

Changes:
- Revert Chaquopy from Python 3.13 to 3.11 (both app and reticulum modules)
- Use pycodec2 wheel with pure Python ctypes wrapper instead of Cython
  extension to avoid Android linker namespace symbol resolution issues
- Remove socket.if_nametoindex patch (not needed on Python 3.11)
- Add refresh trigger for delivery status updates to fix UI not showing
  double checkmarks until next message sent

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:06:23 -05:00

27 lines
1.3 KiB
Text

# Python dependencies for Reticulum integration
# These will be installed by Chaquopy when building the Android app
# NOTE: pycodec2 is installed via build.gradle.kts pip block (pre-built Android wheel)
# audioop is built-in on Python 3.11, no external package needed
# numpy is required by LXST for audio processing
numpy
# RNS from fork with patched Link.py for shared instance RPC error handling
# Patch: catch exceptions in __update_phy_stats() to prevent crashes when
# connecting to another app's shared instance with mismatched RPC keys
rns @ git+https://github.com/torlando-tech/Reticulum@fix-phy-stats-rpc
# LXMF from fork with external stamp generator + receiving interface capture
# Patches:
# - set_external_generator() to bypass Python multiprocessing on Android
# - Pass receiving_interface to delivery callback for opportunistic messages
lxmf @ git+https://github.com/torlando-tech/LXMF@feature/receiving-interface-capture
cryptography>=42.0.0
# msgpack for Sideband-compatible telemetry format
u-msgpack-python
# LXST for voice calls over Reticulum
# NOTE: pycodec2 is removed from LXST's dependencies and installed via pre-built
# wheel in build.gradle.kts. audioop is built-in on Python 3.11.
lxst @ git+https://github.com/torlando-tech/LXST.git@chaquopy-compat