Commit graph

152 commits

Author SHA1 Message Date
RAIT-09
c9ef53482a fix(markdown): make wide display math horizontally scrollable 2026-06-16 23:15:45 +09:00
RAIT-09
90d5e3480f feat(permission): redesign options as vertical icon list
Replace the right-aligned wrapping button row with full-width rows
stacked vertically inside a bordered container, mirroring the diff
block styling within tool calls. Kind semantics move from solid
button backgrounds to a colored Lucide icon per row (check-check /
check / x / ban), gated by displaySettings.showEmojis like other
tool call icons. Long option names truncate with ellipsis and expose
the full text via the title attribute.

Layout is now stable regardless of option name length or view width,
and all !important declarations plus the unreachable selected/disabled
permission styles are removed.
2026-06-05 21:31:47 +09:00
RAIT-09
8346f72170 Merge branch 'master' into dev 2026-05-31 01:11:15 +09:00
RAIT-09
6baf19e7fa style: add CSS for the banner "Learn more" link
The .agent-client-error-overlay-link rule the banner anchor relies on was
missing from the previous commit, so the link rendered unstyled
(flagged in PR review). Add the rule.
2026-05-30 22:25:38 +09:00
RAIT-09
d4e44e932f chore(chat-view): align comments with one-line project guideline
CLAUDE.md mandates 'one short line max' for comments, and a Discord
PR review bot pointed out that several comments added in this PR
ranged from 2 to 13 lines. Trim them, then add one new 1-line note
that the title-update useEffect intentionally fires on initial mount
in addition to subsequent sessionTitle changes — the React-default
behavior the bot flagged as easy to misread.

* computeSessionTitle JSDoc: 13 lines → 1 line (matches sibling
  helpers in session-helpers.ts).
* ChatPanel title-update effect block: 5 lines of context comment
  collapsed; new 1-line note clarifies the initial-mount fire is
  intentional.
* ChatComponent handleSessionTitleChanged comment: 5 → 1 line.
* ChatView.getDisplayText comment: 2 → 1 line.
* ChatView.refreshDisplayText JSDoc: 8 lines → 1-line inline comment.
* styles.css view-header-title-container comment: 8 → 1 line.

No behavior change.
2026-05-22 16:30:43 +09:00
RAIT-09
e6293ec561 fix(chat-view): hide stale title in editor-area view-header
The previous commit made the tab strip header reflect the session
title via WorkspaceLeaf.updateHeader(), but Obsidian's *inner*
view-header (the bar with ◀▶ nav buttons + centered title + view
actions, shown only in editor-area placements) is not refreshed by
that API. It kept showing the initial 'New session' even after the
tab updated, producing a confusing dual-title display.

Hide just the .view-header-title-container with visibility: hidden
(not display: none) so:

* The stale title text disappears.
* The flex slot is preserved, keeping view-actions (this plugin's
  and any other plugins') anchored on the right.
* Nav buttons on the left and the action area on the right both
  remain usable.
* In sidebar placements, .view-header is already absent so this is
  a no-op.
2026-05-22 15:49:30 +09:00
RAIT-09
ca269d0bcf a11y(session-manager): make session-actions a proper keyboard-accessible button
The 'more' (...) icon next to each session was a clickable <div>:
no tabIndex (not focusable), no aria-label (screen readers had
nothing to announce), no Enter/Space activation (keyboard users
couldn't open the menu).

Switch to a <button type="button"> with aria-label='Session
actions' and the Obsidian 'clickable-icon' utility class for
hover/focus styling parity with MessageBubble's CopyButton and
ErrorBanner's close button.

Update moreRef's type to HTMLButtonElement, and reset browser
<button> defaults (background, border, padding, font) on
.agent-client-session-item-more so the visual matches the prior
<div> implementation pixel-for-pixel.
2026-05-22 14:41:31 +09:00
RAIT-09
d045410708 chore: merge dev into session-manager-view
Resolve SessionHistoryModal.tsx conflict by keeping the PR's
extraction of EditTitleModal into its own file, and apply dev's
window.setTimeout fix to the extracted EditTitleModal.ts.
2026-05-22 11:21:52 +09:00
RAIT-09
579ceddde5 fix: add !important to button reset for Obsidian theme override 2026-05-15 00:43:28 +09:00
RAIT-09
6b1232fa64 refactor: unify auto-mention badge as single button element 2026-05-15 00:38:47 +09:00
TARO-gh
1740acba94 feat: make entire auto-mention badge row clickable 2026-05-14 23:22:47 +09:00
RAIT-09
cadbe50d5d feat: add close action to session manager via context menu 2026-05-03 21:02:26 +09:00
RAIT-09
fa21dc65f9 fix: reduce left padding in session manager list 2026-05-03 19:42:04 +09:00
RAIT-09
022a88cf3b feat: add Session Manager view with status icons and focus navigation 2026-05-03 19:36:52 +09:00
RAIT-09
f859bd207b refactor: revert toolbar dropdown visuals to match original style 2026-05-02 22:04:09 +09:00
Zbrooklyn
2e6727d75d refactor(toolbar): themed Menu-based dropdowns, flat typographic style
The mode/model/configOption selectors used native <select> elements,
which opened downward (overlaying the input), couldn't be styled
(browser-default selection rectangle), and truncated labels mid-word.

Replace with a small ToolbarDropdown component that opens Obsidian's
Menu (the same API already used for the sidebar menu in ChatPanel).
The new trigger renders as inline typography — no button chrome — and
the menu opens above the trigger via showAtPosition, so it no longer
covers the input. Active selection uses Menu.setChecked() and inherits
Obsidian theme tokens.

Layout: dropdowns are left-aligned, send button pinned right via
margin-left: auto. Per-category icons (shield/cpu/sliders-horizontal/
brain) add visual hierarchy without adding labels.

Removes the useObsidianDropdown hook and the <select>-specific !important
overrides in styles.css. Net -46 lines.
2026-05-01 16:46:27 -04:00
RAIT-09
09d7353db5 style: use Lucide chevron icons for diff collapse/expand toggle 2026-04-05 18:07:41 +09:00
RAIT-09
ead4751fa6 fix: use Lucide chevron icons for collapsible thought toggle 2026-04-05 17:56:16 +09:00
RAIT-09
56b2d95d99 feat: add "New chat in directory..." to start sessions outside vault (#78)
Separate agentCwd from vaultPath so the agent's working directory
can differ from the vault root. Add ChangeDirectoryModal with text
input and native folder picker (Electron dialog API). Both sidebar
and floating More menus get the new menu item.

Also adds a cwd banner below the header when working outside vault,
and syncs agentCwd on session restore/fork from history.
2026-04-04 18:15:38 +09:00
RAIT-09
bcd67e886c feat: add session title editing from history modal (#147)
Add pencil icon to session history items that opens an EditTitleModal
for renaming sessions. The title is persisted locally via saveSession
with optimistic update and rollback on error. For agent-only sessions,
the original session cwd is preserved (not the current vault path).
2026-04-04 14:36:47 +09:00
RAIT-09
6fe7b675a3 style: apply prettier formatting 2026-03-29 22:54:55 +09:00
RAIT-09
9b649045e7 style: use Obsidian native clickable-icon for copy button, remove !important overrides 2026-03-28 01:32:06 +09:00
RAIT-09
603a5c703a Merge branch 'master' into dev 2026-03-28 01:24:45 +09:00
RAIT-09
33c6b6b983 style: adjust copy button to borderless icon style and tweak positioning 2026-03-28 01:16:20 +09:00
RAIT-09
20e13f5de9
Merge pull request #189 from aviatesk/copy-button
feat: add copy-to-clipboard button on message hover
2026-03-28 01:00:48 +09:00
RAIT-09
204dd95cd5 Merge branch 'master' into dev 2026-03-28 00:54:49 +09:00
Shuhei Kadowaki
a1c3c7d9b4 fix: enable horizontal scroll for wide markdown content (mermaid, tables, svg)
Fix CSS selector from descendant (.a .b) to compound (.a.b) since both
classes are on the same element. Remove redundant markdown-rendered rule
and max-width constraint that prevented overflow-x scrolling.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 23:15:03 +09:00
Shuhei Kadowaki
ca5c0f188a feat: add copy-to-clipboard button on message hover
Show a copy button when hovering over any message (user or assistant)
that contains text content. Uses callback ref for reliable icon
rendering on conditional mount, and handles text_with_context alongside
plain text extraction.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 22:23:12 +09:00
RAIT-09
87f123b7e1 perf: virtualize message list with @tanstack/react-virtual 2026-03-23 01:21:43 +09:00
RAIT-09
a889dbfe49 refactor: simplify TerminalRenderer to direct output display 2026-03-18 00:29:01 +09:00
RAIT-09
f1a7ab3f26 refactor: simplify PermissionRequestSection and remove post-selection UI 2026-03-17 23:54:43 +09:00
RAIT-09
4f1ef9f832 refactor: replace tool call status text with inline Lucide status icons 2026-03-17 23:45:34 +09:00
RAIT-09
b05e8cfd65 style: remove line numbers and markers from diff display 2026-03-17 23:29:49 +09:00
RAIT-09
426af94744 style: adjust error overlay and plan spacing 2026-03-17 23:13:12 +09:00
RAIT-09
cc94839b10 style: normalize plan component margin 2026-03-17 23:10:29 +09:00
RAIT-09
88d5d4947a refactor: replace emoji icons with Lucide icons via LucideIcon component 2026-03-17 23:08:23 +09:00
RAIT-09
ec18056c55 style: make input action selectors shrink on narrow widths 2026-03-17 22:29:55 +09:00
RAIT-09
20fb84743d style: add left padding to header title 2026-03-17 22:22:52 +09:00
RAIT-09
66ca586ee1 style: increase floating chat minimum width 2026-03-16 15:48:53 +09:00
RAIT-09
bf93e0c1e9 Merge branch 'dev' into style/ui-redesign 2026-03-16 15:42:58 +09:00
RAIT-09
8de38b731f refactor: adopt Obsidian native nav-header pattern for chat UI
- Rewrite ChatHeader to use .nav-header + .nav-buttons-container
  with .clickable-icon .nav-action-button for native sidebar look
- Set navigation=false on ChatView to hide unused .view-header
- Replace custom header button CSS with Obsidian's clickable-icon
- Adjust layout spacing for sidebar, floating chat, and dropdowns
- Use Obsidian CSS variables for colors, fonts, and spacing
2026-03-16 15:42:17 +09:00
RAIT-09
96dbbd6c30 style: remove border-bottom from inline header 2026-03-16 13:11:11 +09:00
RAIT-09
2b12da0219 style: remove border-bottom from auto-mention-inline 2026-03-16 13:08:36 +09:00
RAIT-09
371cd86d93 revert: restore non-header CSS changes from #159 2026-03-16 13:04:49 +09:00
RAIT-09
24e14bee0f refactor: remove AgentIcon component and related code 2026-03-16 12:57:43 +09:00
RAIT-09
e559aae56a feat: show working directory for sessions from different vaults in history 2026-03-15 16:48:43 +09:00
RAIT-09
347aa39e84 feat: show "Waiting for permission..." status on loading indicator (#154) 2026-03-15 13:50:23 +09:00
Ardha
295fb81979 feat: add adaptive agent icons and refine minimalist header UI 2026-03-10 15:08:35 +01:00
Ardha
acf7b764b5 style: modernize header UI for better Obsidian integration 2026-03-08 21:24:48 +01:00
RAIT-09
75bdafad27 refactor: generalize ErrorOverlay with variant support
Add OverlayVariant type ("error" | "info") to support both error
displays and informational notifications. Remove outside-click-to-close
behavior, render suggestions as copyable code blocks for non-error
variants, and restrict emoji to error variant only.
2026-03-01 18:37:54 +09:00