Skip to content

Fix/vault assistant mobile#310

Merged
failerko merged 36 commits intomasterfrom
fix/vault-assistant-mobile
Apr 19, 2026
Merged

Fix/vault assistant mobile#310
failerko merged 36 commits intomasterfrom
fix/vault-assistant-mobile

Conversation

@failerko
Copy link
Copy Markdown
Collaborator

Closes #278

failerko and others added 30 commits April 18, 2026 17:04
Captures the design for bringing mobile feature parity with the desktop
Vault Assistant and fixing width issues on Galaxy Fold inner screens and
narrow desktop windows.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Spec self-review caught a missing behavior: if the editor closes while
the Entity tab is active, auto-switch back to Chat tab.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
10 bite-sized tasks covering hook creation, layout refactor, tab
architecture, auto-open guard removal, pulse animation, narrow-desktop
flex fix, and manual smoke test.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Move Dialog.Title into the shared assistantContent() snippet so both
compact (Dialog.Root) and wide (ResponsiveModal.Content) shells render
it, ensuring the dialog has an accessible name across all layouts.

Reset prevPendingCount alongside activeTab in all three conversation
handlers (new, switch, delete) to prevent stale pulse comparisons when
moving between conversations with different pending states.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The change-card header used to keep action buttons on a single row via
shrink-0, which on phone widths caused the action-indicator label to
overlap the Edit/Reject/Approve buttons. The preformatted content could
also render with a min-content larger than the card itself, leaving the
card visually empty under overflow-hidden on narrow widths.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The <pre> elements had intrinsic min-content behavior that could push
past the card bounds on very narrow viewports, causing content to be
clipped invisibly by the card's overflow-hidden. Switching to <div>
with whitespace-pre-wrap gives identical visual wrapping without the
min-content quirk.

The header's left (entity info) column now takes full row width below
the sm breakpoint, so the right (action) column wraps below rather than
visually overlapping the action label.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The left column's overflow-hidden is what actually prevents badge/action-
indicator children from bleeding into the right column. Forcing a full-
row split below sm wrapped the buttons too eagerly; relying on flex-wrap
+ overflow-hidden wraps only when the row genuinely can't fit everything.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…zing

Dropping opacity-85 and transition-all tests the hypothesis that Svelte's
in:fade interaction with the opacity class (or the combined all-property
transition) was leaving the auto-approved NEW LOREBOOK card's content
invisible on narrow widths. Bumped border/bg to teal/30 and /8 to keep
the card's auto-approved signal readable without the opacity filter.

The header now uses flex-auto (basis: auto) on the left info column, so
its natural width prevents flex from shrinking the row below its min-
content. flex-wrap then reliably moves the right action-button column
to a second row only when the header genuinely cannot fit both on one
line — no mid-width overlap, no wrapping too eagerly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The sidebar column had no flex-1/min-h-0 in mobile (flex-col parent),
so it sized to the entries list's intrinsic height and the inner
overflow-y-auto had no constrained parent to scroll inside.

Added flex-1 min-h-0 on mobile, reverted to flex-none at sm: so the
w-72 sidebar width still applies in the row layout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
On narrow widths (phone / Fold outer) the four+ action buttons
(Vault Assistant, Tags, Browse Online, Import Card, New …) don't
fit alongside the title + back button, so the rightmost ones get
clipped off-screen.

Replaced justify-between with gap + flex-1 on the action group, with
overflow-x-auto and shrink-0 children so the group takes the remaining
row width and horizontally scrolls once its natural content exceeds it.
Buttons no longer get clipped; users can swipe to reach any action.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace the horizontal scroll with an icon-only presentation on narrow
widths. Drops button text labels (not icons) below 1024px via
max-lg:[&_span]:!hidden — Button's own hidden-sm:inline label span is
overridden with important so the action buttons shrink to icon size
and all fit alongside the title. At lg and up, full labels show again.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
h-4 hard-capped the chip's height, so trait text that wrapped to a
second line on narrow widths escaped the chip outline. Switched to
min-h-4 with an explicit leading-4 and py-0 so single-line chips look
identical to before while multi-line text grows the chip.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
failerko and others added 4 commits April 19, 2026 03:11
On the Galaxy Fold inner screen (~816px) the TagManager's max-w-2xl cap
and DiscoveryModal's sm:w-[calc(100%-2rem)] left large side gutters.
Switched both to w-full max-w-none below lg and kept the centered
calc+max-w layout only at lg (1024px) and up, matching the compact
breakpoint used elsewhere in the vault flow.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@failerko failerko added this to Kanban Apr 19, 2026
@github-project-automation github-project-automation Bot moved this to Unsorted in Kanban Apr 19, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new 'compact' layout mode for the Vault Assistant, transitioning from mobile-specific detection to a 1024px breakpoint hook. Key changes include a tabbed interface for smaller screens to toggle between chat and entity editing, refactoring the assistant UI into reusable snippets, and adding rustls as a dependency for the Tauri backend. Various UI components were updated with responsive styling, and the Vault Assistant now includes logic for tab pulsing and auto-switching. Feedback focuses on ensuring consistent DOM update synchronization with tick() and reducing duplicated error display logic.

Comment thread src/lib/components/vault/InteractiveVaultAssistant.svelte
Comment thread src/lib/components/vault/VaultLorebookEditorContent.svelte
@failerko failerko merged commit 6240f79 into master Apr 19, 2026
1 check passed
@failerko failerko deleted the fix/vault-assistant-mobile branch April 19, 2026 12:31
@github-project-automation github-project-automation Bot moved this from Unsorted to Done in Kanban Apr 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

can't scroll up or down through entries inside a lorebook

2 participants