Commit graph

49 commits

Author SHA1 Message Date
RAIT-09
eb70f315bb
Merge branch 'dev' into Gnonymous/feature/chat-font-size 2026-02-18 01:43:59 +09:00
Eohan G.
70822af619 fix: restore inherited chat font sizing and improve input behavior 2026-02-15 01:15:37 +08:00
Eohan G.
c7bd805192 fix: restore manifest and make chat font-size behavior reproducible 2026-02-15 00:44:09 +08:00
Eohan G.
846739fec8 feat: add configurable chat font size setting 2026-02-15 00:06:34 +08:00
RAIT-09
850f917ed0 feat: remember last used model per agent (#103)
Persist the user's model selection per agent to settings and
automatically restore it when creating a new session. If the saved
model is no longer available, silently falls back to the agent default.
2026-02-06 23:02:51 +09:00
RAIT-09
bfada34fb2 feat(floating): add open/close/new floating chat commands and collapse() to IChatViewContainer 2026-02-06 20:54:01 +09:00
RAIT-09
c25fe507e4 refactor(floating): extract button and instance menu into independent FloatingButton component
Separate the floating button and instance selector menu from
FloatingChatView into a standalone FloatingButton component.
This decouples the button lifecycle from any specific chat view
instance and fixes z-index stacking by using separate DOM roots:
- .agent-client-floating-button-root (z-index: 30) for button/menu
- .agent-client-floating-view-root (z-index: 20) for chat windows
2026-02-06 19:06:54 +09:00
RAIT-09
9320d42002 feat(floating): offset new window position from parent window
New floating chat windows now spawn 30px up and left from the
parent window position to avoid complete overlap.
2026-02-06 17:49:11 +09:00
RAIT-09
7524e6f0b6 fix(plugin): avoid stealing focus from floating view on commands 2026-02-06 01:04:46 +09:00
RAIT-09
877ef14974 refactor(plugin): integrate ChatViewRegistry and simplify view management 2026-02-06 00:46:54 +09:00
RAIT-09
a36d1ee5db refactor(FloatingChatView): implement IChatViewContainer with feature parity 2026-02-06 00:44:26 +09:00
RAIT-09
bd63649019 refactor(ChatView): implement IChatViewContainer interface 2026-02-06 00:41:30 +09:00
RAIT-09
40a5bff7d0 fix(floating-chat): only initialize when showFloatingButton is enabled
- Add setting check before mounting floating chat in onload()
- Handle dynamic toggle in settings to create/close instances
- Prevents unnecessary agent process startup for sidebar-only users
2026-02-03 00:13:29 +09:00
RAIT-09
f3ea41d9d2 style: format code with prettier 2026-02-02 14:16:24 +09:00
RAIT-09
ea81cf9652
Merge pull request #102 from Maws7140/floating-chat-ui
Floating chat UI
2026-02-02 11:58:18 +09:00
RAIT-09
d1a52307d9 refactor(logger): remove unused logger field from plugin 2026-02-01 15:26:56 +09:00
RAIT-09
d5136b10d0 refactor(logger): initialize logger singleton in plugin onload
- Add logger field to AgentClientPlugin
- Call initializeLogger() after loadSettings()
2026-02-01 14:39:27 +09:00
Maws
0c7b88586d fix lint: remove unused imports and variables 2026-01-31 18:18:55 -05:00
Maws
34375bf2b2 remove code block chat implementation
Narrowing PR scope to just floating chat as discussed.
Code block chat will be a separate PR later.
2026-01-31 18:17:04 -05:00
Maws
8a420a4794 feat: add support for multiple floating chat windows
Users can now open multiple independent floating chat windows, each
with its own session. Added instance selector menu when clicking the
floating button with multiple windows open.

Changes:
- Track floating chat instances with unique IDs
- Added window management methods to plugin class
- Instance selector UI with expand/close actions
- Custom events for inter-instance communication
- Fixed header width and updated inline header for consistency

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 17:22:36 -05:00
Maws
f96027891b added notion style chat views 2026-01-24 12:54:52 -05:00
RAIT-09
3257162445 refactor: remove redundant broadcast success notifications 2026-01-24 14:46:09 +09:00
RAIT-09
baf7f05465 feat: Add broadcast command support for chat views
Introduces controlled input state management in ChatInput and ChatView to enable prompt, send, and cancel broadcast commands across multiple chat views. Adds ChatInputState model, registers new broadcast commands in the plugin, and implements input state sharing and command handling for multi-view operations.
2026-01-17 23:32:27 +09:00
RAIT-09
ae81a7abdb feat: Add 'Open new chat view' command and UI tweaks 2026-01-17 22:29:00 +09:00
RAIT-09
d9299709f9 fix: add session lock to prevent race conditions in multi-session 2026-01-17 21:47:55 +09:00
RAIT-09
268ed1aea7 feat: add chat view location setting 2026-01-17 14:43:54 +09:00
RAIT-09
d1b3fbd0b8 feat: add focus next/previous chat view command 2026-01-17 14:27:09 +09:00
RAIT-09
4dcd06e5bc fix: activateView targets lastActiveChatViewId instead of first leaf 2026-01-17 14:15:23 +09:00
RAIT-09
2f79542c52 feat: add multi-agent session support (#59)
Enable multiple independent agent sessions in separate ChatViews.
Each view manages its own AcpAdapter and agent process.

- Adapter management: singleton → Map<viewId, AcpAdapter>
- Settings Menu for agent switching and new view creation
- Keybinds target last active view only
- Rename activeAgentId → defaultAgentId (with migration)Enable multiple independent agent sessions in separate ChatViews.
Each view manages its own AcpAdapter and agent process.

- Adapter management: singleton → Map<viewId, AcpAdapter>
- Settings Menu for agent switching and new view creation
- Keybinds target last active view only
- Rename activeAgentId → defaultAgentId (with migration)
2026-01-17 02:19:19 +09:00
RAIT-09
d52eb3e0a7 feat: add customizable frontmatter tag for exported notes
Add "Frontmatter tag" setting in Export section to customize
the tag applied to exported chat history notes. Supports nested
tags (e.g., projects/agent-client). Leave empty to disable tags.

Default remains "agent-client" for backward compatibility.
2026-01-17 01:16:29 +09:00
RAIT-09
57d8c2c4f4 feat: add option to hide emojis in UI
Add "Show emojis" toggle in Display settings (default: ON).
When disabled, emoji icons are hidden from tool calls, thoughts,
plans, terminals, and permission results.

Plan entries now use text styles to indicate status regardless of
emoji setting: completed items show strikethrough, in-progress
items are bold.
2026-01-17 01:06:06 +09:00
RAIT-09
e0654a08de Merge branch 'hotfix/fix-chat-input-focus' into dev 2026-01-14 23:55:00 +09:00
RAIT-09
0cd74ef07a fix: Update chat input focus selector to match renamed CSS class 2026-01-14 22:46:26 +09:00
RAIT-09
ff68be810d feat: Make note and selection length limits configurable
Add maxNoteLength and maxSelectionLength settings to displaySettings,
allowing users to configure the truncation limits for mentioned notes
and text selections. Default remains 10000 characters with minimum of 1.

- Add settings to plugin interface, defaults, and loadSettings parsing
- Update message-service.ts to accept limits as parameters
- Pass settings through SettingsContext in useChat
- Add UI controls in settings tab under Display Settings
2026-01-12 18:59:11 +09:00
RAIT-09
8d20dd72df feat: Add auto-collapse for long diffs (#36) 2026-01-11 13:26:02 +09:00
RAIT-09
29e45ce978 fix: Resolve lint errors (non-sentence-case)
- Change session callback types to Promise<void> for accurate typing
- Add void operator for floating promises in SessionHistoryContent
- Remove unused SessionInfo import from agent-client.port.ts
- Add proper SavedSessionInfo import and type assertion in plugin.ts
2026-01-08 16:11:40 +09:00
RAIT-09
f215fc26c0 fix: Sync plugin.settings with SettingsStore state on update
Introduces local session saving, retrieval, and deletion in settings-store and exposes these methods via ISettingsAccess. Updates ChatView and useChat to save session metadata on first message, and useSessionHistory to fallback to local sessions when agent session/list is unsupported. SessionHistoryModal now displays a banner when showing local sessions. Updates plugin settings schema and styles for local session support.
2026-01-08 01:19:38 +09:00
RAIT-09
ae04e9b403 style: Format code with Prettier 2026-01-06 20:45:16 +09:00
Chris Mckay
8b63b686e0 Use fire-and-forget for quit cleanup to avoid blocking 2026-01-06 09:26:20 +10:00
Chris Mckay
a8354a0a0a Refactor adapter ownership to plugin with lazy creation
Move AcpAdapter creation from ChatView to plugin.getOrCreateAdapter()
for cleaner lifecycle management. The plugin now owns the adapter
directly, eliminating the need to register it from the React component.
2026-01-05 16:13:59 +10:00
Chris Mckay
4c70e7f37a Add quit handler to clean up ACP session on app close
Register adapter with plugin and use Obsidian's quit event to call
disconnect() before the app exits, preventing orphaned agent processes.
2026-01-05 16:03:36 +10:00
RAIT-09
83cb1d1caa Add image export options to chat exporter
Introduces settings to include images in exported markdown files, with options to save images using Obsidian's attachment settings, a custom folder, or embed as Base64. Updates the settings UI, plugin settings, and chat exporter logic to support these new export options.
2025-12-25 14:28:06 +09:00
RAIT-09
4dad6d0e69 Add configurable send message shortcut to chat input
Introduces a new setting allowing users to choose between 'Enter' or 'Cmd/Ctrl+Enter' as the keyboard shortcut for sending messages in the chat input. Updates the settings UI, plugin settings interface, and chat input logic to respect the selected shortcut.
2025-12-17 00:32:33 +09:00
RAIT-09
7f3583ba6c Add prerelease update checks and bump version to 0.4.1
Enhanced the update check logic to notify users of both stable and prerelease updates depending on their current version. Added 'semver' and its types as dependencies, and updated the version to 0.4.1 in manifest and package files.
2025-12-13 16:46:04 +09:00
RAIT-09
055e2590ab Remove unnecessary async from callbacks
Removed the async keyword from the onClose method in ChatView and the cancel-current-message command callback in plugin.ts, as neither function uses await or returns a promise.
2025-11-27 12:00:00 +09:00
RAIT-09
abe4511f08 Refactor markdown rendering and improve type safety
Refactored MarkdownTextRenderer to accept an Obsidian App instance instead of the plugin, and updated all usages accordingly. Improved type safety for aliases extraction in Obsidian adapters. Enhanced error handling in AcpAdapter with more precise type checks. Simplified CustomAgentSettings to a type alias. Minor improvements to settings loading and error handling in plugin and hooks.
2025-11-25 00:02:13 +09:00
RAIT-09
d1cdee29b7 Add void to async calls for better promise handling
Prepends 'void' to fire-and-forget async function calls throughout the codebase to explicitly ignore returned promises and prevent unhandled promise rejections. Also updates a workspace method to use 'await' for proper async flow.
2025-11-24 23:29:59 +09:00
RAIT-09
192e009c6e Add cancel message command and event handling
Introduces a new workspace event and command to allow users to cancel the current message in the chat view. The ChatView component now listens for the 'agent-client:cancel-message' event and triggers message generation cancellation, and the plugin registers a corresponding command.
2025-11-24 22:45:00 +09:00
RAIT-09
f42259d650 Refactor project structure and update imports
Moved core domain models and ports to a new 'domain' directory, relocated the main plugin implementation to 'plugin.ts', and moved terminal manager to 'shared'. Updated all relevant import paths throughout the codebase to reflect the new structure. This refactor improves code organization and maintainability.
2025-11-24 20:59:15 +09:00
Renamed from src/infrastructure/obsidian-plugin/plugin.ts (Browse further)