Hy4ri
02106c3781
refactor(core): execute Phase 3 state and delegate extractions
...
- Extract ChatClarifyDelegate from ChatViewModel for clarify prompt flow.
- Harden GroupChatViewModel maps with ConcurrentHashMap.
- Add failure circuit breaker to MCP OAuth polling loop.
2026-09-11 20:13:00 +03:00
Hy4ri
5f79bdee54
refactor(markdown): decompose MarkdownText UI and styling
...
Extract MarkdownInlineStyler, MarkdownInlineText, MarkdownTable,
and MarkdownMediaResolver into ui/chat/markdown package.
2026-09-11 20:02:26 +03:00
Hy4ri
f4904653d1
refactor(mcp): decompose McpServersScreen into components
...
Extract McpSectionHeader, AddServerSection, ServerCard,
CatalogSection, and McpDialogs into ui/mcp/components.
2026-09-11 19:53:16 +03:00
Hy4ri
d2e5e8e1aa
refactor(group): decompose GroupChatScreen into components
...
Extract GroupChatComposer, GroupChatSettingsDialog,
GroupMessageCard, and GroupChatToolChip into components package.
2026-09-11 19:47:26 +03:00
Hy4ri
1edd5449c9
refactor(chat): modularize update section and media launchers
...
Extract ChatAppUpdateSection and rememberChatMediaLaunchers to
components to decouple STT and update dialogs from ChatScreen.
2026-09-11 19:38:29 +03:00
Hy4ri
3d711c5a51
refactor(sessions): decompose SessionsScreen into focused components
...
Extract SessionCard, SearchResultCard, SessionActionMenu,
SessionsStatsRow, SessionsBulkActionBar, SessionsDialogs, and AutomationGroupList.
2026-09-11 19:28:52 +03:00
Hy4ri
35dc778702
refactor(system): decompose SystemScreen into focused section components
...
Extract Host, Portal, Curator, Gateway, Credentials, Operations,
Checkpoints, ShellHooks, ActionLog, and HookCreateDialog into components/.
2026-09-11 19:07:03 +03:00
Hy4ri
5ecc2e7d88
refactor(skills): decompose SkillsScreen into focused UI components
...
Extract InstalledSkillsView, HubBrowseView, SkillCard, HubSkillCard,
SourceChip, SkillScanViews, and SkillPreviewDialog into components/.
2026-09-11 18:44:09 +03:00
Hy4ri
02d99e159f
fix(groupchat): adopt lifecycle state collection, add error/skeleton states, and fix duplicate test tag
...
Use collectAsStateWithLifecycle, SkeletonListState, and ErrorState.
Disambiguate composer stop button test tag.
2026-09-11 18:27:20 +03:00
Hy4ri
e6e79be10d
feat(common): add ConfirmDialog and safeLaunchAction helper
...
Add reusable ConfirmDialog with destructive action styling.
Add safeLaunchAction to ViewModelExt for mutating calls with unit tests.
2026-09-11 18:24:00 +03:00
Hy4ri
70f331b931
refactor(markdown): extract MarkdownModels and MarkdownParser
...
Split AST block models and zero-Compose Markdown block parser into
ui/chat/markdown/ package. Wire into MarkdownText.
2026-09-11 18:19:47 +03:00
Hy4ri
a83f4725a2
refactor(chat): extract ChatTranscriptMerge helpers from ChatViewModel
...
Extract tool result canonicalization, logical message equality,
attachment ref stripping, and transcript merge logic from ChatViewModel.
2026-09-11 18:12:58 +03:00
Hy4ri
4a93772b93
refactor(mcp): extract AddServerRequestBuilder and McpImportSummary
...
Extract request building and import summary formatting helpers.
Wire into McpServersViewModel with unit test coverage.
2026-09-11 18:00:47 +03:00
Hy4ri
9eaf9663f3
refactor(skills): extract SkillListFilter and SkillScanPresentation
...
Separate pure skill filtering and scan presentation helpers.
Wire into SkillsScreen with unit test coverage.
2026-09-11 17:58:41 +03:00
Hy4ri
6876db0393
refactor(sessions): extract search formatting and paging logic
...
Extract SessionSearchFormatting and SessionsPaging helpers.
Deduplicate paging calculation in SessionsViewModel and add unit tests.
2026-09-11 17:53:02 +03:00
Hy4ri
f0c2d2f87b
refactor(util): extract FormatUtils and deduplicate byte formatting
...
Consolidate formatBytes and formatDuration into util/FormatUtils.
Use in SystemScreen and MemoryScreen, backed by unit tests.
2026-09-11 17:48:13 +03:00
Hy4ri
4287723ab0
refactor(skills): reconcile duplicate components and drop dead category filter
...
Use extracted components/SkillEditorDialog and SourceBadge.
Drop unused CategoryFilter enum.
2026-09-11 17:45:33 +03:00
Hy4ri
7b198fa6d6
fix(chat): restore pending approval guard, tighten encapsulation, drop dormant tracker
2026-09-11 00:21:06 +03:00
Hy4ri
0af4782da1
refactor(chat): wire extracted delegates into chat viewmodel
2026-09-11 00:04:09 +03:00
Hy4ri
b9ee61d429
refactor(remote): extract chat relogin authenticator
2026-09-11 00:03:58 +03:00
Hy4ri
3e012dbf31
refactor(chat): extract rpc request tracker with tests
2026-09-11 00:03:54 +03:00
Hy4ri
280a03ea23
refactor(chat): extract model switch delegate with tests
2026-09-11 00:03:46 +03:00
Hy4ri
9d35bf7cdc
refactor(chat): extract credential prompts delegate with tests
2026-09-11 00:03:42 +03:00
Hy4ri
54dbb99a3d
refactor(chat): extract approvals delegate with tests
2026-09-11 00:03:36 +03:00
Hy4ri
10f7e9fa3c
fix(tool): satisfy ktlint formatting
2026-09-10 22:48:43 +03:00
Hy4ri
91566dfdd7
refactor(tool): split tool display engine
2026-09-10 22:23:41 +03:00
Hy4ri
065dd87d07
test(tool): pin tool-display engine behavior with characterization suite
2026-09-10 21:46:09 +03:00
Hy4ri
3911f5302a
add ktlint to the nix flake
2026-08-31 11:27:18 +03:00
Hy4ri
d8e3992c33
fix: memory screen reset actions serialization error ( fixes #1020 )
2026-08-31 11:10:26 +03:00
Hy4ri
ad91774bc3
chore: removed codeQL
2026-07-30 15:25:21 +03:00
Hy4ri
5e409e8dc6
chore: cleanup
2026-07-26 20:56:44 +03:00
Hy4ri
b2a7dabbfc
nix: flake update
2026-07-23 13:21:14 +03:00
Hy4ri
367d6e22f5
fix: language selector
2026-07-20 17:58:28 +03:00
Hy4ri
2bceac7ab3
chore: add .direnv to gitignore
...
Prevent accidental commits of local direnv environment directory.
2026-07-02 23:14:34 +03:00
Hy4ri
fba06cea95
feat(nix): enable Android emulator and system images in dev shell
...
Enable local AVD testing by including emulator and Google APIs system images (x86_64) in the Nix-managed Android SDK. Inline the intermediate androidComposition variable into androidSdk for clarity. Reformat input attributes and align shellHook output spacing.
2026-07-02 23:14:34 +03:00
Hy4ri
8e8fca756a
feat( #208 ): add Monochrome, Gruvbox, Catppuccin and AMOLED theme presets
2026-06-21 13:01:55 +03:00
Hy4ri
315e1097b2
fix( #207 ): dynamic contrast adjustments for chat bubbles legibility
2026-06-21 12:43:15 +03:00
Hy4ri
78da6af6be
feat( #232 ): dynamic light/dark theme switch without restart
2026-06-21 12:33:57 +03:00
Hy4ri
4221908bd9
feat( #232 ): replace cron action text buttons with compact icons
2026-06-21 12:26:54 +03:00
Hy4ri
69ff66b8de
style: remove unused R import in Navigation.kt to pass ktlint
2026-06-21 12:00:08 +03:00
Hy4ri
44e2006434
refactor( #78 ): extract UI strings for remaining batch 2.3 screens
2026-06-21 11:55:18 +03:00
Hy4ri
b1950ece34
refactor( #78 ): extract UI strings for toolsets webhooks pairing and config screens
2026-06-21 11:48:33 +03:00
Hy4ri
dcb23ba0a3
refactor( #78 ): extract UI strings for logs, system, model, and sessions/history screens
2026-06-21 11:41:41 +03:00
Hy4ri
cdad31b555
refactor( #78 ): extract UI strings for chat, settings, connect, kanban, and skills screens
2026-06-21 11:38:33 +03:00
Hy4ri
acd6cbf751
refactor( #78 ): extract notification strings to resources
2026-06-21 11:31:09 +03:00
Hy4ri
7ca3399a01
chore: enable Android emulator and system images in Nix flake
2026-06-21 11:21:29 +03:00
Hy4ri
c34f6f1e47
refactor( #78 ): extract navigation and drawer labels to string resources
2026-06-21 11:09:44 +03:00
Hy4ri
8efbe02c27
refactor( #78 ): extract shared components and common strings to resources
2026-06-21 11:00:20 +03:00
Hy4ri
19d44c077b
chore: format codebase with ktlint
2026-06-21 10:57:18 +03:00
Hy4ri
34d339e6c9
fix(nav): correct proguard keep rule to use extends instead of implements
...
Proguard/R8 uses extends for both subclassing and interface implementation, so the implements keyword was invalid.
2026-06-20 18:16:30 +03:00
Hy4ri
a2d0aa0785
ci: upgrade all setup/cache/checkout actions to resolve deprecation warnings
...
Upgrade checkout@v7, setup-java@v5, cache@v5, upload-artifact@v7, and setup-gradle@v6 to support Node 24 natively.
2026-06-20 18:07:30 +03:00
Hy4ri
59be56260b
ci: remove forcing actions to node24
...
Avoid deprecation warnings related to forcing Node.js 24 on Node.js 20 actions.
2026-06-20 18:01:53 +03:00
Hy4ri
cbd743a5c9
feat( #125 ): pre-fill clarification input and route response via clarify.respond
2026-06-20 12:51:44 +03:00
Hy4ri
8d31e37baa
feat( #125 ): add free-form text input and option tap/long-press behavior to ClarifyDialog
2026-06-20 12:28:14 +03:00
Hy4ri
98b8588d41
fix( #146 ): finalize active streaming message before tool execution or new message start
2026-06-20 12:16:11 +03:00
Hy4ri
58ee32cbd1
fix(chat): remove extra closing brace in ChatViewModel.kt
2026-06-20 12:04:42 +03:00
Hy4ri
890ca05d16
fix(chat): align block indents and format multiline expressions
2026-06-20 11:18:08 +03:00
Hy4ri
5ba266cefd
fix(chat): resolve compilation errors and formatting violations
2026-06-20 11:12:34 +03:00
Hy4ri
d0eedf053f
refactor(chat): stabilize streaming, session loading, and connection status
...
Optimize streaming message updates, correct session load merging, and derive connection state reactively. Add reconnection UI banner.
2026-06-20 11:04:56 +03:00
Hy4ri
ce5428f66b
feat( #116 ): add direct reply action to background notifications
2026-06-19 23:44:40 +03:00
Hy4ri
a7d730cae5
fix( #114 ): reduce intrusion of background service notification
2026-06-19 23:36:31 +03:00
Hy4ri
45f78443ab
feat( #60 ): format tool output JSON for readability
2026-06-19 23:28:16 +03:00
Hy4ri
8755338636
Revert "Merge pull request #42 from Hy4ri/feat/sessions-screen"
...
This reverts commit 7d50b5acd7 , reversing
changes made to ee97be50cb .
2026-06-19 23:18:26 +03:00
Hy4ri
402664b6f2
fix: fix compilation errors in SessionsScreen.kt
2026-06-19 23:09:55 +03:00
Hy4ri
508aea8bfa
fix( #79 ): centralize retrofit error handling with NetworkResult
2026-06-19 22:58:33 +03:00
Hy4ri
0525398700
Refactor: Delete dead CommandPanel component ( #81 )
2026-06-19 20:20:52 +03:00
Hy4ri
6cc6fb3ecc
Refactor: Remove blanket coroutines keep rule from ProGuard ( #80 )
2026-06-19 20:19:34 +03:00
Hy4ri
39b1d94ad4
Refactor: Remove unused WorkManager dependency ( #77 )
2026-06-19 20:13:28 +03:00
Hy4ri
23ff263641
Fix WebSocket connection stuck on subsequent launches (Issue #45 )
2026-06-19 19:56:50 +03:00
Hy4ri
4ecde51e2c
Consume window insets in NavDisplay to eliminate keyboard gaps (Issue #59 )
2026-06-19 19:47:49 +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
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
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
Hy4ri
0cdf8fd779
fix(navigation): show bottom bar on all screens except ConnectScreen
2026-06-19 18:31:37 +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
Hy4ri
bd439ba674
style: modernize UI aesthetics and replace app launcher icons
2026-06-17 00:42:14 +03:00
Hy4ri
d4328d0fb2
feat: add pairing / connection string parsing & verify with unit tests
2026-06-16 23:13:04 +03:00
Hy4ri
bfa959ed05
test: add ModelViewModel success path test
2026-06-16 18:17:56 +03:00
Hy4ri
3830236585
feat: slash command autocomplete, dynamic theme colors, interactive model selection & drawer icons
2026-06-16 18:15:01 +03:00
Hy4ri
c06e8417db
ci: opt-in to Node 24 for actions to avoid deprecation warnings
2026-06-16 17:51:59 +03:00
Hy4ri
f355814842
fix: plugin status toggling & fix tests compilation
2026-06-16 17:38:12 +03:00
Hy4ri
8ca4599c6a
fixes
2026-06-16 00:52:36 +03:00
Hy4ri
0562906634
fix: replace refresh text button with refresh icon across all screens (Kanban, Cron Jobs, Skills, Channels, Plugins, System)
2026-06-16 00:41:27 +03:00
Hy4ri
0b1822c6a5
ci: integrate gradle action, android static analysis linting, and reports uploading
2026-06-16 00:39:29 +03:00
Hy4ri
46f58de5dc
ci: add GitHub Actions workflow to run lint, test, and build APK
2026-06-16 00:38:43 +03:00
Hy4ri
edc2d45966
fix: correct log response key to 'lines' and convert refresh text to icon button in LogsScreen
2026-06-16 00:36:58 +03:00
Hy4ri
69f36b1606
fix: resolve double-padding on chat screen when keyboard is opened
2026-06-16 00:34:45 +03:00
Hy4ri
48bf0a1ffc
feat: add full chat slash commands support (/help, /status, /sessions, /stats)
2026-06-16 00:32:10 +03:00
Hy4ri
21a020c87e
feat: load message history when switching or resuming a session
2026-06-16 00:27:00 +03:00
Hy4ri
c1d0956a1d
feat: add button to create new chat directly in ChatScreen top bar actions
2026-06-16 00:23:57 +03:00
Hy4ri
3ff148f6d0
Fix CronJob model API compatibility and register BackHandler in SettingsScreen
2026-06-16 00:21:31 +03:00
Hy4ri
9b2aeae836
Add vertical scrolling modifier to sidebar drawer navigation
2026-06-16 00:16:33 +03:00
Hy4ri
03916014c0
Implement Logs, Plugins, Channels, Keys, System, and Kanban screens with full integration tests and code formatting checks
2026-06-16 00:13:18 +03:00