Repository navigation
TinyAgent Alpha 8 — Artemis device controls and unified UI
Pre-releaseTinyAgent 0.0.1 Alpha 8
선택적 화면 조작 backend에 Artemis의 화면 인식·UI 입력 계층을 통합했습니다.
네이티브 UI와 OpenCode 테마를 맞추고, LADB 연결 성공 알림과 실행환경 상태 아이콘도 개선합니다.
기존 앱을 삭제하지 말고 APK로 업데이트하세요.
설치 파일
TinyAgent-0.0.1-alpha.8-android-arm64.apk- 패키지
io.github.gplaider.tinyagent, versionCode12 - Android 11 이상, minSdk 30, targetSdk 36,
arm64-v8a - 크기
145330941bytes - SHA-256
729132d200f17c86f9fe7706e488679238f43521170e670723f76dc4ae088ebe - 서명 인증서 SHA-256
c34483dc3b7228cede2e128ccd66cab193e78804686a58ea25ba318568afc9d2
달라진 점
google/artemis@371aa6df56880643da57b30da936e9812fb0ec66의 Java 5개 클래스에서
UI tree, display, XML, gesture 기능을 채택했습니다. Apache-2.0 라이선스와 수정 출처를
소스와 APK에 포함합니다. Artemis agent loop, 모델, 서버, 설치기는 포함하지 않습니다.- 기존 ADB
phone-use가 기본값입니다. Android 연결 → 화면 조작 접근성 설정에서
사용자가 서비스를 켜고, helper에--backend accessibility를 지정하면 새 backend를 씁니다.
접근성 연결 상태도 화면에 표시합니다. 별도 모델·API 키는 필요하지 않습니다. - 화면·노드 관측, tap, swipe, back, 한글·이모지·줄바꿈 입력을 지원합니다.
text는 관측된 정확한 focused/editable 필드의 전체 값을 교체합니다. 비밀번호 입력,
임의의 첫 입력란 선택, 클립보드 변경, 키보드 교체는 하지 않습니다. - 기존 Developer/Root 자기 기기 검증과 shell/system execution policy를 유지합니다.
Stock은 접근성이 켜져 있어도 기기 조작 권한을 얻지 않습니다. - 관측은 120초·1회 입력으로 제한하고 package, service instance, 잠금, 화면 회전,
UI tree, 가림과 입력 대상을 실행 직전에 확인합니다. 무선 디버깅 heads-up이 대상을 덮으면
최대 8초 기다린 뒤 다시 검사하며, 알림이나 시스템 설정을 자동 변경하지 않습니다. - 대기 중 시간 초과된 입력은 나중에 실행하지 않습니다. 전송 후 결과 불명은
unknown으로
남기고 재실행하지 않습니다. 16개 job 이력과 별도의 screenshot 캐시 한도를 둡니다. - 파일 → 파일 관리자, 작은 시각 요소와 48dp 터치 영역, 폴더 이동·미리보기 UI를 개선했습니다.
Android 밝은/어두운 팔레트를 OpenCode에도 적용합니다. upstream GUI 952개 파일은 그대로입니다. - LADB 자기 기기·UID 2000 확인 성공 시 연결 완료 알림을 한 번 표시합니다.
알림이 차단돼 있으면 Toast를 사용합니다. 실행환경 대기 알림은 다운로드 대신 터미널 아이콘을 씁니다.
검증
최종 APK를 Spacewar(A063)와 Pacman(A142), 두 Android 16 기기에 데이터 보존 업데이트했고
설치 APK 해시가 위 파일과 일치함을 확인했습니다. 접근성 backend 후보에서 각 기기의
production 앱 UID 임시 instrumentation으로 실제 private broker를 호출해 34개 assertion을 통과했습니다.
이후 발견한 접근성 설정 진입 권한 오류는 DeveloperActivity만 수정했습니다. 최종 APK에서
공개 설정 화면 진입·복귀, 파일 관리자·기존 세션 복귀를 두 기기 모두 다시 통과했습니다.
backend 후보와 최종본 사이의 production 변경이 이 파일 하나뿐임을 파일 해시로 확인했습니다.
- Native 및 WebView 한글·이모지·줄바꿈, IME가 열린 상태의 정확한 필드 입력
- 터치·스크롤·대화상자·뒤로가기와 새 관측으로 결과 확인
- Stock, 다른 foreground package, 화면 밖 좌표, 비밀번호 입력 거부
- 사용한 관측 재사용, 화면 변경·회전·서비스 재연결 전 관측 거부
- 동일 job ID 중복 제출 시 원래 결과 반환
- 메인 스레드 지연을 강제해 대기 입력 시간 초과 및 이후 미실행 확인
- 실제 Fedora에서 APK 번들
phone.py실행, 한글 입력과 사후 화면 관측
호스트 phone-use 27개, timeout 경합 200회, runtime service 27개,
workspace listing 13개 검사도 통과했습니다. clean release 빌드와 lint는 오류 0·경고 64,
생산 서명·16 KiB ZIP 정렬·runtime/native/license/GUI 자산 검사가 통과했습니다.
세부 근거는 통합 검증과
기기별 기록에 있습니다.
사용 범위와 한계
스크린샷과 tree는 완전히 동시적이지 않으며 custom drawing의 픽셀만 바뀌는 경우는
tree 검사로 알아내지 못할 수 있습니다. 화면에는 시스템 알림 등 민감 정보가 보일 수 있으므로
모델에 보내기 전 확인해야 합니다. completed는 입력 API 완료이며 작업 성공은 새 관측으로 판단합니다.
enter/delete/long-press는 이 backend에 포함하지 않았습니다. 자동 ADB fallback도 없습니다.
이번 실기기 검증은 Developer UID 2000, 두 Android 16 기기와 명시된 fixture 범위입니다.
Root mode·모든 앱·모든 Android 버전·보안 화면·다중 디스플레이·장기 안정성 및 성능 비교를
통과했다고 주장하지 않습니다. 기존 dnfast 복구·성능 비교의 미완료 범위와 전체 7개 journey × 3회
정식 release gate도 별개입니다. 실사용 전 검증이 필요한 프리릴리스입니다.
소스 ZIP의 SOURCE-SNAPSHOT.json은 Git export 파일 해시와 APK 해시를 연결합니다.
작업 트리에서 clean task로 빌드한 뒤 고정했으며 clean checkout 재현 빌드 주장은 아닙니다.
고정 후 production 소스는 바꾸지 않았고 테스트·문서·증거만 정리했습니다.