M57
209ce331b8
Merge pull request #83 from Hy4ri/refactor/issue-77-remove-workmanager
...
[refactor] Remove unused WorkManager dependency (#77 )
2026-06-19 20:13:37 +03:00
Hy4ri
39b1d94ad4
Refactor: Remove unused WorkManager dependency ( #77 )
2026-06-19 20:13:28 +03:00
M57
028b490fd3
Merge pull request #62 from Hy4ri/fix/issue-45-ws-stuck
...
Fix WebSocket connection stuck on subsequent launches (Issue #45 )
2026-06-19 20:05:36 +03:00
Hy4ri
23ff263641
Fix WebSocket connection stuck on subsequent launches (Issue #45 )
2026-06-19 19:56:50 +03:00
M57
6b9bab9c25
Merge pull request #61 from Hy4ri/fix/issue-59-keyboard-gap
...
Consume window insets in NavDisplay to eliminate keyboard gaps (Issue #59 )
2026-06-19 19:49:56 +03:00
Hy4ri
4ecde51e2c
Consume window insets in NavDisplay to eliminate keyboard gaps (Issue #59 )
2026-06-19 19:47:49 +03:00
M57
379c9e07e7
Merge pull request #57 from Hy4ri/fix/issue-44-chat-search
...
Fix chat search breaking vertical scrolling and layout (Issue #44 )
2026-06-19 19:41:20 +03:00
Hy4ri
80578b93d6
Render SearchBarRow inside the main Column container below the top app bar
2026-06-19 19:36:20 +03:00
Hy4ri
3734cb361f
Use height-constrained CompactSearchInput inside SearchBarRow to prevent topbar height dynamic expansion
2026-06-19 19:17:55 +03:00
Hy4ri
11c5da260d
Pin top app bar in ChatScreen and support pinTopBar parameter in HermesScaffold
2026-06-19 19:09:04 +03:00
M57
95b6106b4c
Merge pull request #55 from Hy4ri/feat/source-archive-release
...
feat: attach source code archive to release assets (closes #54 )
2026-06-19 19:00:48 +03:00
M57
77ed9c9120
Merge pull request #56 from Hy4ri/fix/issue-51-cron-human-readable
...
Implement human-readable cron schedule formatter (Issue #51 )
2026-06-19 19:00:40 +03:00
Hy4ri
f7132a76cd
Fix chat search breaking vertical scrolling and layout (Issue #44 )
2026-06-19 18:59:43 +03:00
Hy4ri
055b3381b1
Implement human-readable cron expression formatter on CronJobsScreen
2026-06-19 18:49:41 +03:00
ronia
4e6525689d
feat: attach source code archive to release assets ( closes #54 )
2026-06-19 18:47:50 +03:00
M57
3e093aaa72
Merge pull request #53 from Hy4ri/fix/issue-47-reorder-nav-items
...
feat: add bottom nav reordering in settings (closes #47 )
2026-06-19 18:46:09 +03:00
M57
9d5e46e769
Merge pull request #52 from Hy4ri/fix/issue-48-chat-input-space
...
fix: remove space between bottom bar and chat input field (closes #48 )
2026-06-19 18:45:07 +03:00
Hy4ri
2fce6ad97a
feat(settings): add up/down arrow buttons to reorder bottom nav items
2026-06-19 18:41:02 +03:00
Hy4ri
54ebe8714e
fix(chat): remove double padding and zero out nested Scaffold window insets
2026-06-19 18:37:48 +03:00
M57
a7fcfd4088
Merge pull request #50 from Hy4ri/fix/issue-49-always-show-bottom-bar
...
fix: keep bottom navigation bar always visible (closes #49 )
2026-06-19 18:36:26 +03:00
Hy4ri
0cdf8fd779
fix(navigation): show bottom bar on all screens except ConnectScreen
2026-06-19 18:31:37 +03:00
M57
2e56e2d9da
Merge pull request #46 from Hy4ri/fix/issue-43-bottom-navbar
...
fix: bottom navbar updates dynamically (closes #43 )
2026-06-19 18:29:21 +03:00
Hy4ri
3a610c7c80
fix(ci): fix trailing spaces and revert visibility/padding changes
2026-06-19 18:23:17 +03:00
Hy4ri
9e3a7ab339
fix: always show bottom bar, resolve chat input double padding, and format codebase
2026-06-19 18:14:41 +03:00
Hy4ri
91ad09b5f2
fix(navigation): dynamically update bottom navigation items
2026-06-19 18:02:49 +03:00
Hy4ri
67c633396e
ci: cache ktlint binary in GitHub Actions workflows
2026-06-19 17:57:22 +03:00
M57
1b188b6b31
Merge pull request #41 from Hy4ri/fix/release-signing
...
fix: sign release APKs with stable keystore from secrets
2026-06-19 17:44:19 +03:00
ronia
34e4c2aed4
fix: sign release APKs with stable keystore from secrets
2026-06-19 17:34:34 +03:00
M57 and ronia
59e0d4f817
feat: search within chat history (Issue #31 ) ( #39 )
...
- Add search icon toggle in top bar with animated search field
- Real-time message filtering on search query match
- Match counter with previous/next navigation arrows
- Case-insensitive text highlighting in user and assistant bubbles
- Dismiss search restores full message list
- Empty state for no search results
Co-authored-by: ronia <ronia@m57>
2026-06-19 16:35:07 +03:00
M57
fb605d1bc0
feat: clickable URLs and long-press copy in chat bubbles (Issues #29 , #30 ) ( #36 )
...
Add clickable URL detection with primary color + underline styling and browser launch via UriHandler. Add long-press to copy raw message text to clipboard for both user and assistant chat bubbles.
Fixes #29 , Fixes #30
2026-06-19 14:16:56 +03:00
M57
2cfe1f71fc
fix: bottom navigation bar customization not reflected in NavigationBar (Issue #37 )
...
fix: bottom navigation bar customization not reflected in NavigationBar (Issue #37 )
2026-06-19 13:36:25 +03:00
ronia
5d4f211f17
fix: bottom navigation bar customization not reflected in NavigationBar (Issue #37 )
2026-06-19 13:35:57 +03:00
M57
66da56ca24
feat: connection status indicator in drawer (Issue #28 )
...
feat: connection status indicator in drawer (Issue #28 )
2026-06-19 12:40:32 +03:00
M57
27e513f0a3
feat: show app version in Settings screen (Issue #32 )
...
feat: show app version in Settings screen (Issue #32 )
2026-06-19 12:39:20 +03:00
M57
0f6625c66e
fix: migrate deprecated Compose/Room APIs (Issues #25 , #26 , #27 )
...
fix: migrate deprecated Compose/Room APIs (Issues #25 , #26 , #27 )
2026-06-19 12:38:16 +03:00
ronia
71d3b975af
style: fix ktlint import ordering (LaunchedEffect before collectAsState)
2026-06-19 12:31:43 +03:00
ronia
1db55c57c6
style: fix ktlint import ordering in Navigation.kt
2026-06-19 12:21:20 +03:00
ronia
a2c9bb638a
style: fix ktlint errors in Navigation.kt
2026-06-19 12:19:29 +03:00
M57
0038606c05
feat: add connection status indicator (Issue #28 )
...
Adds a colored dot next to the '⚡ Hermes' brand header in the
navigation drawer:
- Green: connected
- Yellow: connecting / reconnecting
- Red: disconnected
Uses a StateFlow on HermesWsClient that tracks the WebSocket
connection lifecycle and is collected in the drawer header.
2026-06-19 12:07:44 +03:00
M57
12c60dce16
feat: show app version in Settings screen (Issue #32 )
...
Displays version name and build code at the bottom of the Settings
screen using BuildConfig.VERSION_NAME and VERSION_CODE.
2026-06-19 12:03:37 +03:00
M57
1c1961426a
fix: migrate deprecated APIs (Issues #25 , #26 , #27 )
...
- Icons.Filled.ArrowBack/ListAlt → Icons.AutoMirrored.Filled (Issue #25 )
- ScrollableTabRow → PrimaryScrollableTabRow (Issue #26 )
- fallbackToDestructiveMigration() → fallbackToDestructiveMigration(false) (Issue #27 )
2026-06-19 12:02:07 +03:00
M57
0fa61148a3
Create LICENSE
2026-06-18 22:28:27 +03:00
M57
34df198c4d
feat: configurable bottom navigation bar (Issue #23 )
...
## What
Adds a new Navigation Bar section to Settings where users can customize which items appear in the bottom navigation bar.
## Features
- Pick from any of the 19 drawer screens (max 5 items)
- Remove items with a close/delete button
- Items persist via SharedPreferences (CSV format)
- Invalid names are silently dropped
- Existing screens and auth-aware filtering respected
Closes #23
2026-06-18 21:16:21 +03:00
M57 and M57
837678c590
fix( #21 ): remove double spacing above top bar and below chat input ( #22 )
...
Co-authored-by: M57 <hy4ri@users.noreply.github.com >
2026-06-18 20:36:56 +03:00
M57 and M57
7048985e06
ci( #19 ): add wrapper validation, remote build cache, and drop dependency-submission ( #20 )
...
* ci(#19 ): add wrapper validation, remote build cache, and dependency submission
* ci(#19 ): remove flaky dependency-submission job — core CI is enough
---------
Co-authored-by: M57 <hy4ri@users.noreply.github.com >
2026-06-18 19:32:19 +03:00
M57 and M57
b01e6d2fee
feat( #17 ): replace default icons with custom Hermes-branded adaptive icon ( #18 )
...
Co-authored-by: M57 <hy4ri@users.noreply.github.com >
2026-06-18 19:16:27 +03:00
M57 and M57
7c4735ed1c
docs( #15 ): add comprehensive README ( #16 )
...
Co-authored-by: M57 <hy4ri@users.noreply.github.com >
2026-06-18 19:09:46 +03:00
M57 and M57
4892572bcc
feat( #13 ): add pull-to-refresh to HermesScaffold ( #14 )
...
- HermesScaffold: added isRefreshing param, wraps content in PullToRefreshBox when onRefresh is set
- All 16 data screens: pass isRefreshing = state.isLoading
- Initial loading only shows full-screen LoadingState when data is empty (no spinner over existing content)
- AchievementsScreen already had the correct pattern, just needed isRefreshing param
Co-authored-by: M57 <hy4ri@users.noreply.github.com >
2026-06-18 18:58:08 +03:00
M57
d37de1d223
feat( #11 ): make HermesScaffold title a @Composable slot, convert ChatScreen ( #12 )
...
- HermesScaffold: title now @Composable () -> Unit (M3-idiomatic)
- HermesScaffold: added modifier and snackbarHost parameters
- Updated all 18 callers from title="X" to title={Text("X")}
- ChatScreen: converted from raw Scaffold to HermesScaffold
- Removed unused Menu icon import (ktlint fix)
2026-06-18 18:43:45 +03:00
M57 and M57
7c27ca624c
refactor( #5 ): convert SettingsScreen to use HermesScaffold
...
* refactor(#5 ): convert SettingsScreen to use HermesScaffold
Replace raw Material3 Scaffold + manual TopAppBar with the shared
HermesScaffold wrapper. Removes ~30 lines of duplicated boilerplate
and gives SettingsScreen scroll-aware top bar behavior.
Closes #5
* fix(#5 ): restore ExperimentalMaterial3Api import for SegmentedButton
---------
Co-authored-by: M57 <hy4ri@users.noreply.github.com >
2026-06-18 18:00:51 +03:00