fix(web): prevent text selection on sidebar/header and fix header actions overflow - #773

Closed
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow
Closed

fix(web): prevent text selection on sidebar/header and fix header actions overflow#773
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow

Conversation

@Natxo09

@Natxo09Natxo09 commented Mar 10, 2026

Copy link
Copy Markdown

What Changed

Two small CSS fixes on the sidebar and chat header:

  • Added select-none to the sidebar container and chat header to prevent accidental text selection on non-interactive elements (logo, labels, project names, buttons, badges).
  • Added overflow-hidden to the header actions container to prevent the diff toggle button from overlapping the git actions group on narrow viewports.

Why

  • Clicking or dragging anywhere on the sidebar (e.g. the settings button, the logo, project names) would select text, which feels broken.
  • When resizing the window smaller, the diff toggle button would visually overlap the commit/push/create PR button group since none of the children can shrink and there was no overflow strategy.

UI Changes

Before:
Captura de pantalla 2026-03-10 a las 3 43 19

After:
Captura de pantalla 2026-03-10 a las 3 44 03

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Prevent text selection on sidebar and header, and fix header actions overflow

  • Adds select-none to the sidebar and chat view header to prevent accidental text selection in non-content UI areas.
  • Expands the header actions container from flex-1 to flex-[2] and adds overflow-hidden with [&>*]:shrink-0 so action buttons don't compress on narrow widths.
  • Shifts responsive label and separator visibility from the @sm/header-actions breakpoint to @md/header-actions across ChatHeader, OpenInPicker, GitActionsControl, and ProjectScriptsControl.

Macroscope summarized d9db83a.

…ions overflow
- Add select-none to sidebar and chat header to prevent accidental text
selection on non-interactive UI elements (logo, labels, buttons)
- Add overflow-hidden to header actions container to prevent the diff
toggle button from overlapping git action buttons on narrow viewports
@coderabbitai

coderabbitaiBot commented Mar 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7af6c99e-cead-4212-b6b5-224b23ab186a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added the vouch:unvouched PR author is not yet trusted in the VOUCHED list. label Mar 10, 2026
@Noojuno

Copy link
Copy Markdown
Contributor

@Natxo09 The overflow is still broken at the default window size (1100x780)

image

…w size
Give the actions container more flex space (flex-[2]) and prevent
children from shrinking. Raise container-query breakpoint from @sm to
@md so text labels only appear when there is enough room.
@Natxo09

Copy link
Copy Markdown
Author

Fixed, was using a breakpoint too small for the labels. Here's how it looks now:

Captura de pantalla 2026-03-10 a las 5 14 24

@juliusmarminge

Copy link
Copy Markdown
Member

the real issue here is that the header is split in 50/50, so the thread title + project pill takes up 50% of the width even if not used, instead of letting the action buttons occupy that space.

should fix that instead of bumping the breakpoint to @md cause now you'll essentially never see the buttons on laptops, always the compact view even if it looks like there's plenty of space

cursorBot pushed a commit to arul28/ADE that referenced this pull request Apr 19, 2026
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
arul28 added a commit to arul28/ADE that referenced this pull request Apr 20, 2026
…gs (#163)
* feat: port t3code UX — model slug, code copy, sounds, PR ahead hint
Inspired by upstream t3code PRs:
- pingdotgg/t3code#1 (resolveModelSlug-style normalization)
- pingdotgg/t3code#2092 (code block copy for touch / position / clipboard fallback)
- pingdotgg/t3code#2057 (completion chime when agent turn settles)
- pingdotgg/t3code#2081 (surface ahead-of-base for clean pushed branches on mobile create PR)
Adds resolveModelSlug with optional provider hint, chat code copy controls and
non-secure clipboard fallback, optional Web Audio completion sound with settings,
and commitsAheadOfBase on mobile PR create eligibility with iOS subtitle.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: banner dismiss controls, resilient completion sound, tests
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* feat(settings): appearance tab with chat font preview (t3 #2174)
- New Appearance settings: theme swatches, chat font size 12–24px with live
ChatMarkdown preview, copy-button position + completion sound (moved from General)
- chatFontSizePx in appStore; work chat scales via ChatSurfaceShell zoom
- resolveModelSlug: exact getModelById before provider-hint lowercasing (review)
- iOS Create PR lane subtitle when commitsAheadOfBase is 0
- A11y: label range input; fix preview sample template literal
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: remove upstream PR link from UI; cross-browser chat scaling
- Appearance: drop user-visible t3code/GitHub link; keep neutral copy
- ChatSurfaceShell: scale header/body/footer via transform + inverse
dimensions (Firefox-safe) instead of CSS zoom; contentScale prop
- AgentChatPane: pass contentScale from chat font preference
- agentTurnCompletionSound: module + function docstrings (CodeRabbit hint)
- Add ChatSurfaceShell scale wrapper tests with cleanup between cases
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: address CI failures and review feedback on PR branch
Repair grepSearch JS-fallback tests by routing ripgrep exec through a test hook; relax TerminalView WebGL expectation for headless CI; play completion sound only on successful turns; preserve case-sensitive model refs with provider hints; improve Appearance preview layout, a11y, and clipboard cleanup; keep banner dismissals across project switches; make iOS commitsAheadOfBase backward compatible and show lane subtitles.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: safer repo-wide grep fallback, chat markdown code blocks, copy polish
Skip hidden root-only dirs (e.g. .ade) in JS grep when searching the whole repo while still entering .github; add regression test. Route ChatMarkdown fenced blocks through HighlightedCode so copy placement applies in previews. Stub WebGL canvas in TerminalView tests instead of weakening assertions. Tighten Appearance section labels and helper copy to sentence case.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* Normalize config paths, runpage & chat UI
Normalize project config paths and improve run-page, chat UI, and related behavior.
Summary of changes:
- Project config: add path normalization helpers (normalizeConfigPath, projectRelativePath, normalizeProjectCwd/Command) and apply them when validating, saving, and returning snapshots so absolute project-root paths are converted to portable relative paths. Persist normalized shared/local in snapshots.
- Tests: add unit test to verify project-root absolute paths are normalized and that saved ade.yaml contains portable paths.
- RunPage refactor: introduce helpers to convert absolute paths to project-relative, build/update process config definitions, handle local vs shared placement (localOnly), and add upsert/remove helpers for processes and stack buttons. Adjust save logic and dependencies.
- Grep search: surface descriptive "Invalid regex pattern" errors from JS fallback and improve glob handling to match bare filenames for patterns like **/*.ts; add tests for invalid regex and glob edge cases.
- IPC: catch errors from resolveLaneOverlayContext during lane delete, log a warning, and continue.
- App shell & store: move per-session banner-dismiss state into app store (avoid local-state leaks) and use store dismiss actions.
- Chat & code UI: switch many inline styles to CSS variables, improve code copy button (auto/sticky mode), better diff coloring via styles, and style enhancements for code blocks, inline code, and tables. Wire code-copy position from store.
- Agent sounds & settings: add volume and quiet-when-focused preferences, pass options to playAgentTurnCompletionSound, and update AppearanceSection UI (chat font-size swatches, sound controls, terminal options import).
- Misc: make .ade/ade.yaml use project-relative script paths and update finalize.md to add a Mobile Parity agent checklist and instructions.
Why: make config files portable across machines, provide clearer errors and more ergonomic UI/UX for chat/code blocks, and ensure consistent handling of local vs shared config changes when editing processes from the Run page.
* Improve glob/path handling and small UI/accessibility fixes
Enhance grep glob matching and path normalization, add tests, and apply minor UI/accessibility tweaks.
- grepSearch: Normalize backslashes in file globs, detect when a glob includes directory components, and match against relative file paths when appropriate. Rewrote globToRegex to correctly handle **/, **, *, ?, and {a,b} patterns while preserving directory semantics. Added tests to exercise directory globs and JS fallback behavior.
- projectConfigService: Add utilities to detect absolute paths across platforms, infer project-relative paths from foreign-platform absolute paths (e.g. Windows paths on POSIX), and return portable relative paths for config saving. Added a test to ensure foreign absolute process paths are normalized to portable relative paths in saved config.
- CodeHighlighter: Adjust copy button rendering so the auto position renders consistently.
- AppearanceSection: Add aria-pressed to theme swatch button and an aria-label to the custom terminal font input to improve accessibility.
These changes improve cross-platform behavior for globs and config paths and address minor UX/accessibility issues.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
@Natxo09Natxo09 closed this Jun 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Natxo09@Noojuno@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(web): prevent text selection on sidebar/header and fix header actions overflow - #773

Closed
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow
Closed

fix(web): prevent text selection on sidebar/header and fix header actions overflow#773
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow

Conversation

@Natxo09

@Natxo09Natxo09 commented Mar 10, 2026

Copy link
Copy Markdown

What Changed

Two small CSS fixes on the sidebar and chat header:

  • Added select-none to the sidebar container and chat header to prevent accidental text selection on non-interactive elements (logo, labels, project names, buttons, badges).
  • Added overflow-hidden to the header actions container to prevent the diff toggle button from overlapping the git actions group on narrow viewports.

Why

  • Clicking or dragging anywhere on the sidebar (e.g. the settings button, the logo, project names) would select text, which feels broken.
  • When resizing the window smaller, the diff toggle button would visually overlap the commit/push/create PR button group since none of the children can shrink and there was no overflow strategy.

UI Changes

Before:
Captura de pantalla 2026-03-10 a las 3 43 19

After:
Captura de pantalla 2026-03-10 a las 3 44 03

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Prevent text selection on sidebar and header, and fix header actions overflow

  • Adds select-none to the sidebar and chat view header to prevent accidental text selection in non-content UI areas.
  • Expands the header actions container from flex-1 to flex-[2] and adds overflow-hidden with [&>*]:shrink-0 so action buttons don't compress on narrow widths.
  • Shifts responsive label and separator visibility from the @sm/header-actions breakpoint to @md/header-actions across ChatHeader, OpenInPicker, GitActionsControl, and ProjectScriptsControl.

Macroscope summarized d9db83a.

…ions overflow
- Add select-none to sidebar and chat header to prevent accidental text
selection on non-interactive UI elements (logo, labels, buttons)
- Add overflow-hidden to header actions container to prevent the diff
toggle button from overlapping git action buttons on narrow viewports
@coderabbitai

coderabbitaiBot commented Mar 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7af6c99e-cead-4212-b6b5-224b23ab186a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added the vouch:unvouched PR author is not yet trusted in the VOUCHED list. label Mar 10, 2026
@Noojuno

Copy link
Copy Markdown
Contributor

@Natxo09 The overflow is still broken at the default window size (1100x780)

image

…w size
Give the actions container more flex space (flex-[2]) and prevent
children from shrinking. Raise container-query breakpoint from @sm to
@md so text labels only appear when there is enough room.
@Natxo09

Copy link
Copy Markdown
Author

Fixed, was using a breakpoint too small for the labels. Here's how it looks now:

Captura de pantalla 2026-03-10 a las 5 14 24

@juliusmarminge

Copy link
Copy Markdown
Member

the real issue here is that the header is split in 50/50, so the thread title + project pill takes up 50% of the width even if not used, instead of letting the action buttons occupy that space.

should fix that instead of bumping the breakpoint to @md cause now you'll essentially never see the buttons on laptops, always the compact view even if it looks like there's plenty of space

cursorBot pushed a commit to arul28/ADE that referenced this pull request Apr 19, 2026
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
arul28 added a commit to arul28/ADE that referenced this pull request Apr 20, 2026
…gs (#163)
* feat: port t3code UX — model slug, code copy, sounds, PR ahead hint
Inspired by upstream t3code PRs:
- pingdotgg/t3code#1 (resolveModelSlug-style normalization)
- pingdotgg/t3code#2092 (code block copy for touch / position / clipboard fallback)
- pingdotgg/t3code#2057 (completion chime when agent turn settles)
- pingdotgg/t3code#2081 (surface ahead-of-base for clean pushed branches on mobile create PR)
Adds resolveModelSlug with optional provider hint, chat code copy controls and
non-secure clipboard fallback, optional Web Audio completion sound with settings,
and commitsAheadOfBase on mobile PR create eligibility with iOS subtitle.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: banner dismiss controls, resilient completion sound, tests
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* feat(settings): appearance tab with chat font preview (t3 #2174)
- New Appearance settings: theme swatches, chat font size 12–24px with live
ChatMarkdown preview, copy-button position + completion sound (moved from General)
- chatFontSizePx in appStore; work chat scales via ChatSurfaceShell zoom
- resolveModelSlug: exact getModelById before provider-hint lowercasing (review)
- iOS Create PR lane subtitle when commitsAheadOfBase is 0
- A11y: label range input; fix preview sample template literal
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: remove upstream PR link from UI; cross-browser chat scaling
- Appearance: drop user-visible t3code/GitHub link; keep neutral copy
- ChatSurfaceShell: scale header/body/footer via transform + inverse
dimensions (Firefox-safe) instead of CSS zoom; contentScale prop
- AgentChatPane: pass contentScale from chat font preference
- agentTurnCompletionSound: module + function docstrings (CodeRabbit hint)
- Add ChatSurfaceShell scale wrapper tests with cleanup between cases
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: address CI failures and review feedback on PR branch
Repair grepSearch JS-fallback tests by routing ripgrep exec through a test hook; relax TerminalView WebGL expectation for headless CI; play completion sound only on successful turns; preserve case-sensitive model refs with provider hints; improve Appearance preview layout, a11y, and clipboard cleanup; keep banner dismissals across project switches; make iOS commitsAheadOfBase backward compatible and show lane subtitles.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: safer repo-wide grep fallback, chat markdown code blocks, copy polish
Skip hidden root-only dirs (e.g. .ade) in JS grep when searching the whole repo while still entering .github; add regression test. Route ChatMarkdown fenced blocks through HighlightedCode so copy placement applies in previews. Stub WebGL canvas in TerminalView tests instead of weakening assertions. Tighten Appearance section labels and helper copy to sentence case.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* Normalize config paths, runpage & chat UI
Normalize project config paths and improve run-page, chat UI, and related behavior.
Summary of changes:
- Project config: add path normalization helpers (normalizeConfigPath, projectRelativePath, normalizeProjectCwd/Command) and apply them when validating, saving, and returning snapshots so absolute project-root paths are converted to portable relative paths. Persist normalized shared/local in snapshots.
- Tests: add unit test to verify project-root absolute paths are normalized and that saved ade.yaml contains portable paths.
- RunPage refactor: introduce helpers to convert absolute paths to project-relative, build/update process config definitions, handle local vs shared placement (localOnly), and add upsert/remove helpers for processes and stack buttons. Adjust save logic and dependencies.
- Grep search: surface descriptive "Invalid regex pattern" errors from JS fallback and improve glob handling to match bare filenames for patterns like **/*.ts; add tests for invalid regex and glob edge cases.
- IPC: catch errors from resolveLaneOverlayContext during lane delete, log a warning, and continue.
- App shell & store: move per-session banner-dismiss state into app store (avoid local-state leaks) and use store dismiss actions.
- Chat & code UI: switch many inline styles to CSS variables, improve code copy button (auto/sticky mode), better diff coloring via styles, and style enhancements for code blocks, inline code, and tables. Wire code-copy position from store.
- Agent sounds & settings: add volume and quiet-when-focused preferences, pass options to playAgentTurnCompletionSound, and update AppearanceSection UI (chat font-size swatches, sound controls, terminal options import).
- Misc: make .ade/ade.yaml use project-relative script paths and update finalize.md to add a Mobile Parity agent checklist and instructions.
Why: make config files portable across machines, provide clearer errors and more ergonomic UI/UX for chat/code blocks, and ensure consistent handling of local vs shared config changes when editing processes from the Run page.
* Improve glob/path handling and small UI/accessibility fixes
Enhance grep glob matching and path normalization, add tests, and apply minor UI/accessibility tweaks.
- grepSearch: Normalize backslashes in file globs, detect when a glob includes directory components, and match against relative file paths when appropriate. Rewrote globToRegex to correctly handle **/, **, *, ?, and {a,b} patterns while preserving directory semantics. Added tests to exercise directory globs and JS fallback behavior.
- projectConfigService: Add utilities to detect absolute paths across platforms, infer project-relative paths from foreign-platform absolute paths (e.g. Windows paths on POSIX), and return portable relative paths for config saving. Added a test to ensure foreign absolute process paths are normalized to portable relative paths in saved config.
- CodeHighlighter: Adjust copy button rendering so the auto position renders consistently.
- AppearanceSection: Add aria-pressed to theme swatch button and an aria-label to the custom terminal font input to improve accessibility.
These changes improve cross-platform behavior for globs and config paths and address minor UX/accessibility issues.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
@Natxo09Natxo09 closed this Jun 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Natxo09@Noojuno@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): prevent text selection on sidebar/header and fix header actions overflow - #773

Closed
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow
Closed

fix(web): prevent text selection on sidebar/header and fix header actions overflow#773
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow

Conversation

@Natxo09

@Natxo09Natxo09 commented Mar 10, 2026

Copy link
Copy Markdown

What Changed

Two small CSS fixes on the sidebar and chat header:

  • Added select-none to the sidebar container and chat header to prevent accidental text selection on non-interactive elements (logo, labels, project names, buttons, badges).
  • Added overflow-hidden to the header actions container to prevent the diff toggle button from overlapping the git actions group on narrow viewports.

Why

  • Clicking or dragging anywhere on the sidebar (e.g. the settings button, the logo, project names) would select text, which feels broken.
  • When resizing the window smaller, the diff toggle button would visually overlap the commit/push/create PR button group since none of the children can shrink and there was no overflow strategy.

UI Changes

Before:
Captura de pantalla 2026-03-10 a las 3 43 19

After:
Captura de pantalla 2026-03-10 a las 3 44 03

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Prevent text selection on sidebar and header, and fix header actions overflow

  • Adds select-none to the sidebar and chat view header to prevent accidental text selection in non-content UI areas.
  • Expands the header actions container from flex-1 to flex-[2] and adds overflow-hidden with [&>*]:shrink-0 so action buttons don't compress on narrow widths.
  • Shifts responsive label and separator visibility from the @sm/header-actions breakpoint to @md/header-actions across ChatHeader, OpenInPicker, GitActionsControl, and ProjectScriptsControl.

Macroscope summarized d9db83a.

…ions overflow
- Add select-none to sidebar and chat header to prevent accidental text
selection on non-interactive UI elements (logo, labels, buttons)
- Add overflow-hidden to header actions container to prevent the diff
toggle button from overlapping git action buttons on narrow viewports
@coderabbitai

coderabbitaiBot commented Mar 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7af6c99e-cead-4212-b6b5-224b23ab186a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added the vouch:unvouched PR author is not yet trusted in the VOUCHED list. label Mar 10, 2026
@Noojuno

Copy link
Copy Markdown
Contributor

@Natxo09 The overflow is still broken at the default window size (1100x780)

image

…w size
Give the actions container more flex space (flex-[2]) and prevent
children from shrinking. Raise container-query breakpoint from @sm to
@md so text labels only appear when there is enough room.
@Natxo09

Copy link
Copy Markdown
Author

Fixed, was using a breakpoint too small for the labels. Here's how it looks now:

Captura de pantalla 2026-03-10 a las 5 14 24

@juliusmarminge

Copy link
Copy Markdown
Member

the real issue here is that the header is split in 50/50, so the thread title + project pill takes up 50% of the width even if not used, instead of letting the action buttons occupy that space.

should fix that instead of bumping the breakpoint to @md cause now you'll essentially never see the buttons on laptops, always the compact view even if it looks like there's plenty of space

cursorBot pushed a commit to arul28/ADE that referenced this pull request Apr 19, 2026
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
arul28 added a commit to arul28/ADE that referenced this pull request Apr 20, 2026
…gs (#163)
* feat: port t3code UX — model slug, code copy, sounds, PR ahead hint
Inspired by upstream t3code PRs:
- pingdotgg/t3code#1 (resolveModelSlug-style normalization)
- pingdotgg/t3code#2092 (code block copy for touch / position / clipboard fallback)
- pingdotgg/t3code#2057 (completion chime when agent turn settles)
- pingdotgg/t3code#2081 (surface ahead-of-base for clean pushed branches on mobile create PR)
Adds resolveModelSlug with optional provider hint, chat code copy controls and
non-secure clipboard fallback, optional Web Audio completion sound with settings,
and commitsAheadOfBase on mobile PR create eligibility with iOS subtitle.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: banner dismiss controls, resilient completion sound, tests
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* feat(settings): appearance tab with chat font preview (t3 #2174)
- New Appearance settings: theme swatches, chat font size 12–24px with live
ChatMarkdown preview, copy-button position + completion sound (moved from General)
- chatFontSizePx in appStore; work chat scales via ChatSurfaceShell zoom
- resolveModelSlug: exact getModelById before provider-hint lowercasing (review)
- iOS Create PR lane subtitle when commitsAheadOfBase is 0
- A11y: label range input; fix preview sample template literal
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: remove upstream PR link from UI; cross-browser chat scaling
- Appearance: drop user-visible t3code/GitHub link; keep neutral copy
- ChatSurfaceShell: scale header/body/footer via transform + inverse
dimensions (Firefox-safe) instead of CSS zoom; contentScale prop
- AgentChatPane: pass contentScale from chat font preference
- agentTurnCompletionSound: module + function docstrings (CodeRabbit hint)
- Add ChatSurfaceShell scale wrapper tests with cleanup between cases
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: address CI failures and review feedback on PR branch
Repair grepSearch JS-fallback tests by routing ripgrep exec through a test hook; relax TerminalView WebGL expectation for headless CI; play completion sound only on successful turns; preserve case-sensitive model refs with provider hints; improve Appearance preview layout, a11y, and clipboard cleanup; keep banner dismissals across project switches; make iOS commitsAheadOfBase backward compatible and show lane subtitles.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: safer repo-wide grep fallback, chat markdown code blocks, copy polish
Skip hidden root-only dirs (e.g. .ade) in JS grep when searching the whole repo while still entering .github; add regression test. Route ChatMarkdown fenced blocks through HighlightedCode so copy placement applies in previews. Stub WebGL canvas in TerminalView tests instead of weakening assertions. Tighten Appearance section labels and helper copy to sentence case.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* Normalize config paths, runpage & chat UI
Normalize project config paths and improve run-page, chat UI, and related behavior.
Summary of changes:
- Project config: add path normalization helpers (normalizeConfigPath, projectRelativePath, normalizeProjectCwd/Command) and apply them when validating, saving, and returning snapshots so absolute project-root paths are converted to portable relative paths. Persist normalized shared/local in snapshots.
- Tests: add unit test to verify project-root absolute paths are normalized and that saved ade.yaml contains portable paths.
- RunPage refactor: introduce helpers to convert absolute paths to project-relative, build/update process config definitions, handle local vs shared placement (localOnly), and add upsert/remove helpers for processes and stack buttons. Adjust save logic and dependencies.
- Grep search: surface descriptive "Invalid regex pattern" errors from JS fallback and improve glob handling to match bare filenames for patterns like **/*.ts; add tests for invalid regex and glob edge cases.
- IPC: catch errors from resolveLaneOverlayContext during lane delete, log a warning, and continue.
- App shell & store: move per-session banner-dismiss state into app store (avoid local-state leaks) and use store dismiss actions.
- Chat & code UI: switch many inline styles to CSS variables, improve code copy button (auto/sticky mode), better diff coloring via styles, and style enhancements for code blocks, inline code, and tables. Wire code-copy position from store.
- Agent sounds & settings: add volume and quiet-when-focused preferences, pass options to playAgentTurnCompletionSound, and update AppearanceSection UI (chat font-size swatches, sound controls, terminal options import).
- Misc: make .ade/ade.yaml use project-relative script paths and update finalize.md to add a Mobile Parity agent checklist and instructions.
Why: make config files portable across machines, provide clearer errors and more ergonomic UI/UX for chat/code blocks, and ensure consistent handling of local vs shared config changes when editing processes from the Run page.
* Improve glob/path handling and small UI/accessibility fixes
Enhance grep glob matching and path normalization, add tests, and apply minor UI/accessibility tweaks.
- grepSearch: Normalize backslashes in file globs, detect when a glob includes directory components, and match against relative file paths when appropriate. Rewrote globToRegex to correctly handle **/, **, *, ?, and {a,b} patterns while preserving directory semantics. Added tests to exercise directory globs and JS fallback behavior.
- projectConfigService: Add utilities to detect absolute paths across platforms, infer project-relative paths from foreign-platform absolute paths (e.g. Windows paths on POSIX), and return portable relative paths for config saving. Added a test to ensure foreign absolute process paths are normalized to portable relative paths in saved config.
- CodeHighlighter: Adjust copy button rendering so the auto position renders consistently.
- AppearanceSection: Add aria-pressed to theme swatch button and an aria-label to the custom terminal font input to improve accessibility.
These changes improve cross-platform behavior for globs and config paths and address minor UX/accessibility issues.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
@Natxo09Natxo09 closed this Jun 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Natxo09@Noojuno@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): prevent text selection on sidebar/header and fix header actions overflow - #773

Closed
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow
Closed

fix(web): prevent text selection on sidebar/header and fix header actions overflow#773
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow

Conversation

@Natxo09

@Natxo09Natxo09 commented Mar 10, 2026

Copy link
Copy Markdown

What Changed

Two small CSS fixes on the sidebar and chat header:

  • Added select-none to the sidebar container and chat header to prevent accidental text selection on non-interactive elements (logo, labels, project names, buttons, badges).
  • Added overflow-hidden to the header actions container to prevent the diff toggle button from overlapping the git actions group on narrow viewports.

Why

  • Clicking or dragging anywhere on the sidebar (e.g. the settings button, the logo, project names) would select text, which feels broken.
  • When resizing the window smaller, the diff toggle button would visually overlap the commit/push/create PR button group since none of the children can shrink and there was no overflow strategy.

UI Changes

Before:
Captura de pantalla 2026-03-10 a las 3 43 19

After:
Captura de pantalla 2026-03-10 a las 3 44 03

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Prevent text selection on sidebar and header, and fix header actions overflow

  • Adds select-none to the sidebar and chat view header to prevent accidental text selection in non-content UI areas.
  • Expands the header actions container from flex-1 to flex-[2] and adds overflow-hidden with [&>*]:shrink-0 so action buttons don't compress on narrow widths.
  • Shifts responsive label and separator visibility from the @sm/header-actions breakpoint to @md/header-actions across ChatHeader, OpenInPicker, GitActionsControl, and ProjectScriptsControl.

Macroscope summarized d9db83a.

…ions overflow
- Add select-none to sidebar and chat header to prevent accidental text
selection on non-interactive UI elements (logo, labels, buttons)
- Add overflow-hidden to header actions container to prevent the diff
toggle button from overlapping git action buttons on narrow viewports
@coderabbitai

coderabbitaiBot commented Mar 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7af6c99e-cead-4212-b6b5-224b23ab186a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added the vouch:unvouched PR author is not yet trusted in the VOUCHED list. label Mar 10, 2026
@Noojuno

Copy link
Copy Markdown
Contributor

@Natxo09 The overflow is still broken at the default window size (1100x780)

image

…w size
Give the actions container more flex space (flex-[2]) and prevent
children from shrinking. Raise container-query breakpoint from @sm to
@md so text labels only appear when there is enough room.
@Natxo09

Copy link
Copy Markdown
Author

Fixed, was using a breakpoint too small for the labels. Here's how it looks now:

Captura de pantalla 2026-03-10 a las 5 14 24

@juliusmarminge

Copy link
Copy Markdown
Member

the real issue here is that the header is split in 50/50, so the thread title + project pill takes up 50% of the width even if not used, instead of letting the action buttons occupy that space.

should fix that instead of bumping the breakpoint to @md cause now you'll essentially never see the buttons on laptops, always the compact view even if it looks like there's plenty of space

cursorBot pushed a commit to arul28/ADE that referenced this pull request Apr 19, 2026
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
arul28 added a commit to arul28/ADE that referenced this pull request Apr 20, 2026
…gs (#163)
* feat: port t3code UX — model slug, code copy, sounds, PR ahead hint
Inspired by upstream t3code PRs:
- pingdotgg/t3code#1 (resolveModelSlug-style normalization)
- pingdotgg/t3code#2092 (code block copy for touch / position / clipboard fallback)
- pingdotgg/t3code#2057 (completion chime when agent turn settles)
- pingdotgg/t3code#2081 (surface ahead-of-base for clean pushed branches on mobile create PR)
Adds resolveModelSlug with optional provider hint, chat code copy controls and
non-secure clipboard fallback, optional Web Audio completion sound with settings,
and commitsAheadOfBase on mobile PR create eligibility with iOS subtitle.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: banner dismiss controls, resilient completion sound, tests
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* feat(settings): appearance tab with chat font preview (t3 #2174)
- New Appearance settings: theme swatches, chat font size 12–24px with live
ChatMarkdown preview, copy-button position + completion sound (moved from General)
- chatFontSizePx in appStore; work chat scales via ChatSurfaceShell zoom
- resolveModelSlug: exact getModelById before provider-hint lowercasing (review)
- iOS Create PR lane subtitle when commitsAheadOfBase is 0
- A11y: label range input; fix preview sample template literal
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: remove upstream PR link from UI; cross-browser chat scaling
- Appearance: drop user-visible t3code/GitHub link; keep neutral copy
- ChatSurfaceShell: scale header/body/footer via transform + inverse
dimensions (Firefox-safe) instead of CSS zoom; contentScale prop
- AgentChatPane: pass contentScale from chat font preference
- agentTurnCompletionSound: module + function docstrings (CodeRabbit hint)
- Add ChatSurfaceShell scale wrapper tests with cleanup between cases
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: address CI failures and review feedback on PR branch
Repair grepSearch JS-fallback tests by routing ripgrep exec through a test hook; relax TerminalView WebGL expectation for headless CI; play completion sound only on successful turns; preserve case-sensitive model refs with provider hints; improve Appearance preview layout, a11y, and clipboard cleanup; keep banner dismissals across project switches; make iOS commitsAheadOfBase backward compatible and show lane subtitles.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: safer repo-wide grep fallback, chat markdown code blocks, copy polish
Skip hidden root-only dirs (e.g. .ade) in JS grep when searching the whole repo while still entering .github; add regression test. Route ChatMarkdown fenced blocks through HighlightedCode so copy placement applies in previews. Stub WebGL canvas in TerminalView tests instead of weakening assertions. Tighten Appearance section labels and helper copy to sentence case.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* Normalize config paths, runpage & chat UI
Normalize project config paths and improve run-page, chat UI, and related behavior.
Summary of changes:
- Project config: add path normalization helpers (normalizeConfigPath, projectRelativePath, normalizeProjectCwd/Command) and apply them when validating, saving, and returning snapshots so absolute project-root paths are converted to portable relative paths. Persist normalized shared/local in snapshots.
- Tests: add unit test to verify project-root absolute paths are normalized and that saved ade.yaml contains portable paths.
- RunPage refactor: introduce helpers to convert absolute paths to project-relative, build/update process config definitions, handle local vs shared placement (localOnly), and add upsert/remove helpers for processes and stack buttons. Adjust save logic and dependencies.
- Grep search: surface descriptive "Invalid regex pattern" errors from JS fallback and improve glob handling to match bare filenames for patterns like **/*.ts; add tests for invalid regex and glob edge cases.
- IPC: catch errors from resolveLaneOverlayContext during lane delete, log a warning, and continue.
- App shell & store: move per-session banner-dismiss state into app store (avoid local-state leaks) and use store dismiss actions.
- Chat & code UI: switch many inline styles to CSS variables, improve code copy button (auto/sticky mode), better diff coloring via styles, and style enhancements for code blocks, inline code, and tables. Wire code-copy position from store.
- Agent sounds & settings: add volume and quiet-when-focused preferences, pass options to playAgentTurnCompletionSound, and update AppearanceSection UI (chat font-size swatches, sound controls, terminal options import).
- Misc: make .ade/ade.yaml use project-relative script paths and update finalize.md to add a Mobile Parity agent checklist and instructions.
Why: make config files portable across machines, provide clearer errors and more ergonomic UI/UX for chat/code blocks, and ensure consistent handling of local vs shared config changes when editing processes from the Run page.
* Improve glob/path handling and small UI/accessibility fixes
Enhance grep glob matching and path normalization, add tests, and apply minor UI/accessibility tweaks.
- grepSearch: Normalize backslashes in file globs, detect when a glob includes directory components, and match against relative file paths when appropriate. Rewrote globToRegex to correctly handle **/, **, *, ?, and {a,b} patterns while preserving directory semantics. Added tests to exercise directory globs and JS fallback behavior.
- projectConfigService: Add utilities to detect absolute paths across platforms, infer project-relative paths from foreign-platform absolute paths (e.g. Windows paths on POSIX), and return portable relative paths for config saving. Added a test to ensure foreign absolute process paths are normalized to portable relative paths in saved config.
- CodeHighlighter: Adjust copy button rendering so the auto position renders consistently.
- AppearanceSection: Add aria-pressed to theme swatch button and an aria-label to the custom terminal font input to improve accessibility.
These changes improve cross-platform behavior for globs and config paths and address minor UX/accessibility issues.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
@Natxo09Natxo09 closed this Jun 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Natxo09@Noojuno@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(web): prevent text selection on sidebar/header and fix header actions overflow - #773

Closed
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow
Closed

fix(web): prevent text selection on sidebar/header and fix header actions overflow#773
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow

Conversation

@Natxo09

@Natxo09Natxo09 commented Mar 10, 2026

Copy link
Copy Markdown

What Changed

Two small CSS fixes on the sidebar and chat header:

  • Added select-none to the sidebar container and chat header to prevent accidental text selection on non-interactive elements (logo, labels, project names, buttons, badges).
  • Added overflow-hidden to the header actions container to prevent the diff toggle button from overlapping the git actions group on narrow viewports.

Why

  • Clicking or dragging anywhere on the sidebar (e.g. the settings button, the logo, project names) would select text, which feels broken.
  • When resizing the window smaller, the diff toggle button would visually overlap the commit/push/create PR button group since none of the children can shrink and there was no overflow strategy.

UI Changes

Before:
Captura de pantalla 2026-03-10 a las 3 43 19

After:
Captura de pantalla 2026-03-10 a las 3 44 03

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Prevent text selection on sidebar and header, and fix header actions overflow

  • Adds select-none to the sidebar and chat view header to prevent accidental text selection in non-content UI areas.
  • Expands the header actions container from flex-1 to flex-[2] and adds overflow-hidden with [&>*]:shrink-0 so action buttons don't compress on narrow widths.
  • Shifts responsive label and separator visibility from the @sm/header-actions breakpoint to @md/header-actions across ChatHeader, OpenInPicker, GitActionsControl, and ProjectScriptsControl.

Macroscope summarized d9db83a.

…ions overflow
- Add select-none to sidebar and chat header to prevent accidental text
selection on non-interactive UI elements (logo, labels, buttons)
- Add overflow-hidden to header actions container to prevent the diff
toggle button from overlapping git action buttons on narrow viewports
@coderabbitai

coderabbitaiBot commented Mar 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7af6c99e-cead-4212-b6b5-224b23ab186a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added the vouch:unvouched PR author is not yet trusted in the VOUCHED list. label Mar 10, 2026
@Noojuno

Copy link
Copy Markdown
Contributor

@Natxo09 The overflow is still broken at the default window size (1100x780)

image

…w size
Give the actions container more flex space (flex-[2]) and prevent
children from shrinking. Raise container-query breakpoint from @sm to
@md so text labels only appear when there is enough room.
@Natxo09

Copy link
Copy Markdown
Author

Fixed, was using a breakpoint too small for the labels. Here's how it looks now:

Captura de pantalla 2026-03-10 a las 5 14 24

@juliusmarminge

Copy link
Copy Markdown
Member

the real issue here is that the header is split in 50/50, so the thread title + project pill takes up 50% of the width even if not used, instead of letting the action buttons occupy that space.

should fix that instead of bumping the breakpoint to @md cause now you'll essentially never see the buttons on laptops, always the compact view even if it looks like there's plenty of space

cursorBot pushed a commit to arul28/ADE that referenced this pull request Apr 19, 2026
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
arul28 added a commit to arul28/ADE that referenced this pull request Apr 20, 2026
…gs (#163)
* feat: port t3code UX — model slug, code copy, sounds, PR ahead hint
Inspired by upstream t3code PRs:
- pingdotgg/t3code#1 (resolveModelSlug-style normalization)
- pingdotgg/t3code#2092 (code block copy for touch / position / clipboard fallback)
- pingdotgg/t3code#2057 (completion chime when agent turn settles)
- pingdotgg/t3code#2081 (surface ahead-of-base for clean pushed branches on mobile create PR)
Adds resolveModelSlug with optional provider hint, chat code copy controls and
non-secure clipboard fallback, optional Web Audio completion sound with settings,
and commitsAheadOfBase on mobile PR create eligibility with iOS subtitle.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: banner dismiss controls, resilient completion sound, tests
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* feat(settings): appearance tab with chat font preview (t3 #2174)
- New Appearance settings: theme swatches, chat font size 12–24px with live
ChatMarkdown preview, copy-button position + completion sound (moved from General)
- chatFontSizePx in appStore; work chat scales via ChatSurfaceShell zoom
- resolveModelSlug: exact getModelById before provider-hint lowercasing (review)
- iOS Create PR lane subtitle when commitsAheadOfBase is 0
- A11y: label range input; fix preview sample template literal
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: remove upstream PR link from UI; cross-browser chat scaling
- Appearance: drop user-visible t3code/GitHub link; keep neutral copy
- ChatSurfaceShell: scale header/body/footer via transform + inverse
dimensions (Firefox-safe) instead of CSS zoom; contentScale prop
- AgentChatPane: pass contentScale from chat font preference
- agentTurnCompletionSound: module + function docstrings (CodeRabbit hint)
- Add ChatSurfaceShell scale wrapper tests with cleanup between cases
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: address CI failures and review feedback on PR branch
Repair grepSearch JS-fallback tests by routing ripgrep exec through a test hook; relax TerminalView WebGL expectation for headless CI; play completion sound only on successful turns; preserve case-sensitive model refs with provider hints; improve Appearance preview layout, a11y, and clipboard cleanup; keep banner dismissals across project switches; make iOS commitsAheadOfBase backward compatible and show lane subtitles.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: safer repo-wide grep fallback, chat markdown code blocks, copy polish
Skip hidden root-only dirs (e.g. .ade) in JS grep when searching the whole repo while still entering .github; add regression test. Route ChatMarkdown fenced blocks through HighlightedCode so copy placement applies in previews. Stub WebGL canvas in TerminalView tests instead of weakening assertions. Tighten Appearance section labels and helper copy to sentence case.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* Normalize config paths, runpage & chat UI
Normalize project config paths and improve run-page, chat UI, and related behavior.
Summary of changes:
- Project config: add path normalization helpers (normalizeConfigPath, projectRelativePath, normalizeProjectCwd/Command) and apply them when validating, saving, and returning snapshots so absolute project-root paths are converted to portable relative paths. Persist normalized shared/local in snapshots.
- Tests: add unit test to verify project-root absolute paths are normalized and that saved ade.yaml contains portable paths.
- RunPage refactor: introduce helpers to convert absolute paths to project-relative, build/update process config definitions, handle local vs shared placement (localOnly), and add upsert/remove helpers for processes and stack buttons. Adjust save logic and dependencies.
- Grep search: surface descriptive "Invalid regex pattern" errors from JS fallback and improve glob handling to match bare filenames for patterns like **/*.ts; add tests for invalid regex and glob edge cases.
- IPC: catch errors from resolveLaneOverlayContext during lane delete, log a warning, and continue.
- App shell & store: move per-session banner-dismiss state into app store (avoid local-state leaks) and use store dismiss actions.
- Chat & code UI: switch many inline styles to CSS variables, improve code copy button (auto/sticky mode), better diff coloring via styles, and style enhancements for code blocks, inline code, and tables. Wire code-copy position from store.
- Agent sounds & settings: add volume and quiet-when-focused preferences, pass options to playAgentTurnCompletionSound, and update AppearanceSection UI (chat font-size swatches, sound controls, terminal options import).
- Misc: make .ade/ade.yaml use project-relative script paths and update finalize.md to add a Mobile Parity agent checklist and instructions.
Why: make config files portable across machines, provide clearer errors and more ergonomic UI/UX for chat/code blocks, and ensure consistent handling of local vs shared config changes when editing processes from the Run page.
* Improve glob/path handling and small UI/accessibility fixes
Enhance grep glob matching and path normalization, add tests, and apply minor UI/accessibility tweaks.
- grepSearch: Normalize backslashes in file globs, detect when a glob includes directory components, and match against relative file paths when appropriate. Rewrote globToRegex to correctly handle **/, **, *, ?, and {a,b} patterns while preserving directory semantics. Added tests to exercise directory globs and JS fallback behavior.
- projectConfigService: Add utilities to detect absolute paths across platforms, infer project-relative paths from foreign-platform absolute paths (e.g. Windows paths on POSIX), and return portable relative paths for config saving. Added a test to ensure foreign absolute process paths are normalized to portable relative paths in saved config.
- CodeHighlighter: Adjust copy button rendering so the auto position renders consistently.
- AppearanceSection: Add aria-pressed to theme swatch button and an aria-label to the custom terminal font input to improve accessibility.
These changes improve cross-platform behavior for globs and config paths and address minor UX/accessibility issues.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
@Natxo09Natxo09 closed this Jun 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Natxo09@Noojuno@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): prevent text selection on sidebar/header and fix header actions overflow - #773

Closed
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow
Closed

fix(web): prevent text selection on sidebar/header and fix header actions overflow#773
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow

Conversation

@Natxo09

@Natxo09Natxo09 commented Mar 10, 2026

Copy link
Copy Markdown

What Changed

Two small CSS fixes on the sidebar and chat header:

  • Added select-none to the sidebar container and chat header to prevent accidental text selection on non-interactive elements (logo, labels, project names, buttons, badges).
  • Added overflow-hidden to the header actions container to prevent the diff toggle button from overlapping the git actions group on narrow viewports.

Why

  • Clicking or dragging anywhere on the sidebar (e.g. the settings button, the logo, project names) would select text, which feels broken.
  • When resizing the window smaller, the diff toggle button would visually overlap the commit/push/create PR button group since none of the children can shrink and there was no overflow strategy.

UI Changes

Before:
Captura de pantalla 2026-03-10 a las 3 43 19

After:
Captura de pantalla 2026-03-10 a las 3 44 03

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Prevent text selection on sidebar and header, and fix header actions overflow

  • Adds select-none to the sidebar and chat view header to prevent accidental text selection in non-content UI areas.
  • Expands the header actions container from flex-1 to flex-[2] and adds overflow-hidden with [&>*]:shrink-0 so action buttons don't compress on narrow widths.
  • Shifts responsive label and separator visibility from the @sm/header-actions breakpoint to @md/header-actions across ChatHeader, OpenInPicker, GitActionsControl, and ProjectScriptsControl.

Macroscope summarized d9db83a.

…ions overflow
- Add select-none to sidebar and chat header to prevent accidental text
selection on non-interactive UI elements (logo, labels, buttons)
- Add overflow-hidden to header actions container to prevent the diff
toggle button from overlapping git action buttons on narrow viewports
@coderabbitai

coderabbitaiBot commented Mar 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7af6c99e-cead-4212-b6b5-224b23ab186a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added the vouch:unvouched PR author is not yet trusted in the VOUCHED list. label Mar 10, 2026
@Noojuno

Copy link
Copy Markdown
Contributor

@Natxo09 The overflow is still broken at the default window size (1100x780)

image

…w size
Give the actions container more flex space (flex-[2]) and prevent
children from shrinking. Raise container-query breakpoint from @sm to
@md so text labels only appear when there is enough room.
@Natxo09

Copy link
Copy Markdown
Author

Fixed, was using a breakpoint too small for the labels. Here's how it looks now:

Captura de pantalla 2026-03-10 a las 5 14 24

@juliusmarminge

Copy link
Copy Markdown
Member

the real issue here is that the header is split in 50/50, so the thread title + project pill takes up 50% of the width even if not used, instead of letting the action buttons occupy that space.

should fix that instead of bumping the breakpoint to @md cause now you'll essentially never see the buttons on laptops, always the compact view even if it looks like there's plenty of space

cursorBot pushed a commit to arul28/ADE that referenced this pull request Apr 19, 2026
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
arul28 added a commit to arul28/ADE that referenced this pull request Apr 20, 2026
…gs (#163)
* feat: port t3code UX — model slug, code copy, sounds, PR ahead hint
Inspired by upstream t3code PRs:
- pingdotgg/t3code#1 (resolveModelSlug-style normalization)
- pingdotgg/t3code#2092 (code block copy for touch / position / clipboard fallback)
- pingdotgg/t3code#2057 (completion chime when agent turn settles)
- pingdotgg/t3code#2081 (surface ahead-of-base for clean pushed branches on mobile create PR)
Adds resolveModelSlug with optional provider hint, chat code copy controls and
non-secure clipboard fallback, optional Web Audio completion sound with settings,
and commitsAheadOfBase on mobile PR create eligibility with iOS subtitle.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: banner dismiss controls, resilient completion sound, tests
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* feat(settings): appearance tab with chat font preview (t3 #2174)
- New Appearance settings: theme swatches, chat font size 12–24px with live
ChatMarkdown preview, copy-button position + completion sound (moved from General)
- chatFontSizePx in appStore; work chat scales via ChatSurfaceShell zoom
- resolveModelSlug: exact getModelById before provider-hint lowercasing (review)
- iOS Create PR lane subtitle when commitsAheadOfBase is 0
- A11y: label range input; fix preview sample template literal
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: remove upstream PR link from UI; cross-browser chat scaling
- Appearance: drop user-visible t3code/GitHub link; keep neutral copy
- ChatSurfaceShell: scale header/body/footer via transform + inverse
dimensions (Firefox-safe) instead of CSS zoom; contentScale prop
- AgentChatPane: pass contentScale from chat font preference
- agentTurnCompletionSound: module + function docstrings (CodeRabbit hint)
- Add ChatSurfaceShell scale wrapper tests with cleanup between cases
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: address CI failures and review feedback on PR branch
Repair grepSearch JS-fallback tests by routing ripgrep exec through a test hook; relax TerminalView WebGL expectation for headless CI; play completion sound only on successful turns; preserve case-sensitive model refs with provider hints; improve Appearance preview layout, a11y, and clipboard cleanup; keep banner dismissals across project switches; make iOS commitsAheadOfBase backward compatible and show lane subtitles.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: safer repo-wide grep fallback, chat markdown code blocks, copy polish
Skip hidden root-only dirs (e.g. .ade) in JS grep when searching the whole repo while still entering .github; add regression test. Route ChatMarkdown fenced blocks through HighlightedCode so copy placement applies in previews. Stub WebGL canvas in TerminalView tests instead of weakening assertions. Tighten Appearance section labels and helper copy to sentence case.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* Normalize config paths, runpage & chat UI
Normalize project config paths and improve run-page, chat UI, and related behavior.
Summary of changes:
- Project config: add path normalization helpers (normalizeConfigPath, projectRelativePath, normalizeProjectCwd/Command) and apply them when validating, saving, and returning snapshots so absolute project-root paths are converted to portable relative paths. Persist normalized shared/local in snapshots.
- Tests: add unit test to verify project-root absolute paths are normalized and that saved ade.yaml contains portable paths.
- RunPage refactor: introduce helpers to convert absolute paths to project-relative, build/update process config definitions, handle local vs shared placement (localOnly), and add upsert/remove helpers for processes and stack buttons. Adjust save logic and dependencies.
- Grep search: surface descriptive "Invalid regex pattern" errors from JS fallback and improve glob handling to match bare filenames for patterns like **/*.ts; add tests for invalid regex and glob edge cases.
- IPC: catch errors from resolveLaneOverlayContext during lane delete, log a warning, and continue.
- App shell & store: move per-session banner-dismiss state into app store (avoid local-state leaks) and use store dismiss actions.
- Chat & code UI: switch many inline styles to CSS variables, improve code copy button (auto/sticky mode), better diff coloring via styles, and style enhancements for code blocks, inline code, and tables. Wire code-copy position from store.
- Agent sounds & settings: add volume and quiet-when-focused preferences, pass options to playAgentTurnCompletionSound, and update AppearanceSection UI (chat font-size swatches, sound controls, terminal options import).
- Misc: make .ade/ade.yaml use project-relative script paths and update finalize.md to add a Mobile Parity agent checklist and instructions.
Why: make config files portable across machines, provide clearer errors and more ergonomic UI/UX for chat/code blocks, and ensure consistent handling of local vs shared config changes when editing processes from the Run page.
* Improve glob/path handling and small UI/accessibility fixes
Enhance grep glob matching and path normalization, add tests, and apply minor UI/accessibility tweaks.
- grepSearch: Normalize backslashes in file globs, detect when a glob includes directory components, and match against relative file paths when appropriate. Rewrote globToRegex to correctly handle **/, **, *, ?, and {a,b} patterns while preserving directory semantics. Added tests to exercise directory globs and JS fallback behavior.
- projectConfigService: Add utilities to detect absolute paths across platforms, infer project-relative paths from foreign-platform absolute paths (e.g. Windows paths on POSIX), and return portable relative paths for config saving. Added a test to ensure foreign absolute process paths are normalized to portable relative paths in saved config.
- CodeHighlighter: Adjust copy button rendering so the auto position renders consistently.
- AppearanceSection: Add aria-pressed to theme swatch button and an aria-label to the custom terminal font input to improve accessibility.
These changes improve cross-platform behavior for globs and config paths and address minor UX/accessibility issues.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
@Natxo09Natxo09 closed this Jun 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Natxo09@Noojuno@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): prevent text selection on sidebar/header and fix header actions overflow - #773

Closed
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow
Closed

fix(web): prevent text selection on sidebar/header and fix header actions overflow#773
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow

Conversation

@Natxo09

@Natxo09Natxo09 commented Mar 10, 2026

Copy link
Copy Markdown

What Changed

Two small CSS fixes on the sidebar and chat header:

  • Added select-none to the sidebar container and chat header to prevent accidental text selection on non-interactive elements (logo, labels, project names, buttons, badges).
  • Added overflow-hidden to the header actions container to prevent the diff toggle button from overlapping the git actions group on narrow viewports.

Why

  • Clicking or dragging anywhere on the sidebar (e.g. the settings button, the logo, project names) would select text, which feels broken.
  • When resizing the window smaller, the diff toggle button would visually overlap the commit/push/create PR button group since none of the children can shrink and there was no overflow strategy.

UI Changes

Before:
Captura de pantalla 2026-03-10 a las 3 43 19

After:
Captura de pantalla 2026-03-10 a las 3 44 03

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Prevent text selection on sidebar and header, and fix header actions overflow

  • Adds select-none to the sidebar and chat view header to prevent accidental text selection in non-content UI areas.
  • Expands the header actions container from flex-1 to flex-[2] and adds overflow-hidden with [&>*]:shrink-0 so action buttons don't compress on narrow widths.
  • Shifts responsive label and separator visibility from the @sm/header-actions breakpoint to @md/header-actions across ChatHeader, OpenInPicker, GitActionsControl, and ProjectScriptsControl.

Macroscope summarized d9db83a.

…ions overflow
- Add select-none to sidebar and chat header to prevent accidental text
selection on non-interactive UI elements (logo, labels, buttons)
- Add overflow-hidden to header actions container to prevent the diff
toggle button from overlapping git action buttons on narrow viewports
@coderabbitai

coderabbitaiBot commented Mar 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7af6c99e-cead-4212-b6b5-224b23ab186a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added the vouch:unvouched PR author is not yet trusted in the VOUCHED list. label Mar 10, 2026
@Noojuno

Copy link
Copy Markdown
Contributor

@Natxo09 The overflow is still broken at the default window size (1100x780)

image

…w size
Give the actions container more flex space (flex-[2]) and prevent
children from shrinking. Raise container-query breakpoint from @sm to
@md so text labels only appear when there is enough room.
@Natxo09

Copy link
Copy Markdown
Author

Fixed, was using a breakpoint too small for the labels. Here's how it looks now:

Captura de pantalla 2026-03-10 a las 5 14 24

@juliusmarminge

Copy link
Copy Markdown
Member

the real issue here is that the header is split in 50/50, so the thread title + project pill takes up 50% of the width even if not used, instead of letting the action buttons occupy that space.

should fix that instead of bumping the breakpoint to @md cause now you'll essentially never see the buttons on laptops, always the compact view even if it looks like there's plenty of space

cursorBot pushed a commit to arul28/ADE that referenced this pull request Apr 19, 2026
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
arul28 added a commit to arul28/ADE that referenced this pull request Apr 20, 2026
…gs (#163)
* feat: port t3code UX — model slug, code copy, sounds, PR ahead hint
Inspired by upstream t3code PRs:
- pingdotgg/t3code#1 (resolveModelSlug-style normalization)
- pingdotgg/t3code#2092 (code block copy for touch / position / clipboard fallback)
- pingdotgg/t3code#2057 (completion chime when agent turn settles)
- pingdotgg/t3code#2081 (surface ahead-of-base for clean pushed branches on mobile create PR)
Adds resolveModelSlug with optional provider hint, chat code copy controls and
non-secure clipboard fallback, optional Web Audio completion sound with settings,
and commitsAheadOfBase on mobile PR create eligibility with iOS subtitle.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: banner dismiss controls, resilient completion sound, tests
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* feat(settings): appearance tab with chat font preview (t3 #2174)
- New Appearance settings: theme swatches, chat font size 12–24px with live
ChatMarkdown preview, copy-button position + completion sound (moved from General)
- chatFontSizePx in appStore; work chat scales via ChatSurfaceShell zoom
- resolveModelSlug: exact getModelById before provider-hint lowercasing (review)
- iOS Create PR lane subtitle when commitsAheadOfBase is 0
- A11y: label range input; fix preview sample template literal
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: remove upstream PR link from UI; cross-browser chat scaling
- Appearance: drop user-visible t3code/GitHub link; keep neutral copy
- ChatSurfaceShell: scale header/body/footer via transform + inverse
dimensions (Firefox-safe) instead of CSS zoom; contentScale prop
- AgentChatPane: pass contentScale from chat font preference
- agentTurnCompletionSound: module + function docstrings (CodeRabbit hint)
- Add ChatSurfaceShell scale wrapper tests with cleanup between cases
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: address CI failures and review feedback on PR branch
Repair grepSearch JS-fallback tests by routing ripgrep exec through a test hook; relax TerminalView WebGL expectation for headless CI; play completion sound only on successful turns; preserve case-sensitive model refs with provider hints; improve Appearance preview layout, a11y, and clipboard cleanup; keep banner dismissals across project switches; make iOS commitsAheadOfBase backward compatible and show lane subtitles.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: safer repo-wide grep fallback, chat markdown code blocks, copy polish
Skip hidden root-only dirs (e.g. .ade) in JS grep when searching the whole repo while still entering .github; add regression test. Route ChatMarkdown fenced blocks through HighlightedCode so copy placement applies in previews. Stub WebGL canvas in TerminalView tests instead of weakening assertions. Tighten Appearance section labels and helper copy to sentence case.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* Normalize config paths, runpage & chat UI
Normalize project config paths and improve run-page, chat UI, and related behavior.
Summary of changes:
- Project config: add path normalization helpers (normalizeConfigPath, projectRelativePath, normalizeProjectCwd/Command) and apply them when validating, saving, and returning snapshots so absolute project-root paths are converted to portable relative paths. Persist normalized shared/local in snapshots.
- Tests: add unit test to verify project-root absolute paths are normalized and that saved ade.yaml contains portable paths.
- RunPage refactor: introduce helpers to convert absolute paths to project-relative, build/update process config definitions, handle local vs shared placement (localOnly), and add upsert/remove helpers for processes and stack buttons. Adjust save logic and dependencies.
- Grep search: surface descriptive "Invalid regex pattern" errors from JS fallback and improve glob handling to match bare filenames for patterns like **/*.ts; add tests for invalid regex and glob edge cases.
- IPC: catch errors from resolveLaneOverlayContext during lane delete, log a warning, and continue.
- App shell & store: move per-session banner-dismiss state into app store (avoid local-state leaks) and use store dismiss actions.
- Chat & code UI: switch many inline styles to CSS variables, improve code copy button (auto/sticky mode), better diff coloring via styles, and style enhancements for code blocks, inline code, and tables. Wire code-copy position from store.
- Agent sounds & settings: add volume and quiet-when-focused preferences, pass options to playAgentTurnCompletionSound, and update AppearanceSection UI (chat font-size swatches, sound controls, terminal options import).
- Misc: make .ade/ade.yaml use project-relative script paths and update finalize.md to add a Mobile Parity agent checklist and instructions.
Why: make config files portable across machines, provide clearer errors and more ergonomic UI/UX for chat/code blocks, and ensure consistent handling of local vs shared config changes when editing processes from the Run page.
* Improve glob/path handling and small UI/accessibility fixes
Enhance grep glob matching and path normalization, add tests, and apply minor UI/accessibility tweaks.
- grepSearch: Normalize backslashes in file globs, detect when a glob includes directory components, and match against relative file paths when appropriate. Rewrote globToRegex to correctly handle **/, **, *, ?, and {a,b} patterns while preserving directory semantics. Added tests to exercise directory globs and JS fallback behavior.
- projectConfigService: Add utilities to detect absolute paths across platforms, infer project-relative paths from foreign-platform absolute paths (e.g. Windows paths on POSIX), and return portable relative paths for config saving. Added a test to ensure foreign absolute process paths are normalized to portable relative paths in saved config.
- CodeHighlighter: Adjust copy button rendering so the auto position renders consistently.
- AppearanceSection: Add aria-pressed to theme swatch button and an aria-label to the custom terminal font input to improve accessibility.
These changes improve cross-platform behavior for globs and config paths and address minor UX/accessibility issues.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
@Natxo09Natxo09 closed this Jun 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Natxo09@Noojuno@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(web): prevent text selection on sidebar/header and fix header actions overflow - #773

Closed
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow
Closed

fix(web): prevent text selection on sidebar/header and fix header actions overflow#773
Natxo09 wants to merge 2 commits into
pingdotgg:mainfrom
Natxo09:fix/sidebar-text-selection-and-header-overflow

Conversation

@Natxo09

@Natxo09Natxo09 commented Mar 10, 2026

Copy link
Copy Markdown

What Changed

Two small CSS fixes on the sidebar and chat header:

  • Added select-none to the sidebar container and chat header to prevent accidental text selection on non-interactive elements (logo, labels, project names, buttons, badges).
  • Added overflow-hidden to the header actions container to prevent the diff toggle button from overlapping the git actions group on narrow viewports.

Why

  • Clicking or dragging anywhere on the sidebar (e.g. the settings button, the logo, project names) would select text, which feels broken.
  • When resizing the window smaller, the diff toggle button would visually overlap the commit/push/create PR button group since none of the children can shrink and there was no overflow strategy.

UI Changes

Before:
Captura de pantalla 2026-03-10 a las 3 43 19

After:
Captura de pantalla 2026-03-10 a las 3 44 03

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Prevent text selection on sidebar and header, and fix header actions overflow

  • Adds select-none to the sidebar and chat view header to prevent accidental text selection in non-content UI areas.
  • Expands the header actions container from flex-1 to flex-[2] and adds overflow-hidden with [&>*]:shrink-0 so action buttons don't compress on narrow widths.
  • Shifts responsive label and separator visibility from the @sm/header-actions breakpoint to @md/header-actions across ChatHeader, OpenInPicker, GitActionsControl, and ProjectScriptsControl.

Macroscope summarized d9db83a.

…ions overflow
- Add select-none to sidebar and chat header to prevent accidental text
selection on non-interactive UI elements (logo, labels, buttons)
- Add overflow-hidden to header actions container to prevent the diff
toggle button from overlapping git action buttons on narrow viewports
@coderabbitai

coderabbitaiBot commented Mar 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7af6c99e-cead-4212-b6b5-224b23ab186a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added the vouch:unvouched PR author is not yet trusted in the VOUCHED list. label Mar 10, 2026
@Noojuno

Copy link
Copy Markdown
Contributor

@Natxo09 The overflow is still broken at the default window size (1100x780)

image

…w size
Give the actions container more flex space (flex-[2]) and prevent
children from shrinking. Raise container-query breakpoint from @sm to
@md so text labels only appear when there is enough room.
@Natxo09

Copy link
Copy Markdown
Author

Fixed, was using a breakpoint too small for the labels. Here's how it looks now:

Captura de pantalla 2026-03-10 a las 5 14 24

@juliusmarminge

Copy link
Copy Markdown
Member

the real issue here is that the header is split in 50/50, so the thread title + project pill takes up 50% of the width even if not used, instead of letting the action buttons occupy that space.

should fix that instead of bumping the breakpoint to @md cause now you'll essentially never see the buttons on laptops, always the compact view even if it looks like there's plenty of space

cursorBot pushed a commit to arul28/ADE that referenced this pull request Apr 19, 2026
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
arul28 added a commit to arul28/ADE that referenced this pull request Apr 20, 2026
…gs (#163)
* feat: port t3code UX — model slug, code copy, sounds, PR ahead hint
Inspired by upstream t3code PRs:
- pingdotgg/t3code#1 (resolveModelSlug-style normalization)
- pingdotgg/t3code#2092 (code block copy for touch / position / clipboard fallback)
- pingdotgg/t3code#2057 (completion chime when agent turn settles)
- pingdotgg/t3code#2081 (surface ahead-of-base for clean pushed branches on mobile create PR)
Adds resolveModelSlug with optional provider hint, chat code copy controls and
non-secure clipboard fallback, optional Web Audio completion sound with settings,
and commitsAheadOfBase on mobile PR create eligibility with iOS subtitle.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: banner dismiss controls, resilient completion sound, tests
- Dismiss missing-AI and GitHub setup banners per session (inspired by
pingdotgg/t3code#773)
- Resume suspended AudioContext, defer AudioContext.close, use global setTimeout
- Add vitest coverage for sound helper and banner dismiss; extend appStore prefs test
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* feat(settings): appearance tab with chat font preview (t3 #2174)
- New Appearance settings: theme swatches, chat font size 12–24px with live
ChatMarkdown preview, copy-button position + completion sound (moved from General)
- chatFontSizePx in appStore; work chat scales via ChatSurfaceShell zoom
- resolveModelSlug: exact getModelById before provider-hint lowercasing (review)
- iOS Create PR lane subtitle when commitsAheadOfBase is 0
- A11y: label range input; fix preview sample template literal
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: remove upstream PR link from UI; cross-browser chat scaling
- Appearance: drop user-visible t3code/GitHub link; keep neutral copy
- ChatSurfaceShell: scale header/body/footer via transform + inverse
dimensions (Firefox-safe) instead of CSS zoom; contentScale prop
- AgentChatPane: pass contentScale from chat font preference
- agentTurnCompletionSound: module + function docstrings (CodeRabbit hint)
- Add ChatSurfaceShell scale wrapper tests with cleanup between cases
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: address CI failures and review feedback on PR branch
Repair grepSearch JS-fallback tests by routing ripgrep exec through a test hook; relax TerminalView WebGL expectation for headless CI; play completion sound only on successful turns; preserve case-sensitive model refs with provider hints; improve Appearance preview layout, a11y, and clipboard cleanup; keep banner dismissals across project switches; make iOS commitsAheadOfBase backward compatible and show lane subtitles.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix: safer repo-wide grep fallback, chat markdown code blocks, copy polish
Skip hidden root-only dirs (e.g. .ade) in JS grep when searching the whole repo while still entering .github; add regression test. Route ChatMarkdown fenced blocks through HighlightedCode so copy placement applies in previews. Stub WebGL canvas in TerminalView tests instead of weakening assertions. Tighten Appearance section labels and helper copy to sentence case.
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* Normalize config paths, runpage & chat UI
Normalize project config paths and improve run-page, chat UI, and related behavior.
Summary of changes:
- Project config: add path normalization helpers (normalizeConfigPath, projectRelativePath, normalizeProjectCwd/Command) and apply them when validating, saving, and returning snapshots so absolute project-root paths are converted to portable relative paths. Persist normalized shared/local in snapshots.
- Tests: add unit test to verify project-root absolute paths are normalized and that saved ade.yaml contains portable paths.
- RunPage refactor: introduce helpers to convert absolute paths to project-relative, build/update process config definitions, handle local vs shared placement (localOnly), and add upsert/remove helpers for processes and stack buttons. Adjust save logic and dependencies.
- Grep search: surface descriptive "Invalid regex pattern" errors from JS fallback and improve glob handling to match bare filenames for patterns like **/*.ts; add tests for invalid regex and glob edge cases.
- IPC: catch errors from resolveLaneOverlayContext during lane delete, log a warning, and continue.
- App shell & store: move per-session banner-dismiss state into app store (avoid local-state leaks) and use store dismiss actions.
- Chat & code UI: switch many inline styles to CSS variables, improve code copy button (auto/sticky mode), better diff coloring via styles, and style enhancements for code blocks, inline code, and tables. Wire code-copy position from store.
- Agent sounds & settings: add volume and quiet-when-focused preferences, pass options to playAgentTurnCompletionSound, and update AppearanceSection UI (chat font-size swatches, sound controls, terminal options import).
- Misc: make .ade/ade.yaml use project-relative script paths and update finalize.md to add a Mobile Parity agent checklist and instructions.
Why: make config files portable across machines, provide clearer errors and more ergonomic UI/UX for chat/code blocks, and ensure consistent handling of local vs shared config changes when editing processes from the Run page.
* Improve glob/path handling and small UI/accessibility fixes
Enhance grep glob matching and path normalization, add tests, and apply minor UI/accessibility tweaks.
- grepSearch: Normalize backslashes in file globs, detect when a glob includes directory components, and match against relative file paths when appropriate. Rewrote globToRegex to correctly handle **/, **, *, ?, and {a,b} patterns while preserving directory semantics. Added tests to exercise directory globs and JS fallback behavior.
- projectConfigService: Add utilities to detect absolute paths across platforms, infer project-relative paths from foreign-platform absolute paths (e.g. Windows paths on POSIX), and return portable relative paths for config saving. Added a test to ensure foreign absolute process paths are normalized to portable relative paths in saved config.
- CodeHighlighter: Adjust copy button rendering so the auto position renders consistently.
- AppearanceSection: Add aria-pressed to theme swatch button and an aria-label to the custom terminal font input to improve accessibility.
These changes improve cross-platform behavior for globs and config paths and address minor UX/accessibility issues.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
@Natxo09Natxo09 closed this Jun 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Natxo09@Noojuno@juliusmarminge