M57
69cd34d289
feat(vault): credential vault status and mid-turn auth prompt handling ( #1090 ) ( #1097 )
2026-09-13 00:20:07 +03:00
M57
d774a63663
feat(plugins): browse and install official plugins from catalog ( #1088 ) ( #1096 )
2026-09-12 22:32:52 +03:00
M57
47b6955c9a
fix(chat): bind tool milestone dividers to message id and exclude synthetic rows ( #1095 )
2026-09-12 16:29:40 +03:00
M57
065c7fd75f
feat(chat): display token usage and tps in message footers ( #1094 )
2026-09-12 16:04:13 +03:00
M57
0bb087c41e
feat(chat): integrate fast mode toggle into generation controls dropdown ( #1093 )
2026-09-12 15:15:22 +03:00
M57
5dc3896237
feat(sessions): branch tree flattening with group recency and collapsible pinned section ( #1087 )
2026-09-12 01:41:24 +03:00
M57
fad2dd3b86
feat(chat): upgrade tool rendering, add missing renderers, and clamp output budget ( #1086 )
2026-09-12 01:14:14 +03:00
M57
1cdc0dbfc0
fix(ws): gateway liveness, replay correctness, and streaming flush ( #1085 )
2026-09-12 00:19:13 +03:00
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
M57
850d01ca89
fix(update): bind live download state to dialog and show real-time progress
2026-09-06 20:59:39 +03:00
M57
ae2d0d8494
Merge branch 'dev' into fix/rotation-preserve-connection
2026-09-06 18:21:43 +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
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
ad34a51846
Merge branch 'dev' into fix/bounded-attachment-dispatch
2026-09-05 16:34:36 +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
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
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 and Luna
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
M57 and Luna
fd011ac78d
feat(group-chat): support dynamic BiDi Arabic input and RTL message bubbles
...
- Align GroupChatComposer with ChatComposer (PR #1047 ):
- Dynamic BiDi input detection via BidiUtils.resolveLayoutDirection
- Docks cursor to the right edge and sets TextDirection.Rtl for Arabic
- Preserves LTR outer surface and row to keep send/stop button pinned in place
- User message bubbles: dynamic RTL layout direction and TextDirection.ContentOrRtl
- Bot messages: dynamic TextDirection for bot display name, active speaker thinking row, and tool labels
- Tool code/commands preserved as LTR monospace with BiDi-safe output text
Co-authored-by: Luna <luna.m57@agentmail.to >
2026-09-04 15:38:36 +03:00
M57 and Luna
1126cf1477
feat(group-chat): add ephemeral visual pass indicator when bot passes turn
...
- Display a subtle centered system pill '[⏩ {bot} passed]' when a bot passes
- Style with Material icon (Icons.Filled.FastForward) and surface tokens
- Keep pass indicators strictly ephemeral to avoid polluting LLM prompt context
- Exclude from cross-device snapshot sync so it disappears on restart/rehydrate
- Add English and Arabic localized string resources
- Update GroupChatViewModelTest to verify pass indicator presence and LLM filtering
Co-authored-by: Luna <luna.m57@agentmail.to >
2026-09-04 15:20:56 +03:00
M57
7ae8977dc3
feat(group-chat): expand tool execution details and terminal output preview ( #1058 )
2026-09-04 14:52:15 +03:00