Commit Graph
819 Commits
Author SHA1 Message Date
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
M57 06f170e2a8 Merge pull request #1082 from Hy4ri/refactor/chat-viewmodel-decomposition
refactor(chat): decompose ChatViewModel into focused delegates
2026-09-11 00:26:12 +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
M57 8b9026b83e Merge pull request #1081 from Hy4ri/refactor/tool-engine-split
refactor(tool): split tool display engine
2026-09-10 23:03:40 +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
M57 63e2921b36 Merge pull request #1080 from Hy4ri/dependabot/gradle/dev/coil-3.6.2
chore: bump coil from 3.6.1 to 3.6.2
2026-09-08 11:51:27 +03:00
dependabot[bot] 3bd9716b30 chore: bump coil from 3.6.1 to 3.6.2
Bumps `coil` from 3.6.1 to 3.6.2.

Updates `io.coil-kt.coil3:coil-compose` from 3.6.1 to 3.6.2
- [Release notes](https://github.com/coil-kt/coil/releases)
- [Changelog](https://github.com/coil-kt/coil/blob/main/CHANGELOG.md)
- [Commits](https://github.com/coil-kt/coil/compare/3.6.1...3.6.2)

Updates `io.coil-kt.coil3:coil-gif` from 3.6.1 to 3.6.2
- [Release notes](https://github.com/coil-kt/coil/releases)
- [Changelog](https://github.com/coil-kt/coil/blob/main/CHANGELOG.md)
- [Commits](https://github.com/coil-kt/coil/compare/3.6.1...3.6.2)

Updates `io.coil-kt.coil3:coil-network-okhttp` from 3.6.1 to 3.6.2
- [Release notes](https://github.com/coil-kt/coil/releases)
- [Changelog](https://github.com/coil-kt/coil/blob/main/CHANGELOG.md)
- [Commits](https://github.com/coil-kt/coil/compare/3.6.1...3.6.2)

---
updated-dependencies:
- dependency-name: io.coil-kt.coil3:coil-compose
  dependency-version: 3.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.coil-kt.coil3:coil-gif
  dependency-version: 3.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.coil-kt.coil3:coil-network-okhttp
  dependency-version: 3.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-08 06:34:38 +00:00
M57 0f6f6d2a67 Merge pull request #1077 from Hy4ri/fix/update-dialog-download-indicator
fix(update): bind live download state to dialog and display real-time progress
2026-09-06 21:42:31 +03:00
M57 6edca8180a revert(test): restore pristine AppUpdateViewModelTest to avoid MockK agent exhaustion 2026-09-06 21:30:07 +03:00
M57 09fbcf9d24 test(update): prevent coroutine leak across AppUpdateViewModel unit tests 2026-09-06 21:21:41 +03:00
M57 850d01ca89 fix(update): bind live download state to dialog and show real-time progress 2026-09-06 20:59:39 +03:00
M57 fb509c3cae Merge pull request #1075 from Hy4ri/feat/comprehensive-pr-auto-labeling
ci(labeler): expand auto-labeler to 100% path coverage and add notification/assistant labels
2026-09-06 18:35:07 +03:00
M57 beef8478be Merge branch 'dev' into feat/comprehensive-pr-auto-labeling 2026-09-06 18:34:03 +03:00
M57 629a150c28 Merge pull request #1074 from alexdev03/fix/rotation-preserve-connection
fix(lifecycle): preserve connection across activity recreation
2026-09-06 18:33:23 +03:00
M57 f7318325c7 ci(labeler): achieve 100% path coverage and add notification/assistant labels 2026-09-06 18:26:53 +03:00
M57 ae2d0d8494 Merge branch 'dev' into fix/rotation-preserve-connection 2026-09-06 18:21:43 +03:00
M57 230a3dac5b Merge pull request #1073 from alexdev03/fix/notification-promotion-order
fix(notification): defer shutdown until foreground promotion
2026-09-06 18:19:11 +03:00
AlexDev_ 487d8d1feb fix(lifecycle): preserve connection across activity recreation 2026-09-06 14:24:50 +02:00
AlexDev_ 7223c60a97 fix(notification): defer shutdown until foreground promotion 2026-09-06 14:24:41 +02:00
M57 b9ff160ae4 Merge pull request #1071 from alexdev03/feat/history-automation-sections
feat(sessions): separate conversation and automation history
2026-09-05 23:27:28 +03:00
M57 114654867f fix(sessions): use AutoMirrored KeyboardArrowRight to fix Compose deprecation 2026-09-05 23:19:16 +03:00
M57 1135f05011 refactor(sessions): show job name in automation groups and preserve action labels 2026-09-05 23:02:46 +03:00
AlexDev_ acc9c7ce9a feat(sessions): separate conversation and automation history 2026-09-05 19:55:57 +02:00
M57 fd485a6999 Merge pull request #1067 from alexdev03/fix/bounded-attachment-dispatch
fix(chat): bound attachment encoding and recover rejected sends
2026-09-05 16:45:25 +03:00
M57 ad34a51846 Merge branch 'dev' into fix/bounded-attachment-dispatch 2026-09-05 16:34:36 +03:00
M57 67d26697b8 Merge pull request #1068 from Hy4ri/fix/approval-runtime-session-id-4001
fix(chat): use runtime session ID in approval RPCs to prevent 4001
2026-09-05 14:12:25 +03:00
M57 aff1b7ed3a fix(chat): use runtime session ID in approval RPCs to prevent 4001 session not found 2026-09-05 13:15:08 +03:00
AlexDev_ 89a14eb765 fix(chat): bound attachment encoding and recover rejected sends 2026-09-05 12:04:03 +02:00
M57 20b57af770 Merge pull request #1065 from Hy4ri/fix/bidi-arabic-english-word-isolation
fix(bidi): isolate leading and inline English words in RTL paragraphs
2026-09-04 23:35:21 +03:00
M57 5ce01e429b fix(bidi): isolate leading and inline English words in RTL paragraphs
- In parseInlineSource, wrap consecutive Latin/LTR tokens in LTR isolates (LRI...PDI)
  when rendering inside an RTL block, preventing leading English terms like "Okay"
  from flipping paragraph layout direction and causing BiDi line shuffling.
- Switch textDirection from TextDirection.ContentOrRtl to explicit TextDirection.Rtl
  when isRtl is true across MarkdownText, ChatBubble, and GroupChatScreen, preventing
  first-strong character fallbacks from overriding resolved paragraph direction.
2026-09-04 23:22:22 +03:00
M57 e71745de1f feat(group-chat): format structured tool outputs with ToolResultSummary (#1064) 2026-09-04 22:50:32 +03:00
M57 199771b798 feat(group-chat): format non-string tool outputs using ToolResultSummary
When tools return structured JSON payloads (like skill_view, read_file,
web_search), casting event.data["result"] to String evaluates to null.
Fall back to ToolResultSummary.formatToolResultSummary to format structured
tool payloads into readable text when expanded in group chat cards.
2026-09-04 22:23:04 +03:00
M57 eef4d87f3f Merge pull request #1063 from Hy4ri/feat/group-chat-turn-timeout-and-profile-fallback
fix(group-chat): full desktop parity for turn timeout (180s base + 20m adaptive cap) and multi-profile REST fallback
2026-09-04 22:11:21 +03:00
M57 5888acd6ac Merge pull request #1062 from Hy4ri/feat/group-chat-turn-timeout-and-profile-fallback
fix(group-chat): align turn timeout with desktop (180s) and fix multi-profile REST fallback
2026-09-04 21:22:55 +03:00
M57andLuna c34701f4e2 fix(group-chat): full desktop parity for turn timeout (180s base + 20m adaptive cap) and multi-profile REST fallback
- Match desktop GROUP_TURN_TIMEOUT_MS (180s) and GROUP_TURN_HARD_CAP_MS (20m)
- Implement adaptive deadline extension: actively streaming tokens or running tools within 60s keeps the turn slot alive up to 20m, preventing long research/terminal runs from getting discarded
- Update LEASE_STEP_TTL_MS to 180s
- Add explicit `@Query("profile") profile: String?` support to `HermesApiService.getSessionMessages`
- Pass `bot.name` explicitly in `GroupChatViewModel` REST fallback so multi-profile bot sessions do not hit 404 under `ProfileScopeInterceptor`

Co-authored-by: Luna <luna.m57@agentmail.to>
2026-09-04 21:11:00 +03:00