Commit Graph
100 Commits
Author SHA1 Message Date
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