Skip to content

Rebuild Settings and top-anchor every modal #170

Description

@iamnbutler

Settings visibly jumps when its final height loads because every Ace dialog is vertically centered (translate-y-[-50%]) and Settings grows as async provider, helper, and native-permission state arrives. Settings has also grown into a stack of bordered diagnostic panels and permanently expanded forms.

Scope

  • Top-anchor every modal from the shared packages/ui dialog primitive at about 20vh on comfortable desktop sizes, with fixed margins on compact or short screens. Generic dialogs, Settings, and the command palette share one remaining-viewport-height calculation; no content-height-dependent translation or scale origin that reads as vertical jumping. Consumers: Settings, Open Project, tab Rename, command palette.
  • Rebuild Settings as a stable bounded two-column shell: a small navigation rail (General, Providers, Computer use, This Mac/This host, Updates), fixed header, and scrolling content so section switches and async state never move its top.
  • Rows: label and restrained description on the left, compact controls on the right; subtle separators; diagnostics and long technical explanations behind secondary disclosure, with actual errors and recovery actions visible.
  • Preserve every working control and state: provider key add/replace/check/remove and secret handling, default model and environment overrides, helper approval/command-line-host/start/restart/stop distinctions, Tailscale/GitHub/tool diagnostics, computer-use permissions and clipboard policy, automatic update checking vs explicit install/restart, ace:updates routing, and disabled/loading/error/disconnected states.

Out of scope

Accounts, billing, team access controls, old sandbox options, new fake settings, or duplicate persistence. Timeline clipping (#168).

Activity

  1. iamnbutler commented on Oct 7, 2026

    @iamnbutler
    ContributorAuthor

    Follow-up requested: reduce the shared modal top offset from 20dvh to a fixed 64px. Implemented in #196, preserving top anchoring and height/scroll constraints. Formatting/lint, UI typecheck, and app production build pass.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions