Skip to content

fix(bridge): make the Termux Rust toolchain an enforced prerequisite (#968) - #983

Merged
jinon86 merged 2 commits into
mainfrom
fix/termux-rust-toolchain
Aug 6, 2026
Merged

fix(bridge): make the Termux Rust toolchain an enforced prerequisite (#968)#983
jinon86 merged 2 commits into
mainfrom
fix/termux-rust-toolchain

Conversation

@jinon86

@jinon86 jinon86 commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

문제 (#968, daegyo 4h15m 장애 근본 원인)

cryptography 50은 Android wheel이 없어 maturin 빌드가 필요하지만 Rust 전제조건이 산문에만 있었음: daegyo는 cargo 부재 → 04:45 재시작 시 lock reconcile 빌드 실패 → 브리지 다운. gongyung은 Rust가 있어 생존. #157이 ANDROID_API_LEVEL 절반을 고쳤을 때도 "with a Rust toolchain present"라는 전제가 코드 어디에도 강제되지 않았다.

수정

  1. setup.sh: Termux 감지 시 pkg install -y rust rust-std-aarch64-linux-android 실행(불가 시 정확한 pkg 라인으로 loud warning) — 전제조건을 setup 관리 속성으로
  2. dependency_bootstrap.py: cargo 부재 Termux에서 설치 전 upfront 경고 + hash-locked 실패 시 누락 툴체인을 유력 원인으로 진단. CCC_DEPS_UNLOCKED=1 힌트가 툴체인 우회처럼 읽히던 문제 수정(명시적으로 부정)
  3. docs/android-termux-claude.md: 빌드 전제조건 섹션 추가

검증

  • dependency_bootstrap 테스트 3건(cargo 부재 경고·실패 진단 / cargo 존재 시 기존 힌트 유지 / 경고핵�이 성공 차단 안 함), 총 17+10 subtests pass
  • setup.test.sh Termux 분기 3건(자동 설치 / cargo 존재 시 skip / dry-run 미실행), 총 79 pass
  • ruff·bash -n clean

daegyo·gongyung은 이미 cargo 1.97.1 설치됨(장애 복구 시 조치) — 이 PR은 다음 노드·재설치의 재발 방지.

Closes #968

@jinon86
jinon86 requested a review from seoseo-ai as a code owner August 6, 2026 06:14
seoseo-ai
seoseo-ai previously approved these changes Aug 6, 2026

@seoseo-ai seoseo-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved after explicit operator authorization using the local seoseo-ai credential.

…968)

cryptography 50 has no Android wheel and builds via maturin, but the
Rust prerequisite was recorded only in prose: daegyo had no cargo, its
04:45 restart reconciled the lock, the build failed, and the bridge
stayed down 4h15m. gongyung survived only because Rust was present.

- setup.sh installs rust + rust-std-aarch64-linux-android via pkg on
  Termux, or fails loudly with the exact pkg line
- dependency_bootstrap warns upfront on Android/Termux without cargo
  and, on hash-locked install failure, names the missing toolchain as
  the likely cause; the CCC_DEPS_UNLOCKED=1 hint no longer implies it
  bypasses the toolchain
- docs: Termux build prerequisites in android-termux-claude.md

Closes #968
seoseo-ai
seoseo-ai previously approved these changes Aug 6, 2026

@seoseo-ai seoseo-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved after explicit operator authorization using the local seoseo-ai credential.

GitHub runners ship a real cargo; the 'no cargo' cases then exercised
the toolchain-present branch and failed in CI while passing locally.
Run the three Termux cases with an explicit cargo-free PATH.

@seoseo-ai seoseo-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved after explicit operator authorization using the local seoseo-ai credential.

@jinon86
jinon86 merged commit 2ff57c2 into main Aug 6, 2026
8 checks passed
@jinon86
jinon86 deleted the fix/termux-rust-toolchain branch August 6, 2026 06:59
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.

bridge: Termux/Android nodes need a Rust toolchain for hash-locked installs — daegyo outage 2026-08-06

2 participants