* feat(chat): add reasoningLevel to ChatUiState + ViewModel methods * feat(chat): add ComposerToolbar with model + reasoning chips * refactor(chat): rewrite ChatInputBar to two-row layout * feat(chat): wire ComposerToolbar into ChatScreen * fix(chat): make model chip fixed 120dp with horizontal scroll for long names * feat(chat): reasoning chip opens dropdown menu with all 9 levels instead of cycling * fix(chat): remove Auto level from reasoning menu — backend only supports none..ultra, default is medium * feat(chat): sync model + reasoning level from backend session.resume response * fix(chat): handle session.info events for model/reasoning sync + fix null value 4002 * fix(chat): safety timeout for createNewSession + try-catch event loop * fix(chat): address agy review findings - Restore InsertDriveFile icon for non-image attachments - Add widthIn(max=120.dp) constraint on attachment filename - Restore stringResource reference for remove-attachment description - Remove dead cycleReasoningLevel() method (dropdown supersedes) - Fix createNewSession timeout race with generation counter * fix(chat): update instrumented test for two-row layout chatScreen_renders_and_acceptsInput had an assertion that the mic button disappears when text is entered — this was the OLD single-row layout behavior. The new two-row composer always shows the mic button in the toolbar row, independent of input state. --------- Co-authored-by: M57 <Hy4ri@users.noreply.github.com>
31 lines
350 B
Plaintext
31 lines
350 B
Plaintext
# Release keystore (local copy — stored as GitHub secret)
|
|
hermes-control-release.keystore.jks
|
|
|
|
# Android / Gradle
|
|
build/
|
|
.gradle/
|
|
local.properties
|
|
*.iml
|
|
|
|
# IDE
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
|
|
# Nix / Gradle user home
|
|
\$PWD/
|
|
$PWD/
|
|
|
|
ktlint
|
|
.hermes/plans/
|
|
|
|
# Local workspace artifacts and logs
|
|
*.py
|
|
.kotlin/
|
|
|
|
|
|
# direnv
|
|
.direnv/
|
|
hermes-chat-redesign.html
|