Skip to content

feat(chat): restyle omp's ask dialogs and forms - #472

Merged
andrebrait merged 2 commits into
mainfrom
feat/form-style
Nov 14, 2026
Merged

andrebrait merged 2 commits into
mainfrom
feat/form-style

Conversation

@andrebrait

@andrebrait andrebrait commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

With #460, omp's ask dialogs and forms arrive again as ui_request frames and are rendered from their arguments. This restyles them (components/ExtensionDialog.tsx, app/globals.css):

  • One row style for every choice: pick lists, approvals, ask options and form radios/checkboxes share one 8px-radius row (36px; 40/44px with the larger touch-target setting). Checked and pre-checked choices are highlighted; before, form rows had no highlight and pre-checked ones only showed a small ☑.
  • Focus: outline: none hid keyboard focus on text fields; the app's focus ring is back, around the whole row for "Other".
  • Fields: borders at ≥3:1 contrast on the darkest themes, a red border after a failed Submit (:user-invalid), and text fields follow the touch-target setting.
  • Forms: bold legends, field labels as their own block, muted intro text. "Done selecting" is a dashed, centred action row; footer hover moved from JS to CSS; approval details sit in a mono block.
  • Warm dark theme: adds color-scheme: dark, so native controls there are dark. This affects every native control in that theme.

Behaviour and wording are unchanged. A choice's label (text plus inline <code>, <strong>, …) is one wrapped block next to its control, so a mixed label no longer splits into columns.

Verification

  • Every dialog variant (select, checkbox, confirm, input, editor, approve, ask, form) screenshotted before and after at desktop and 390px width, plus light and warm-dark themes, a failed Submit and the larger touch targets. Three critique rounds with GPT 6.1 Sol; the last had no substantive findings.
  • ExtensionDialog*.test.mjs (5 files, 49 tests) pass; two mobile-overflow assertions ([Bug] question tool layout  #234) moved from inline styles to the CSS class and rule. Typecheck and eslint clean.
  • Not checked: real keyboards and physical phones.

Moved from #467 (head branch now on this repository).

Summary by CodeRabbit

  • New Features
    • OMP questions and forms now use consistently sized choice rows, with clearer checked, hover, and focus states.
    • Text fields have visible borders and focus rings, and invalid fields are outlined in red after submission.
    • The “Done selecting” action has more distinct styling, with increased spacing throughout forms.
    • Touch-friendly sizing adapts to device settings, and native controls follow the warm dark theme.

@coderabbitai

coderabbitai Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Explain Change →

Walkthrough

Extension dialogs now use shared CSS classes for choices, fields, forms, and buttons. The stylesheet adds visual states, spacing, dark native controls, and touch-target sizing. Tests cover choice-label structure and updated class-based layout assertions.

Changes: Extension dialog presentation

Layer / File(s) Summary
Apply shared classes to dialog controls
components/ExtensionDialog.tsx, components/ExtensionDialog.form.test.mjs
The dialog uses shared classes for its controls and layout. Radio and checkbox labels place their text content in a dedicated wrapper.
Style dialog controls and layout
app/globals.css, components/ExtensionDialog.mobile.test.mjs, CHANGELOG.md
The stylesheet defines choice, field, form, and button styling, plus responsive spacing and touch-target sizes. The Ember dark theme sets color-scheme: dark. The mobile tests and changelog reflect the class-based layout and presentation changes.

Estimated code review effort: 2 (Simple) | ~12 minutes

Change: Feature

Suggested reviewers: kahme247

Security architecture risk: Minimal · up to 06e63

The changes restyle existing dialogs without changing approval choices, form-validation controls, or response handling. No introduced or worsened architecture-level security risk was established.

Pre-merge checks: Passed 4

Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title "feat(chat): restyle omp's ask dialogs and forms" matches the main change. The PR restyles the ask dialogs and forms rendered from ui_request frames in components/ExtensionDialog.tsx and app…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title "feat(chat): restyle omp's ask dialogs and forms" matches the main change. The PR restyles the ask dialogs and forms rendered from ui_request frames in components/ExtensionDialog.tsx and app/globals.css, including choice rows, field borders, focus rings, invalid-submit styling, and touch-target sizing. The title is short, specific, and follows the conventional commit style. It does not cover every detail, which is expected.

Finishing Touches

Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

ast-grep (0.51.1)

graphify-out/graph.json

ast-grep skipped this file: it is too large to scan (9845120 bytes)

Checkov (3.3.30)

graphify-out/graph.json

Checkov skipped this file: it is too large to scan (9845120 bytes)

Review coverage is incomplete: 1 file could not be fully reviewed. Findings from completed review steps are included; see review info for details.

Usage-based review receipt

  • Mode: Continue automatically
  • Reviewed files: 6
  • Waived: $1.50 (charged $0.00)
  • View usage details

Note

This review exceeded your plan’s limits and used usage-based reviews—free during trial, billed after paid activation unless disabled. Manage usage-based reviews.

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2a8843f9-5ce4-4df0-bb48-6ebeecf2914f
Commits

Reviewing files that changed from the base of the PR and between 2c68c3a and 06e6376.

Files selected for processing: 6

  • CHANGELOG.md
  • app/globals.css
  • components/ExtensionDialog.form.test.mjs
  • components/ExtensionDialog.mobile.test.mjs
  • components/ExtensionDialog.tsx
  • graphify-out/graph.json
Files not reviewed because the changes were too large to process: 1

  • graphify-out/graph.json

Limit details: You’ve used all 10 included reviews currently available.

@andrebrait
andrebrait force-pushed the feat/form-style branch 9 times, most recently from 311b813 to 035fa8d Compare November 13, 2026 16:52
@andrebrait
andrebrait marked this pull request as ready for review November 13, 2026 22:17
@andrebrait

Copy link
Copy Markdown
Collaborator Author

@codex review

@andrebrait

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@andrebrait

Copy link
Copy Markdown
Collaborator Author

@codex review

@andrebrait

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-14T00:47:21.724536Z 72e7b6c Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Breezy!

Reviewed commit: 72e7b6c5dd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@andrebrait
andrebrait merged commit 8bd0a3a into main Nov 14, 2026
4 checks passed
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.

1 participant