Skip to content

fix(web): cap dialog height so long content keeps actions reachable - #430

Open
EightDoor wants to merge 1 commit into
tickernelz:mainfrom
EightDoor:fix/web-dialog-scroll
Open

EightDoor wants to merge 1 commit into
tickernelz:mainfrom
EightDoor:fix/web-dialog-scroll

Conversation

@EightDoor

@EightDoor EightDoor commented Oct 23, 2026 •

Copy link
Copy Markdown

Summary

Closes #429

The shared dialog is fixed-centered with no height limit, so a long skill body (the skill-content textarea uses field-sizing-content) grows the dialog past the viewport while the page itself does not scroll — the Save button ends up unreachable.

This caps the shared Dialog content at the viewport height with internal scrolling (max-h-[calc(100dvh-2rem)] overflow-y-auto), matching the max-w-[calc(100%-2rem)] pattern already used for width. Fixing it in dialog.svelte covers every dialog (skill editor, memory editor, cleanup/migration dialogs) in one place.

Measured on the Skills → Create Skill dialog with a ~1.7k-char skill body at viewport 1280x800:

before after
dialog height 2024px (top -612, overflowed the viewport) 768px (top 16, fully in viewport)
Save button bottom 1388 — outside viewport, unreachable reachable after scrolling the dialog (bottom 760, in viewport)
dialog scrollable no yes

Test plan

  • Exercised the change locally: reproduced on bun run dev:sim (sim data, no real memories touched), verified before/after geometry above, clicked Save end-to-end (dialog closes, skill saved)
  • Regression on another dialog built on the same component: memory editor with long content — dialog capped at 768px, scrolls, Save reachable and clickable
  • Noted follow-up or known limitations: 7 pre-existing bun test failures on my machine (config/embedding-prefix/profile-runtime) come from local user config leaking into the test env (CONFIG.embeddingPooling resolves to last_token via the installed model preset instead of the expected mean); none import web/ and none are touched by this change. bun test after bun run build: 828 pass / 7 fail / 6 skip.

Checklist

  • Branch is based on main (do not open PRs from commits already on main)
  • [~] bun test passes (or N/A) — see pre-existing failures noted above
  • bun run typecheck passes (or N/A)
  • bun run check passes (format + lint + typecheck; or N/A)
  • cd web && bun run check (svelte-check): 0 errors, 0 warnings
  • Docs / README updated when behavior or contribution process changes — N/A

Dialog content is fixed-centered with no height limit, so a long skill
body (the textarea uses field-sizing-content) grows the dialog past the
viewport and the footer actions end up unreachable because the page
itself does not scroll.

Cap the shared dialog at the viewport height with internal scrolling.
This also fixes other long-form dialogs (e.g. the memory editor) in one
place.

Closes tickernelz#429
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Web UI: skill content editor doesn't scroll, confirm button unreachable for long skills

1 participant