No description
Find a file
toki 8429af52f3 feat: reauth UI wiring — restore result kinds propagate to BuildsPage status states
- AppSokApp uses restoreDetailed() and maps JenkinsSessionRestoreKind to
  JenkinsConnectionStatus; network/server failures expose a retry callback
- AppSokShell passes connectionStatus + onRetryConnection through to BuildsPage
- BuildsPage shows four distinct no-loader states: missing, reauthRequired,
  networkFailure (with retry), serverFailure (with retry)
- SettingsPage clears all transient login/save/clear state on base URL change
- pubspec.lock restored to meta 1.18.0 / test_api 0.7.11 (reverts container downgrade)
- Regression tests added in app_auth_test, builds_page_test, settings_page_test;
  widget_test updated to expect 재로그인 필요 on 401

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 21:26:33 +09:00
.claude feat: scaffold AppSok app and roadmap/test baseline 2026-06-08 19:04:08 +09:00
agent-ops sync: agent-ops from agentic-framework v1.1.137 2026-06-13 11:28:18 +09:00
agent-roadmap feat: jenkins credential milestone update and reauth UI implementation 2026-06-13 17:03:42 +09:00
agent-task feat: reauth UI wiring — restore result kinds propagate to BuildsPage status states 2026-06-13 21:26:33 +09:00
lib feat: reauth UI wiring — restore result kinds propagate to BuildsPage status states 2026-06-13 21:26:33 +09:00
macos update: m-usb-install archive and macos runner resources 2026-06-13 05:26:47 +09:00
test feat: reauth UI wiring — restore result kinds propagate to BuildsPage status states 2026-06-13 21:26:33 +09:00
.aiexclude feat: scaffold AppSok app and roadmap/test baseline 2026-06-08 19:04:08 +09:00
.clineignore feat: scaffold AppSok app and roadmap/test baseline 2026-06-08 19:04:08 +09:00
.clinerules sync: agent-ops from agentic-framework v1.1.137 2026-06-13 11:28:18 +09:00
.cursorignore feat: scaffold AppSok app and roadmap/test baseline 2026-06-08 19:04:08 +09:00
.cursorrules sync: agent-ops from agentic-framework v1.1.137 2026-06-13 11:28:18 +09:00
.geminiignore feat: scaffold AppSok app and roadmap/test baseline 2026-06-08 19:04:08 +09:00
.gitignore feat: scaffold AppSok app and roadmap/test baseline 2026-06-08 19:04:08 +09:00
.metadata feat: scaffold AppSok app and roadmap/test baseline 2026-06-08 19:04:08 +09:00
AGENTS.md sync: agent-ops from agentic-framework v1.1.137 2026-06-13 11:28:18 +09:00
analysis_options.yaml feat: scaffold AppSok app and roadmap/test baseline 2026-06-08 19:04:08 +09:00
CLAUDE.md sync: agent-ops from agentic-framework v1.1.137 2026-06-13 11:28:18 +09:00
GEMINI.md sync: agent-ops from agentic-framework v1.1.137 2026-06-13 11:28:18 +09:00
opencode.json feat: scaffold AppSok app and roadmap/test baseline 2026-06-08 19:04:08 +09:00
pubspec.lock feat: usb install milestone update and service improvements 2026-06-13 07:57:54 +09:00
pubspec.yaml feat: usb install milestone update and service improvements 2026-06-13 07:57:54 +09:00
README.md feat: scaffold AppSok app and roadmap/test baseline 2026-06-08 19:04:08 +09:00

AppSok

Jenkins Android artifact를 Mac에서 내려받고, USB로 연결된 Android 기기에 ADB로 설치하기 위한 Flutter macOS 앱입니다.

Scope

  • Jenkins job/build/artifact 조회
  • 사용자별 Jenkins API token 저장
  • Android device 목록 조회
  • APK 다운로드 및 adb install -r
  • adb logcat 콘솔 뷰어
  • appsok:// 딥링크 기반 설치 진입점

Current Scaffold

  • lib/src/features/builds: build/artifact 목록 화면
  • lib/src/features/devices: ADB device 화면
  • lib/src/features/console: logcat 콘솔 화면
  • lib/src/features/settings: Jenkins/ADB 설정 화면
  • lib/src/services: Jenkins, Keychain, ADB 서비스 골격
  • lib/src/models: Jenkins build와 ADB device 모델

Development

flutter pub get
flutter run -d macos

macOS Notes

  • Jenkins 호출에는 macOS network client entitlement가 필요합니다.
  • ADB 실행과 USB device 접근은 배포 방식에 따라 sandbox 정책 검토가 필요합니다.
  • Jenkins token은 앱 번들에 넣지 않고 macOS Keychain에 사용자별로 저장하는 방향을 기본값으로 둡니다.