No description
Compose migration (4 files, 2059 lines of View code → Compose): - ThemePickerDialog: Compose Canvas preview, LazyColumn theme list - TerminalDialogs: 6 dead dialogs deleted, 2 migrated (hostKey, authPrompt) with TerminalDialogRequest sealed interface on MainViewModel for imperative→declarative bridge. Added PasswordDialog for no-stored-pw case. - SnippetDialogs: full-screen Compose dialog with LazyColumn, search, inline create form, context menu - KeyboardSettingsDialog: TabRow, Slider, Canvas preview, color picker. Data classes extracted to KeyboardModels.kt AQB/CQB separation: - Independent Quick Bar preferences for AKB vs CKB modes - Settings UI mode-aware: CKB shows full keyboard dialog, AKB shows QB-only - AQB positions filtered (no above/below keyboard) - New docs: KEYBOARD.md, GLOSSARY.md (TV, AKB, CKB, AQB, CQB) Password prompt: - TerminalService prompts for password when no stored auth (SSHAuth.None) - Compose PasswordDialog with remember checkbox - clearPassword ADB broadcast for test cleanup ADB test framework (Python): - test.py runner with menu, --all, single test modes - AI visual verification via claude -p reading screenshots - 5 tests, 52 checks: connect, htop, vim, password prompt, multi-session - Timestamped results with manifest.json for cross-run comparison Coding conventions updated: 100% Compose mandated, no programmatic Views. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| app | ||
| docs | ||
| gradle | ||
| lib-ssh | ||
| lib-terminal-keyboard | ||
| lib-terminal-view | ||
| lib-vault-crypto | ||
| scripts | ||
| .gitignore | ||
| Audit.md | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| settings.gradle.kts | ||