Settings screen lacks multi-theme options
Implement Settings screen with multi-theme support
The settings screen (SettingsScreen.kt) only declares a package and offers no UI, leaving theme selection or user preferences unimplemented.
- Flesh out
app/src/commonMain/kotlin/gemstone/framework/ui/compose/screen/settings/SettingsScreen.kt to display preferences such as theme selection and user profile.
- Expand
app/src/commonMain/kotlin/gemstone/framework/ui/viewmodel/SettingsViewModel.kt to store and expose theme mode and other settings, persisting them if needed.
- Update
app/src/commonMain/kotlin/gemstone/framework/ui/compose/theme/Color.kt to allow runtime switching among color sets (e.g., Black, Blue, Orange) based on the selected theme.
- Add navigation entry points so the settings screen is reachable from the sidebar or main chat UI.
Search functionality missing
Add chat search capability
The sidebar’s search button has no action, and no view model or UI exists to handle searching chat history or content.
- Create a
SearchViewModel in app/src/commonMain/kotlin/gemstone/framework/ui/viewmodel/ to handle search queries and results.
- Implement a search overlay or screen (e.g.,
SearchScreen.kt) that filters existing chats, hooking it to the search icon in app/src/commonMain/kotlin/gemstone/framework/ui/compose/screen/chat/SideScreen.kt.
- Wire search results to open the selected conversation.
Notification system unimplemented
Implement notifications UI and logic
The notification icon in the sidebar is inert, and no infrastructure exists for displaying alerts or updates.
- Add a
NotificationViewModel under app/src/commonMain/kotlin/gemstone/framework/ui/viewmodel/ to manage notification data.
- Create a composable (e.g.,
NotificationsScreen.kt) to list notifications, triggered by the bell icon in SideScreen.kt.
- Integrate platform-specific notification handling for desktop/mobile targets where feasible.
Spotlight-like global search absent
Create Spotlight-style global search overlay
The app lacks a global command/search overlay (similar to macOS Spotlight) accessible via keyboard shortcut or menu.
- Implement a composable overlay (e.g.,
SpotlightSearchOverlay.kt) under app/src/commonMain/kotlin/gemstone/framework/ui/compose/ that appears over any screen.
- Provide keyboard shortcut support (e.g., Cmd/Ctrl + Space) using platform-specific hooks.
- Reuse the
SearchViewModel to populate results and open selected items.
Conversation text cannot be drag-selected
Enable drag selection for chat messages
Message text within ChatScreen.kt is rendered without any selection container, preventing users from selecting or copying content.
- Wrap message content in
SelectionContainer or use SelectableText within app/src/commonMain/kotlin/gemstone/framework/ui/compose/screen/chat/ChatScreen.kt.
- Populate
app/src/commonMain/kotlin/gemstone/framework/ui/compose/screen/chat/component/MessageItem.kt with a dedicated message composable that supports selection.
- Ensure markdown-rendered text remains selectable.
Markdown rendering is minimal
Introduce comprehensive Markdown rendering
Markdown parsing in ChatScreen.kt covers only simple bold/italic/code patterns and lacks full spec compliance.
- Replace regex-based parsing in
app/src/commonMain/kotlin/gemstone/framework/ui/compose/screen/chat/ChatScreen.kt with a proper Markdown renderer (e.g., a Compose-compatible markdown library).
- Support headings, lists, links, and code blocks, ensuring styling matches the app theme.
- Refactor message rendering to delegate markdown content to the new renderer, maintaining streaming behavior if required.
Settings screen lacks multi-theme options
app/src/commonMain/kotlin/gemstone/framework/ui/compose/screen/settings/SettingsScreen.ktto display preferences such as theme selection and user profile.app/src/commonMain/kotlin/gemstone/framework/ui/viewmodel/SettingsViewModel.ktto store and expose theme mode and other settings, persisting them if needed.app/src/commonMain/kotlin/gemstone/framework/ui/compose/theme/Color.ktto allow runtime switching among color sets (e.g., Black, Blue, Orange) based on the selected theme.Search functionality missing
SearchViewModelinapp/src/commonMain/kotlin/gemstone/framework/ui/viewmodel/to handle search queries and results.SearchScreen.kt) that filters existing chats, hooking it to the search icon inapp/src/commonMain/kotlin/gemstone/framework/ui/compose/screen/chat/SideScreen.kt.Notification system unimplemented
NotificationViewModelunderapp/src/commonMain/kotlin/gemstone/framework/ui/viewmodel/to manage notification data.NotificationsScreen.kt) to list notifications, triggered by the bell icon inSideScreen.kt.Spotlight-like global search absent
SpotlightSearchOverlay.kt) underapp/src/commonMain/kotlin/gemstone/framework/ui/compose/that appears over any screen.SearchViewModelto populate results and open selected items.Conversation text cannot be drag-selected
SelectionContaineror useSelectableTextwithinapp/src/commonMain/kotlin/gemstone/framework/ui/compose/screen/chat/ChatScreen.kt.app/src/commonMain/kotlin/gemstone/framework/ui/compose/screen/chat/component/MessageItem.ktwith a dedicated message composable that supports selection.Markdown rendering is minimal
app/src/commonMain/kotlin/gemstone/framework/ui/compose/screen/chat/ChatScreen.ktwith a proper Markdown renderer (e.g., a Compose-compatible markdown library).