No description
Find a file
jima 1d3b4b053c Full codebase audit: 7 critical bugs, DECSCNM rendering, UTF-8 chunk buffering, i18n
Critical bugs fixed:
- Missing MIGRATION_10_11 in TerminalService (crash on upgrade)
- jumpHostSessions was global (multi-session corruption) — moved to SessionEntry
- KeyboardSettings reset skipped every other view (forward-remove loop)
- DCS parser leaked backslash (ESC \ consumed 1 byte instead of 2)
- SOCKS5 clientThreads grew unbounded (memory leak)
- TelnetSession scope leaked on connect failure
- Host key + auth dialogs never wired up — silent TOFU, broken 2FA

Parser/renderer:
- DECSCNM (reverse screen mode) now rendered — swaps fg/bg screen-wide
- UTF-8 partial sequences buffered across chunk boundaries (11 new tests)

Hardcoded strings → string resources (EN/ES/SV):
- KeyManagerScreen (~22 strings), ConnectionListScreen (~24 strings)
- TerminalService/SessionNotifier notifications, SftpScreen, SftpViewModel
- SessionTabBar fallback label

Dead code removed:
- showSaveSnippet, qrDerivedKey, LANGUAGE_OPTIONS, LightColorScheme
- notifyOnReconnect preference, setPreviewTextColor, markActionTime
- anchorX/anchorY, production Log.d calls, 7 dead string resources

Code quality:
- SftpSession streams wrapped in .use{}, FileLogger.getLogFile respects
  useDownloads, FastSSHConfig unused keepalive removed, var→val fixes
- TabTypeAndLabelTest updated for TELNET/LOCAL enum values

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 19:55:28 +02:00
app
docs
gradle
lib-ssh
lib-terminal-keyboard
lib-terminal-view
lib-vault-crypto
scripts
.gitignore
build.gradle.kts
gradle.properties
gradlew
gradlew.bat
settings.gradle.kts