Skip to content

fix(app): scroll to active tab when clicked (fixes #11674) - #11685

Closed
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev
Closed

fix(app): scroll to active tab when clicked (fixes #11674)#11685
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev

Conversation

@Geralt4

@Geralt4Geralt4 commented Feb 1, 2026

Copy link
Copy Markdown

Fixes#11674
Fixes#11687

Summary

Two fixes:

  1. [BUG]: (app): Clicking on overflowed tab on the right in the file view/review section does not scroll it into view #11674: When clicking on an overflowed tab in the file view/review section, the tab is now scrolled into view so the close button becomes accessible. This extends the existing tab scrolling functionality from PR fix(app): file tabs - auto scroll on open & scroll via mouse wheel #11070.

  2. Windows: Preparing apply_patch... Error: apply_patch verification failed: F #11687: Added validation to detect paths containing "USERNAME" which may indicate an unexpanded environment variable or corrupted patch on Windows. This helps diagnose the apply_patch verification failed error.

Changes

Issue #11674 (scroll to active tab when clicked)

  • Adds a createEffect that watches the active tab
  • When the active tab changes (e.g., user clicks on a tab), it checks if the tab is overflowed
  • If overflowed, it scrolls the tab into view smoothly

Issue #11687 (validate paths for unexpanded environment variables)

  • Adds path validation at the beginning of the patch processing loop to check for "USERNAME" in paths on Windows
  • Throws a descriptive error message indicating the path may contain an unexpanded environment variable or corrupted patch
  • Separated error messages for "file not found" vs "path is a directory" for clearer diagnostics

Testing

Issue #11674:

  • Open multiple file tabs until they overflow the visible area
  • Click on a partially-hidden tab on the right side
  • The tab should scroll into full view, making the close button accessible

Issue #11687:

  • The fix validates paths before attempting to read them, catching potential issues early with helpful error messages.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

Based on my search, I found a potentially duplicate PR:

PR #11676 - "fix(app): scroll review tab into view when clicked while overflowed"
#11676

This appears to be addressing the same issue as PR #11685. Both PRs are fixing tab scrolling behavior when tabs are overflowed, specifically making the close button accessible by scrolling tabs into view when clicked. This looks like it may be a duplicate of the current PR.

CopilotAI review requested due to automatic review settings February 25, 2026 15:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes two issues: #11674 (scroll to active tab when clicked) and #11687 (validate paths for unexpanded environment variables on Windows). The changes include tab scrolling functionality, path validation improvements, and various refactoring/cleanup across multiple components.

Changes:

  • Added scroll-to-view functionality for overflowed tabs in file/review sections
  • Added path validation to detect unexpanded environment variables on Windows
  • Refactored multiple components to improve code organization and remove duplication

Reviewed changes

Copilot reviewed 180 out of 1811 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
packages/app/src/components/settings-providers.tsxRefactored provider notes to use a centralized lookup table and improved type safety
packages/app/src/components/settings-permissions.tsxExtracted rollback logic into a separate function for better code organization
packages/app/src/components/settings-models.tsxExtracted loading and empty state components for reusability
packages/app/src/components/settings-mcp.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-commands.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-agents.tsxAdded TODO comment for future implementation
packages/app/src/components/session/session-sortable-terminal-tab.tsxReplaced setTimeout-based focus with createEffect and requestAnimationFrame
packages/app/src/components/session/session-sortable-tab.tsxUpdated to use TooltipKeybind and improved memoization
packages/app/src/components/session/session-new-view.tsxSwitched from sync.data.path.directory to sdk.directory
packages/app/src/components/session/session-context-metrics.tsNew file: Extracts session context metrics calculation logic
packages/app/src/components/session/session-context-metrics.test.tsNew file: Test coverage for session context metrics
packages/app/src/components/session/session-context-format.tsNew file: Utility for formatting session context values
packages/app/src/components/session/session-context-breakdown.tsNew file: Calculates token usage breakdown for session context
packages/app/src/components/session/session-context-breakdown.test.tsNew file: Test coverage for context breakdown calculations
packages/app/src/components/session-context-usage.tsxRefactored to use extracted metrics calculation and added toggle functionality
packages/app/src/components/server/server-row.tsxNew file: Reusable component for displaying server connection rows
packages/app/src/components/prompt-input/placeholder.tsNew file: Extracted placeholder logic from prompt input component
packages/app/src/components/prompt-input/placeholder.test.tsNew file: Test coverage for placeholder logic
packages/app/src/components/prompt-input/image-attachments.tsxNew file: Extracted image attachments display component
packages/app/src/components/prompt-input/history.test.tsNew file: Test coverage for prompt history functionality
packages/app/src/components/prompt-input/editor-dom.tsNew file: DOM manipulation utilities for prompt editor
packages/app/src/components/prompt-input/editor-dom.test.tsNew file: Test coverage for editor DOM utilities
packages/app/src/components/prompt-input/drag-overlay.tsxNew file: Overlay component for drag and drop operations
packages/app/src/components/prompt-input/context-items.tsxNew file: Display component for context items in prompt
packages/app/src/components/link.tsxChanged from button to anchor element with proper href attribute
packages/app/src/components/file-tree.test.tsNew file: Test coverage for file tree functionality
packages/app/src/components/dialog-settings.tsxRemoved commented out tabs
packages/app/src/components/dialog-select-provider.tsxConsolidated provider notes into a function
packages/app/src/components/dialog-select-model-unpaid.tsxMoved event handler to component scope and removed unused imports
packages/app/src/components/dialog-select-mcp.tsxRefactored status labels into a lookup object and improved error handling
packages/app/src/components/dialog-release-notes.tsxSimplified keyboard handling by moving to onKeyDown prop
packages/app/src/components/dialog-manage-models.tsxAdded provider-level visibility toggling and improved sorting logic
packages/app/src/components/dialog-fork.tsxAdded error handling with toast notifications
packages/app/src/components/dialog-edit-project.tsxFixed promise handling and replaced getElementById with ref
packages/app/src/addons/serialize.tsImproved terminal buffer type checking and fixed cursor styling issues
packages/app/src/addons/serialize.test.tsRe-enabled previously skipped tests
packages/app/script/e2e-local.tsImproved cleanup handling and signal management
packages/app/playwright.config.tsUpdated network configuration to use 127.0.0.1 instead of localhost
packages/app/package.jsonUpdated version and added unit test scripts
packages/app/e2e/**/*.spec.tsMultiple e2e test improvements and new test files
packages/app/bunfig.tomlAdded test root configuration
package.jsonUpdated package manager version and dependencies
Various README filesAdded new language links and updated installation instructions
Various .github filesAdded vouch system, updated workflows, and improved issue management
Various nix filesUpdated nix configuration and build scripts
Various .opencode filesUpdated agent configurations and added glossary files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Scroll to active tab when clicked (fixes#11674)
- Validate paths on Windows for unexpanded USERNAME environment variable (fixes#11687)
Merge latest dev into the PR branch and preserve the session-side-panel tab scroll fix from #11685 while resolving conflicts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Geralt4

Copy link
Copy Markdown
Author

Updated and re-verified: this PR still cleanly addresses #11674 and #11687, and all required checks are green. Ready for maintainer review when convenient. 🙏

@Geralt4

Copy link
Copy Markdown
Author

Closing this PR.

@Geralt4Geralt4 closed this Mar 14, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

@Geralt4
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
fix(app): scroll to active tab when clicked (fixes #11674) by Geralt4 · Pull Request #11685 · anomalyco/opencode · GitHub
Skip to content

fix(app): scroll to active tab when clicked (fixes #11674) - #11685

Closed
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev
Closed

fix(app): scroll to active tab when clicked (fixes #11674)#11685
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev

Conversation

@Geralt4

@Geralt4Geralt4 commented Feb 1, 2026

Copy link
Copy Markdown

Fixes#11674
Fixes#11687

Summary

Two fixes:

  1. [BUG]: (app): Clicking on overflowed tab on the right in the file view/review section does not scroll it into view #11674: When clicking on an overflowed tab in the file view/review section, the tab is now scrolled into view so the close button becomes accessible. This extends the existing tab scrolling functionality from PR fix(app): file tabs - auto scroll on open & scroll via mouse wheel #11070.

  2. Windows: Preparing apply_patch... Error: apply_patch verification failed: F #11687: Added validation to detect paths containing "USERNAME" which may indicate an unexpanded environment variable or corrupted patch on Windows. This helps diagnose the apply_patch verification failed error.

Changes

Issue #11674 (scroll to active tab when clicked)

  • Adds a createEffect that watches the active tab
  • When the active tab changes (e.g., user clicks on a tab), it checks if the tab is overflowed
  • If overflowed, it scrolls the tab into view smoothly

Issue #11687 (validate paths for unexpanded environment variables)

  • Adds path validation at the beginning of the patch processing loop to check for "USERNAME" in paths on Windows
  • Throws a descriptive error message indicating the path may contain an unexpanded environment variable or corrupted patch
  • Separated error messages for "file not found" vs "path is a directory" for clearer diagnostics

Testing

Issue #11674:

  • Open multiple file tabs until they overflow the visible area
  • Click on a partially-hidden tab on the right side
  • The tab should scroll into full view, making the close button accessible

Issue #11687:

  • The fix validates paths before attempting to read them, catching potential issues early with helpful error messages.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

Based on my search, I found a potentially duplicate PR:

PR #11676 - "fix(app): scroll review tab into view when clicked while overflowed"
#11676

This appears to be addressing the same issue as PR #11685. Both PRs are fixing tab scrolling behavior when tabs are overflowed, specifically making the close button accessible by scrolling tabs into view when clicked. This looks like it may be a duplicate of the current PR.

CopilotAI review requested due to automatic review settings February 25, 2026 15:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes two issues: #11674 (scroll to active tab when clicked) and #11687 (validate paths for unexpanded environment variables on Windows). The changes include tab scrolling functionality, path validation improvements, and various refactoring/cleanup across multiple components.

Changes:

  • Added scroll-to-view functionality for overflowed tabs in file/review sections
  • Added path validation to detect unexpanded environment variables on Windows
  • Refactored multiple components to improve code organization and remove duplication

Reviewed changes

Copilot reviewed 180 out of 1811 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
packages/app/src/components/settings-providers.tsxRefactored provider notes to use a centralized lookup table and improved type safety
packages/app/src/components/settings-permissions.tsxExtracted rollback logic into a separate function for better code organization
packages/app/src/components/settings-models.tsxExtracted loading and empty state components for reusability
packages/app/src/components/settings-mcp.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-commands.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-agents.tsxAdded TODO comment for future implementation
packages/app/src/components/session/session-sortable-terminal-tab.tsxReplaced setTimeout-based focus with createEffect and requestAnimationFrame
packages/app/src/components/session/session-sortable-tab.tsxUpdated to use TooltipKeybind and improved memoization
packages/app/src/components/session/session-new-view.tsxSwitched from sync.data.path.directory to sdk.directory
packages/app/src/components/session/session-context-metrics.tsNew file: Extracts session context metrics calculation logic
packages/app/src/components/session/session-context-metrics.test.tsNew file: Test coverage for session context metrics
packages/app/src/components/session/session-context-format.tsNew file: Utility for formatting session context values
packages/app/src/components/session/session-context-breakdown.tsNew file: Calculates token usage breakdown for session context
packages/app/src/components/session/session-context-breakdown.test.tsNew file: Test coverage for context breakdown calculations
packages/app/src/components/session-context-usage.tsxRefactored to use extracted metrics calculation and added toggle functionality
packages/app/src/components/server/server-row.tsxNew file: Reusable component for displaying server connection rows
packages/app/src/components/prompt-input/placeholder.tsNew file: Extracted placeholder logic from prompt input component
packages/app/src/components/prompt-input/placeholder.test.tsNew file: Test coverage for placeholder logic
packages/app/src/components/prompt-input/image-attachments.tsxNew file: Extracted image attachments display component
packages/app/src/components/prompt-input/history.test.tsNew file: Test coverage for prompt history functionality
packages/app/src/components/prompt-input/editor-dom.tsNew file: DOM manipulation utilities for prompt editor
packages/app/src/components/prompt-input/editor-dom.test.tsNew file: Test coverage for editor DOM utilities
packages/app/src/components/prompt-input/drag-overlay.tsxNew file: Overlay component for drag and drop operations
packages/app/src/components/prompt-input/context-items.tsxNew file: Display component for context items in prompt
packages/app/src/components/link.tsxChanged from button to anchor element with proper href attribute
packages/app/src/components/file-tree.test.tsNew file: Test coverage for file tree functionality
packages/app/src/components/dialog-settings.tsxRemoved commented out tabs
packages/app/src/components/dialog-select-provider.tsxConsolidated provider notes into a function
packages/app/src/components/dialog-select-model-unpaid.tsxMoved event handler to component scope and removed unused imports
packages/app/src/components/dialog-select-mcp.tsxRefactored status labels into a lookup object and improved error handling
packages/app/src/components/dialog-release-notes.tsxSimplified keyboard handling by moving to onKeyDown prop
packages/app/src/components/dialog-manage-models.tsxAdded provider-level visibility toggling and improved sorting logic
packages/app/src/components/dialog-fork.tsxAdded error handling with toast notifications
packages/app/src/components/dialog-edit-project.tsxFixed promise handling and replaced getElementById with ref
packages/app/src/addons/serialize.tsImproved terminal buffer type checking and fixed cursor styling issues
packages/app/src/addons/serialize.test.tsRe-enabled previously skipped tests
packages/app/script/e2e-local.tsImproved cleanup handling and signal management
packages/app/playwright.config.tsUpdated network configuration to use 127.0.0.1 instead of localhost
packages/app/package.jsonUpdated version and added unit test scripts
packages/app/e2e/**/*.spec.tsMultiple e2e test improvements and new test files
packages/app/bunfig.tomlAdded test root configuration
package.jsonUpdated package manager version and dependencies
Various README filesAdded new language links and updated installation instructions
Various .github filesAdded vouch system, updated workflows, and improved issue management
Various nix filesUpdated nix configuration and build scripts
Various .opencode filesUpdated agent configurations and added glossary files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Scroll to active tab when clicked (fixes#11674)
- Validate paths on Windows for unexpanded USERNAME environment variable (fixes#11687)
Merge latest dev into the PR branch and preserve the session-side-panel tab scroll fix from #11685 while resolving conflicts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Geralt4

Copy link
Copy Markdown
Author

Updated and re-verified: this PR still cleanly addresses #11674 and #11687, and all required checks are green. Ready for maintainer review when convenient. 🙏

@Geralt4

Copy link
Copy Markdown
Author

Closing this PR.

@Geralt4Geralt4 closed this Mar 14, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

@Geralt4
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(app): scroll to active tab when clicked (fixes #11674) by Geralt4 · Pull Request #11685 · anomalyco/opencode · GitHub
Skip to content

fix(app): scroll to active tab when clicked (fixes #11674) - #11685

Closed
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev
Closed

fix(app): scroll to active tab when clicked (fixes #11674)#11685
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev

Conversation

@Geralt4

@Geralt4Geralt4 commented Feb 1, 2026

Copy link
Copy Markdown

Fixes#11674
Fixes#11687

Summary

Two fixes:

  1. [BUG]: (app): Clicking on overflowed tab on the right in the file view/review section does not scroll it into view #11674: When clicking on an overflowed tab in the file view/review section, the tab is now scrolled into view so the close button becomes accessible. This extends the existing tab scrolling functionality from PR fix(app): file tabs - auto scroll on open & scroll via mouse wheel #11070.

  2. Windows: Preparing apply_patch... Error: apply_patch verification failed: F #11687: Added validation to detect paths containing "USERNAME" which may indicate an unexpanded environment variable or corrupted patch on Windows. This helps diagnose the apply_patch verification failed error.

Changes

Issue #11674 (scroll to active tab when clicked)

  • Adds a createEffect that watches the active tab
  • When the active tab changes (e.g., user clicks on a tab), it checks if the tab is overflowed
  • If overflowed, it scrolls the tab into view smoothly

Issue #11687 (validate paths for unexpanded environment variables)

  • Adds path validation at the beginning of the patch processing loop to check for "USERNAME" in paths on Windows
  • Throws a descriptive error message indicating the path may contain an unexpanded environment variable or corrupted patch
  • Separated error messages for "file not found" vs "path is a directory" for clearer diagnostics

Testing

Issue #11674:

  • Open multiple file tabs until they overflow the visible area
  • Click on a partially-hidden tab on the right side
  • The tab should scroll into full view, making the close button accessible

Issue #11687:

  • The fix validates paths before attempting to read them, catching potential issues early with helpful error messages.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

Based on my search, I found a potentially duplicate PR:

PR #11676 - "fix(app): scroll review tab into view when clicked while overflowed"
#11676

This appears to be addressing the same issue as PR #11685. Both PRs are fixing tab scrolling behavior when tabs are overflowed, specifically making the close button accessible by scrolling tabs into view when clicked. This looks like it may be a duplicate of the current PR.

CopilotAI review requested due to automatic review settings February 25, 2026 15:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes two issues: #11674 (scroll to active tab when clicked) and #11687 (validate paths for unexpanded environment variables on Windows). The changes include tab scrolling functionality, path validation improvements, and various refactoring/cleanup across multiple components.

Changes:

  • Added scroll-to-view functionality for overflowed tabs in file/review sections
  • Added path validation to detect unexpanded environment variables on Windows
  • Refactored multiple components to improve code organization and remove duplication

Reviewed changes

Copilot reviewed 180 out of 1811 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
packages/app/src/components/settings-providers.tsxRefactored provider notes to use a centralized lookup table and improved type safety
packages/app/src/components/settings-permissions.tsxExtracted rollback logic into a separate function for better code organization
packages/app/src/components/settings-models.tsxExtracted loading and empty state components for reusability
packages/app/src/components/settings-mcp.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-commands.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-agents.tsxAdded TODO comment for future implementation
packages/app/src/components/session/session-sortable-terminal-tab.tsxReplaced setTimeout-based focus with createEffect and requestAnimationFrame
packages/app/src/components/session/session-sortable-tab.tsxUpdated to use TooltipKeybind and improved memoization
packages/app/src/components/session/session-new-view.tsxSwitched from sync.data.path.directory to sdk.directory
packages/app/src/components/session/session-context-metrics.tsNew file: Extracts session context metrics calculation logic
packages/app/src/components/session/session-context-metrics.test.tsNew file: Test coverage for session context metrics
packages/app/src/components/session/session-context-format.tsNew file: Utility for formatting session context values
packages/app/src/components/session/session-context-breakdown.tsNew file: Calculates token usage breakdown for session context
packages/app/src/components/session/session-context-breakdown.test.tsNew file: Test coverage for context breakdown calculations
packages/app/src/components/session-context-usage.tsxRefactored to use extracted metrics calculation and added toggle functionality
packages/app/src/components/server/server-row.tsxNew file: Reusable component for displaying server connection rows
packages/app/src/components/prompt-input/placeholder.tsNew file: Extracted placeholder logic from prompt input component
packages/app/src/components/prompt-input/placeholder.test.tsNew file: Test coverage for placeholder logic
packages/app/src/components/prompt-input/image-attachments.tsxNew file: Extracted image attachments display component
packages/app/src/components/prompt-input/history.test.tsNew file: Test coverage for prompt history functionality
packages/app/src/components/prompt-input/editor-dom.tsNew file: DOM manipulation utilities for prompt editor
packages/app/src/components/prompt-input/editor-dom.test.tsNew file: Test coverage for editor DOM utilities
packages/app/src/components/prompt-input/drag-overlay.tsxNew file: Overlay component for drag and drop operations
packages/app/src/components/prompt-input/context-items.tsxNew file: Display component for context items in prompt
packages/app/src/components/link.tsxChanged from button to anchor element with proper href attribute
packages/app/src/components/file-tree.test.tsNew file: Test coverage for file tree functionality
packages/app/src/components/dialog-settings.tsxRemoved commented out tabs
packages/app/src/components/dialog-select-provider.tsxConsolidated provider notes into a function
packages/app/src/components/dialog-select-model-unpaid.tsxMoved event handler to component scope and removed unused imports
packages/app/src/components/dialog-select-mcp.tsxRefactored status labels into a lookup object and improved error handling
packages/app/src/components/dialog-release-notes.tsxSimplified keyboard handling by moving to onKeyDown prop
packages/app/src/components/dialog-manage-models.tsxAdded provider-level visibility toggling and improved sorting logic
packages/app/src/components/dialog-fork.tsxAdded error handling with toast notifications
packages/app/src/components/dialog-edit-project.tsxFixed promise handling and replaced getElementById with ref
packages/app/src/addons/serialize.tsImproved terminal buffer type checking and fixed cursor styling issues
packages/app/src/addons/serialize.test.tsRe-enabled previously skipped tests
packages/app/script/e2e-local.tsImproved cleanup handling and signal management
packages/app/playwright.config.tsUpdated network configuration to use 127.0.0.1 instead of localhost
packages/app/package.jsonUpdated version and added unit test scripts
packages/app/e2e/**/*.spec.tsMultiple e2e test improvements and new test files
packages/app/bunfig.tomlAdded test root configuration
package.jsonUpdated package manager version and dependencies
Various README filesAdded new language links and updated installation instructions
Various .github filesAdded vouch system, updated workflows, and improved issue management
Various nix filesUpdated nix configuration and build scripts
Various .opencode filesUpdated agent configurations and added glossary files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Scroll to active tab when clicked (fixes#11674)
- Validate paths on Windows for unexpanded USERNAME environment variable (fixes#11687)
Merge latest dev into the PR branch and preserve the session-side-panel tab scroll fix from #11685 while resolving conflicts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Geralt4

Copy link
Copy Markdown
Author

Updated and re-verified: this PR still cleanly addresses #11674 and #11687, and all required checks are green. Ready for maintainer review when convenient. 🙏

@Geralt4

Copy link
Copy Markdown
Author

Closing this PR.

@Geralt4Geralt4 closed this Mar 14, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

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

fix(app): scroll to active tab when clicked (fixes #11674) - #11685

Closed
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev
Closed

fix(app): scroll to active tab when clicked (fixes #11674)#11685
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev

Conversation

@Geralt4

@Geralt4Geralt4 commented Feb 1, 2026

Copy link
Copy Markdown

Fixes#11674
Fixes#11687

Summary

Two fixes:

  1. [BUG]: (app): Clicking on overflowed tab on the right in the file view/review section does not scroll it into view #11674: When clicking on an overflowed tab in the file view/review section, the tab is now scrolled into view so the close button becomes accessible. This extends the existing tab scrolling functionality from PR fix(app): file tabs - auto scroll on open & scroll via mouse wheel #11070.

  2. Windows: Preparing apply_patch... Error: apply_patch verification failed: F #11687: Added validation to detect paths containing "USERNAME" which may indicate an unexpanded environment variable or corrupted patch on Windows. This helps diagnose the apply_patch verification failed error.

Changes

Issue #11674 (scroll to active tab when clicked)

  • Adds a createEffect that watches the active tab
  • When the active tab changes (e.g., user clicks on a tab), it checks if the tab is overflowed
  • If overflowed, it scrolls the tab into view smoothly

Issue #11687 (validate paths for unexpanded environment variables)

  • Adds path validation at the beginning of the patch processing loop to check for "USERNAME" in paths on Windows
  • Throws a descriptive error message indicating the path may contain an unexpanded environment variable or corrupted patch
  • Separated error messages for "file not found" vs "path is a directory" for clearer diagnostics

Testing

Issue #11674:

  • Open multiple file tabs until they overflow the visible area
  • Click on a partially-hidden tab on the right side
  • The tab should scroll into full view, making the close button accessible

Issue #11687:

  • The fix validates paths before attempting to read them, catching potential issues early with helpful error messages.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

Based on my search, I found a potentially duplicate PR:

PR #11676 - "fix(app): scroll review tab into view when clicked while overflowed"
#11676

This appears to be addressing the same issue as PR #11685. Both PRs are fixing tab scrolling behavior when tabs are overflowed, specifically making the close button accessible by scrolling tabs into view when clicked. This looks like it may be a duplicate of the current PR.

CopilotAI review requested due to automatic review settings February 25, 2026 15:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes two issues: #11674 (scroll to active tab when clicked) and #11687 (validate paths for unexpanded environment variables on Windows). The changes include tab scrolling functionality, path validation improvements, and various refactoring/cleanup across multiple components.

Changes:

  • Added scroll-to-view functionality for overflowed tabs in file/review sections
  • Added path validation to detect unexpanded environment variables on Windows
  • Refactored multiple components to improve code organization and remove duplication

Reviewed changes

Copilot reviewed 180 out of 1811 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
packages/app/src/components/settings-providers.tsxRefactored provider notes to use a centralized lookup table and improved type safety
packages/app/src/components/settings-permissions.tsxExtracted rollback logic into a separate function for better code organization
packages/app/src/components/settings-models.tsxExtracted loading and empty state components for reusability
packages/app/src/components/settings-mcp.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-commands.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-agents.tsxAdded TODO comment for future implementation
packages/app/src/components/session/session-sortable-terminal-tab.tsxReplaced setTimeout-based focus with createEffect and requestAnimationFrame
packages/app/src/components/session/session-sortable-tab.tsxUpdated to use TooltipKeybind and improved memoization
packages/app/src/components/session/session-new-view.tsxSwitched from sync.data.path.directory to sdk.directory
packages/app/src/components/session/session-context-metrics.tsNew file: Extracts session context metrics calculation logic
packages/app/src/components/session/session-context-metrics.test.tsNew file: Test coverage for session context metrics
packages/app/src/components/session/session-context-format.tsNew file: Utility for formatting session context values
packages/app/src/components/session/session-context-breakdown.tsNew file: Calculates token usage breakdown for session context
packages/app/src/components/session/session-context-breakdown.test.tsNew file: Test coverage for context breakdown calculations
packages/app/src/components/session-context-usage.tsxRefactored to use extracted metrics calculation and added toggle functionality
packages/app/src/components/server/server-row.tsxNew file: Reusable component for displaying server connection rows
packages/app/src/components/prompt-input/placeholder.tsNew file: Extracted placeholder logic from prompt input component
packages/app/src/components/prompt-input/placeholder.test.tsNew file: Test coverage for placeholder logic
packages/app/src/components/prompt-input/image-attachments.tsxNew file: Extracted image attachments display component
packages/app/src/components/prompt-input/history.test.tsNew file: Test coverage for prompt history functionality
packages/app/src/components/prompt-input/editor-dom.tsNew file: DOM manipulation utilities for prompt editor
packages/app/src/components/prompt-input/editor-dom.test.tsNew file: Test coverage for editor DOM utilities
packages/app/src/components/prompt-input/drag-overlay.tsxNew file: Overlay component for drag and drop operations
packages/app/src/components/prompt-input/context-items.tsxNew file: Display component for context items in prompt
packages/app/src/components/link.tsxChanged from button to anchor element with proper href attribute
packages/app/src/components/file-tree.test.tsNew file: Test coverage for file tree functionality
packages/app/src/components/dialog-settings.tsxRemoved commented out tabs
packages/app/src/components/dialog-select-provider.tsxConsolidated provider notes into a function
packages/app/src/components/dialog-select-model-unpaid.tsxMoved event handler to component scope and removed unused imports
packages/app/src/components/dialog-select-mcp.tsxRefactored status labels into a lookup object and improved error handling
packages/app/src/components/dialog-release-notes.tsxSimplified keyboard handling by moving to onKeyDown prop
packages/app/src/components/dialog-manage-models.tsxAdded provider-level visibility toggling and improved sorting logic
packages/app/src/components/dialog-fork.tsxAdded error handling with toast notifications
packages/app/src/components/dialog-edit-project.tsxFixed promise handling and replaced getElementById with ref
packages/app/src/addons/serialize.tsImproved terminal buffer type checking and fixed cursor styling issues
packages/app/src/addons/serialize.test.tsRe-enabled previously skipped tests
packages/app/script/e2e-local.tsImproved cleanup handling and signal management
packages/app/playwright.config.tsUpdated network configuration to use 127.0.0.1 instead of localhost
packages/app/package.jsonUpdated version and added unit test scripts
packages/app/e2e/**/*.spec.tsMultiple e2e test improvements and new test files
packages/app/bunfig.tomlAdded test root configuration
package.jsonUpdated package manager version and dependencies
Various README filesAdded new language links and updated installation instructions
Various .github filesAdded vouch system, updated workflows, and improved issue management
Various nix filesUpdated nix configuration and build scripts
Various .opencode filesUpdated agent configurations and added glossary files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Scroll to active tab when clicked (fixes#11674)
- Validate paths on Windows for unexpanded USERNAME environment variable (fixes#11687)
Merge latest dev into the PR branch and preserve the session-side-panel tab scroll fix from #11685 while resolving conflicts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Geralt4

Copy link
Copy Markdown
Author

Updated and re-verified: this PR still cleanly addresses #11674 and #11687, and all required checks are green. Ready for maintainer review when convenient. 🙏

@Geralt4

Copy link
Copy Markdown
Author

Closing this PR.

@Geralt4Geralt4 closed this Mar 14, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

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

fix(app): scroll to active tab when clicked (fixes #11674) - #11685

Closed
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev
Closed

fix(app): scroll to active tab when clicked (fixes #11674)#11685
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev

Conversation

@Geralt4

@Geralt4Geralt4 commented Feb 1, 2026

Copy link
Copy Markdown

Fixes#11674
Fixes#11687

Summary

Two fixes:

  1. [BUG]: (app): Clicking on overflowed tab on the right in the file view/review section does not scroll it into view #11674: When clicking on an overflowed tab in the file view/review section, the tab is now scrolled into view so the close button becomes accessible. This extends the existing tab scrolling functionality from PR fix(app): file tabs - auto scroll on open & scroll via mouse wheel #11070.

  2. Windows: Preparing apply_patch... Error: apply_patch verification failed: F #11687: Added validation to detect paths containing "USERNAME" which may indicate an unexpanded environment variable or corrupted patch on Windows. This helps diagnose the apply_patch verification failed error.

Changes

Issue #11674 (scroll to active tab when clicked)

  • Adds a createEffect that watches the active tab
  • When the active tab changes (e.g., user clicks on a tab), it checks if the tab is overflowed
  • If overflowed, it scrolls the tab into view smoothly

Issue #11687 (validate paths for unexpanded environment variables)

  • Adds path validation at the beginning of the patch processing loop to check for "USERNAME" in paths on Windows
  • Throws a descriptive error message indicating the path may contain an unexpanded environment variable or corrupted patch
  • Separated error messages for "file not found" vs "path is a directory" for clearer diagnostics

Testing

Issue #11674:

  • Open multiple file tabs until they overflow the visible area
  • Click on a partially-hidden tab on the right side
  • The tab should scroll into full view, making the close button accessible

Issue #11687:

  • The fix validates paths before attempting to read them, catching potential issues early with helpful error messages.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

Based on my search, I found a potentially duplicate PR:

PR #11676 - "fix(app): scroll review tab into view when clicked while overflowed"
#11676

This appears to be addressing the same issue as PR #11685. Both PRs are fixing tab scrolling behavior when tabs are overflowed, specifically making the close button accessible by scrolling tabs into view when clicked. This looks like it may be a duplicate of the current PR.

CopilotAI review requested due to automatic review settings February 25, 2026 15:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes two issues: #11674 (scroll to active tab when clicked) and #11687 (validate paths for unexpanded environment variables on Windows). The changes include tab scrolling functionality, path validation improvements, and various refactoring/cleanup across multiple components.

Changes:

  • Added scroll-to-view functionality for overflowed tabs in file/review sections
  • Added path validation to detect unexpanded environment variables on Windows
  • Refactored multiple components to improve code organization and remove duplication

Reviewed changes

Copilot reviewed 180 out of 1811 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
packages/app/src/components/settings-providers.tsxRefactored provider notes to use a centralized lookup table and improved type safety
packages/app/src/components/settings-permissions.tsxExtracted rollback logic into a separate function for better code organization
packages/app/src/components/settings-models.tsxExtracted loading and empty state components for reusability
packages/app/src/components/settings-mcp.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-commands.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-agents.tsxAdded TODO comment for future implementation
packages/app/src/components/session/session-sortable-terminal-tab.tsxReplaced setTimeout-based focus with createEffect and requestAnimationFrame
packages/app/src/components/session/session-sortable-tab.tsxUpdated to use TooltipKeybind and improved memoization
packages/app/src/components/session/session-new-view.tsxSwitched from sync.data.path.directory to sdk.directory
packages/app/src/components/session/session-context-metrics.tsNew file: Extracts session context metrics calculation logic
packages/app/src/components/session/session-context-metrics.test.tsNew file: Test coverage for session context metrics
packages/app/src/components/session/session-context-format.tsNew file: Utility for formatting session context values
packages/app/src/components/session/session-context-breakdown.tsNew file: Calculates token usage breakdown for session context
packages/app/src/components/session/session-context-breakdown.test.tsNew file: Test coverage for context breakdown calculations
packages/app/src/components/session-context-usage.tsxRefactored to use extracted metrics calculation and added toggle functionality
packages/app/src/components/server/server-row.tsxNew file: Reusable component for displaying server connection rows
packages/app/src/components/prompt-input/placeholder.tsNew file: Extracted placeholder logic from prompt input component
packages/app/src/components/prompt-input/placeholder.test.tsNew file: Test coverage for placeholder logic
packages/app/src/components/prompt-input/image-attachments.tsxNew file: Extracted image attachments display component
packages/app/src/components/prompt-input/history.test.tsNew file: Test coverage for prompt history functionality
packages/app/src/components/prompt-input/editor-dom.tsNew file: DOM manipulation utilities for prompt editor
packages/app/src/components/prompt-input/editor-dom.test.tsNew file: Test coverage for editor DOM utilities
packages/app/src/components/prompt-input/drag-overlay.tsxNew file: Overlay component for drag and drop operations
packages/app/src/components/prompt-input/context-items.tsxNew file: Display component for context items in prompt
packages/app/src/components/link.tsxChanged from button to anchor element with proper href attribute
packages/app/src/components/file-tree.test.tsNew file: Test coverage for file tree functionality
packages/app/src/components/dialog-settings.tsxRemoved commented out tabs
packages/app/src/components/dialog-select-provider.tsxConsolidated provider notes into a function
packages/app/src/components/dialog-select-model-unpaid.tsxMoved event handler to component scope and removed unused imports
packages/app/src/components/dialog-select-mcp.tsxRefactored status labels into a lookup object and improved error handling
packages/app/src/components/dialog-release-notes.tsxSimplified keyboard handling by moving to onKeyDown prop
packages/app/src/components/dialog-manage-models.tsxAdded provider-level visibility toggling and improved sorting logic
packages/app/src/components/dialog-fork.tsxAdded error handling with toast notifications
packages/app/src/components/dialog-edit-project.tsxFixed promise handling and replaced getElementById with ref
packages/app/src/addons/serialize.tsImproved terminal buffer type checking and fixed cursor styling issues
packages/app/src/addons/serialize.test.tsRe-enabled previously skipped tests
packages/app/script/e2e-local.tsImproved cleanup handling and signal management
packages/app/playwright.config.tsUpdated network configuration to use 127.0.0.1 instead of localhost
packages/app/package.jsonUpdated version and added unit test scripts
packages/app/e2e/**/*.spec.tsMultiple e2e test improvements and new test files
packages/app/bunfig.tomlAdded test root configuration
package.jsonUpdated package manager version and dependencies
Various README filesAdded new language links and updated installation instructions
Various .github filesAdded vouch system, updated workflows, and improved issue management
Various nix filesUpdated nix configuration and build scripts
Various .opencode filesUpdated agent configurations and added glossary files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Scroll to active tab when clicked (fixes#11674)
- Validate paths on Windows for unexpanded USERNAME environment variable (fixes#11687)
Merge latest dev into the PR branch and preserve the session-side-panel tab scroll fix from #11685 while resolving conflicts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Geralt4

Copy link
Copy Markdown
Author

Updated and re-verified: this PR still cleanly addresses #11674 and #11687, and all required checks are green. Ready for maintainer review when convenient. 🙏

@Geralt4

Copy link
Copy Markdown
Author

Closing this PR.

@Geralt4Geralt4 closed this Mar 14, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

@Geralt4
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(app): scroll to active tab when clicked (fixes #11674) by Geralt4 · Pull Request #11685 · anomalyco/opencode · GitHub
Skip to content

fix(app): scroll to active tab when clicked (fixes #11674) - #11685

Closed
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev
Closed

fix(app): scroll to active tab when clicked (fixes #11674)#11685
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev

Conversation

@Geralt4

@Geralt4Geralt4 commented Feb 1, 2026

Copy link
Copy Markdown

Fixes#11674
Fixes#11687

Summary

Two fixes:

  1. [BUG]: (app): Clicking on overflowed tab on the right in the file view/review section does not scroll it into view #11674: When clicking on an overflowed tab in the file view/review section, the tab is now scrolled into view so the close button becomes accessible. This extends the existing tab scrolling functionality from PR fix(app): file tabs - auto scroll on open & scroll via mouse wheel #11070.

  2. Windows: Preparing apply_patch... Error: apply_patch verification failed: F #11687: Added validation to detect paths containing "USERNAME" which may indicate an unexpanded environment variable or corrupted patch on Windows. This helps diagnose the apply_patch verification failed error.

Changes

Issue #11674 (scroll to active tab when clicked)

  • Adds a createEffect that watches the active tab
  • When the active tab changes (e.g., user clicks on a tab), it checks if the tab is overflowed
  • If overflowed, it scrolls the tab into view smoothly

Issue #11687 (validate paths for unexpanded environment variables)

  • Adds path validation at the beginning of the patch processing loop to check for "USERNAME" in paths on Windows
  • Throws a descriptive error message indicating the path may contain an unexpanded environment variable or corrupted patch
  • Separated error messages for "file not found" vs "path is a directory" for clearer diagnostics

Testing

Issue #11674:

  • Open multiple file tabs until they overflow the visible area
  • Click on a partially-hidden tab on the right side
  • The tab should scroll into full view, making the close button accessible

Issue #11687:

  • The fix validates paths before attempting to read them, catching potential issues early with helpful error messages.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

Based on my search, I found a potentially duplicate PR:

PR #11676 - "fix(app): scroll review tab into view when clicked while overflowed"
#11676

This appears to be addressing the same issue as PR #11685. Both PRs are fixing tab scrolling behavior when tabs are overflowed, specifically making the close button accessible by scrolling tabs into view when clicked. This looks like it may be a duplicate of the current PR.

CopilotAI review requested due to automatic review settings February 25, 2026 15:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes two issues: #11674 (scroll to active tab when clicked) and #11687 (validate paths for unexpanded environment variables on Windows). The changes include tab scrolling functionality, path validation improvements, and various refactoring/cleanup across multiple components.

Changes:

  • Added scroll-to-view functionality for overflowed tabs in file/review sections
  • Added path validation to detect unexpanded environment variables on Windows
  • Refactored multiple components to improve code organization and remove duplication

Reviewed changes

Copilot reviewed 180 out of 1811 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
packages/app/src/components/settings-providers.tsxRefactored provider notes to use a centralized lookup table and improved type safety
packages/app/src/components/settings-permissions.tsxExtracted rollback logic into a separate function for better code organization
packages/app/src/components/settings-models.tsxExtracted loading and empty state components for reusability
packages/app/src/components/settings-mcp.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-commands.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-agents.tsxAdded TODO comment for future implementation
packages/app/src/components/session/session-sortable-terminal-tab.tsxReplaced setTimeout-based focus with createEffect and requestAnimationFrame
packages/app/src/components/session/session-sortable-tab.tsxUpdated to use TooltipKeybind and improved memoization
packages/app/src/components/session/session-new-view.tsxSwitched from sync.data.path.directory to sdk.directory
packages/app/src/components/session/session-context-metrics.tsNew file: Extracts session context metrics calculation logic
packages/app/src/components/session/session-context-metrics.test.tsNew file: Test coverage for session context metrics
packages/app/src/components/session/session-context-format.tsNew file: Utility for formatting session context values
packages/app/src/components/session/session-context-breakdown.tsNew file: Calculates token usage breakdown for session context
packages/app/src/components/session/session-context-breakdown.test.tsNew file: Test coverage for context breakdown calculations
packages/app/src/components/session-context-usage.tsxRefactored to use extracted metrics calculation and added toggle functionality
packages/app/src/components/server/server-row.tsxNew file: Reusable component for displaying server connection rows
packages/app/src/components/prompt-input/placeholder.tsNew file: Extracted placeholder logic from prompt input component
packages/app/src/components/prompt-input/placeholder.test.tsNew file: Test coverage for placeholder logic
packages/app/src/components/prompt-input/image-attachments.tsxNew file: Extracted image attachments display component
packages/app/src/components/prompt-input/history.test.tsNew file: Test coverage for prompt history functionality
packages/app/src/components/prompt-input/editor-dom.tsNew file: DOM manipulation utilities for prompt editor
packages/app/src/components/prompt-input/editor-dom.test.tsNew file: Test coverage for editor DOM utilities
packages/app/src/components/prompt-input/drag-overlay.tsxNew file: Overlay component for drag and drop operations
packages/app/src/components/prompt-input/context-items.tsxNew file: Display component for context items in prompt
packages/app/src/components/link.tsxChanged from button to anchor element with proper href attribute
packages/app/src/components/file-tree.test.tsNew file: Test coverage for file tree functionality
packages/app/src/components/dialog-settings.tsxRemoved commented out tabs
packages/app/src/components/dialog-select-provider.tsxConsolidated provider notes into a function
packages/app/src/components/dialog-select-model-unpaid.tsxMoved event handler to component scope and removed unused imports
packages/app/src/components/dialog-select-mcp.tsxRefactored status labels into a lookup object and improved error handling
packages/app/src/components/dialog-release-notes.tsxSimplified keyboard handling by moving to onKeyDown prop
packages/app/src/components/dialog-manage-models.tsxAdded provider-level visibility toggling and improved sorting logic
packages/app/src/components/dialog-fork.tsxAdded error handling with toast notifications
packages/app/src/components/dialog-edit-project.tsxFixed promise handling and replaced getElementById with ref
packages/app/src/addons/serialize.tsImproved terminal buffer type checking and fixed cursor styling issues
packages/app/src/addons/serialize.test.tsRe-enabled previously skipped tests
packages/app/script/e2e-local.tsImproved cleanup handling and signal management
packages/app/playwright.config.tsUpdated network configuration to use 127.0.0.1 instead of localhost
packages/app/package.jsonUpdated version and added unit test scripts
packages/app/e2e/**/*.spec.tsMultiple e2e test improvements and new test files
packages/app/bunfig.tomlAdded test root configuration
package.jsonUpdated package manager version and dependencies
Various README filesAdded new language links and updated installation instructions
Various .github filesAdded vouch system, updated workflows, and improved issue management
Various nix filesUpdated nix configuration and build scripts
Various .opencode filesUpdated agent configurations and added glossary files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Scroll to active tab when clicked (fixes#11674)
- Validate paths on Windows for unexpanded USERNAME environment variable (fixes#11687)
Merge latest dev into the PR branch and preserve the session-side-panel tab scroll fix from #11685 while resolving conflicts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Geralt4

Copy link
Copy Markdown
Author

Updated and re-verified: this PR still cleanly addresses #11674 and #11687, and all required checks are green. Ready for maintainer review when convenient. 🙏

@Geralt4

Copy link
Copy Markdown
Author

Closing this PR.

@Geralt4Geralt4 closed this Mar 14, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

@Geralt4
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(app): scroll to active tab when clicked (fixes #11674) by Geralt4 · Pull Request #11685 · anomalyco/opencode · GitHub
Skip to content

fix(app): scroll to active tab when clicked (fixes #11674) - #11685

Closed
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev
Closed

fix(app): scroll to active tab when clicked (fixes #11674)#11685
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev

Conversation

@Geralt4

@Geralt4Geralt4 commented Feb 1, 2026

Copy link
Copy Markdown

Fixes#11674
Fixes#11687

Summary

Two fixes:

  1. [BUG]: (app): Clicking on overflowed tab on the right in the file view/review section does not scroll it into view #11674: When clicking on an overflowed tab in the file view/review section, the tab is now scrolled into view so the close button becomes accessible. This extends the existing tab scrolling functionality from PR fix(app): file tabs - auto scroll on open & scroll via mouse wheel #11070.

  2. Windows: Preparing apply_patch... Error: apply_patch verification failed: F #11687: Added validation to detect paths containing "USERNAME" which may indicate an unexpanded environment variable or corrupted patch on Windows. This helps diagnose the apply_patch verification failed error.

Changes

Issue #11674 (scroll to active tab when clicked)

  • Adds a createEffect that watches the active tab
  • When the active tab changes (e.g., user clicks on a tab), it checks if the tab is overflowed
  • If overflowed, it scrolls the tab into view smoothly

Issue #11687 (validate paths for unexpanded environment variables)

  • Adds path validation at the beginning of the patch processing loop to check for "USERNAME" in paths on Windows
  • Throws a descriptive error message indicating the path may contain an unexpanded environment variable or corrupted patch
  • Separated error messages for "file not found" vs "path is a directory" for clearer diagnostics

Testing

Issue #11674:

  • Open multiple file tabs until they overflow the visible area
  • Click on a partially-hidden tab on the right side
  • The tab should scroll into full view, making the close button accessible

Issue #11687:

  • The fix validates paths before attempting to read them, catching potential issues early with helpful error messages.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

Based on my search, I found a potentially duplicate PR:

PR #11676 - "fix(app): scroll review tab into view when clicked while overflowed"
#11676

This appears to be addressing the same issue as PR #11685. Both PRs are fixing tab scrolling behavior when tabs are overflowed, specifically making the close button accessible by scrolling tabs into view when clicked. This looks like it may be a duplicate of the current PR.

CopilotAI review requested due to automatic review settings February 25, 2026 15:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes two issues: #11674 (scroll to active tab when clicked) and #11687 (validate paths for unexpanded environment variables on Windows). The changes include tab scrolling functionality, path validation improvements, and various refactoring/cleanup across multiple components.

Changes:

  • Added scroll-to-view functionality for overflowed tabs in file/review sections
  • Added path validation to detect unexpanded environment variables on Windows
  • Refactored multiple components to improve code organization and remove duplication

Reviewed changes

Copilot reviewed 180 out of 1811 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
packages/app/src/components/settings-providers.tsxRefactored provider notes to use a centralized lookup table and improved type safety
packages/app/src/components/settings-permissions.tsxExtracted rollback logic into a separate function for better code organization
packages/app/src/components/settings-models.tsxExtracted loading and empty state components for reusability
packages/app/src/components/settings-mcp.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-commands.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-agents.tsxAdded TODO comment for future implementation
packages/app/src/components/session/session-sortable-terminal-tab.tsxReplaced setTimeout-based focus with createEffect and requestAnimationFrame
packages/app/src/components/session/session-sortable-tab.tsxUpdated to use TooltipKeybind and improved memoization
packages/app/src/components/session/session-new-view.tsxSwitched from sync.data.path.directory to sdk.directory
packages/app/src/components/session/session-context-metrics.tsNew file: Extracts session context metrics calculation logic
packages/app/src/components/session/session-context-metrics.test.tsNew file: Test coverage for session context metrics
packages/app/src/components/session/session-context-format.tsNew file: Utility for formatting session context values
packages/app/src/components/session/session-context-breakdown.tsNew file: Calculates token usage breakdown for session context
packages/app/src/components/session/session-context-breakdown.test.tsNew file: Test coverage for context breakdown calculations
packages/app/src/components/session-context-usage.tsxRefactored to use extracted metrics calculation and added toggle functionality
packages/app/src/components/server/server-row.tsxNew file: Reusable component for displaying server connection rows
packages/app/src/components/prompt-input/placeholder.tsNew file: Extracted placeholder logic from prompt input component
packages/app/src/components/prompt-input/placeholder.test.tsNew file: Test coverage for placeholder logic
packages/app/src/components/prompt-input/image-attachments.tsxNew file: Extracted image attachments display component
packages/app/src/components/prompt-input/history.test.tsNew file: Test coverage for prompt history functionality
packages/app/src/components/prompt-input/editor-dom.tsNew file: DOM manipulation utilities for prompt editor
packages/app/src/components/prompt-input/editor-dom.test.tsNew file: Test coverage for editor DOM utilities
packages/app/src/components/prompt-input/drag-overlay.tsxNew file: Overlay component for drag and drop operations
packages/app/src/components/prompt-input/context-items.tsxNew file: Display component for context items in prompt
packages/app/src/components/link.tsxChanged from button to anchor element with proper href attribute
packages/app/src/components/file-tree.test.tsNew file: Test coverage for file tree functionality
packages/app/src/components/dialog-settings.tsxRemoved commented out tabs
packages/app/src/components/dialog-select-provider.tsxConsolidated provider notes into a function
packages/app/src/components/dialog-select-model-unpaid.tsxMoved event handler to component scope and removed unused imports
packages/app/src/components/dialog-select-mcp.tsxRefactored status labels into a lookup object and improved error handling
packages/app/src/components/dialog-release-notes.tsxSimplified keyboard handling by moving to onKeyDown prop
packages/app/src/components/dialog-manage-models.tsxAdded provider-level visibility toggling and improved sorting logic
packages/app/src/components/dialog-fork.tsxAdded error handling with toast notifications
packages/app/src/components/dialog-edit-project.tsxFixed promise handling and replaced getElementById with ref
packages/app/src/addons/serialize.tsImproved terminal buffer type checking and fixed cursor styling issues
packages/app/src/addons/serialize.test.tsRe-enabled previously skipped tests
packages/app/script/e2e-local.tsImproved cleanup handling and signal management
packages/app/playwright.config.tsUpdated network configuration to use 127.0.0.1 instead of localhost
packages/app/package.jsonUpdated version and added unit test scripts
packages/app/e2e/**/*.spec.tsMultiple e2e test improvements and new test files
packages/app/bunfig.tomlAdded test root configuration
package.jsonUpdated package manager version and dependencies
Various README filesAdded new language links and updated installation instructions
Various .github filesAdded vouch system, updated workflows, and improved issue management
Various nix filesUpdated nix configuration and build scripts
Various .opencode filesUpdated agent configurations and added glossary files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Scroll to active tab when clicked (fixes#11674)
- Validate paths on Windows for unexpanded USERNAME environment variable (fixes#11687)
Merge latest dev into the PR branch and preserve the session-side-panel tab scroll fix from #11685 while resolving conflicts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Geralt4

Copy link
Copy Markdown
Author

Updated and re-verified: this PR still cleanly addresses #11674 and #11687, and all required checks are green. Ready for maintainer review when convenient. 🙏

@Geralt4

Copy link
Copy Markdown
Author

Closing this PR.

@Geralt4Geralt4 closed this Mar 14, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

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

fix(app): scroll to active tab when clicked (fixes #11674) - #11685

Closed
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev
Closed

fix(app): scroll to active tab when clicked (fixes #11674)#11685
Geralt4 wants to merge 2 commits into
anomalyco:devfrom
Geralt4:dev

Conversation

@Geralt4

@Geralt4Geralt4 commented Feb 1, 2026

Copy link
Copy Markdown

Fixes#11674
Fixes#11687

Summary

Two fixes:

  1. [BUG]: (app): Clicking on overflowed tab on the right in the file view/review section does not scroll it into view #11674: When clicking on an overflowed tab in the file view/review section, the tab is now scrolled into view so the close button becomes accessible. This extends the existing tab scrolling functionality from PR fix(app): file tabs - auto scroll on open & scroll via mouse wheel #11070.

  2. Windows: Preparing apply_patch... Error: apply_patch verification failed: F #11687: Added validation to detect paths containing "USERNAME" which may indicate an unexpanded environment variable or corrupted patch on Windows. This helps diagnose the apply_patch verification failed error.

Changes

Issue #11674 (scroll to active tab when clicked)

  • Adds a createEffect that watches the active tab
  • When the active tab changes (e.g., user clicks on a tab), it checks if the tab is overflowed
  • If overflowed, it scrolls the tab into view smoothly

Issue #11687 (validate paths for unexpanded environment variables)

  • Adds path validation at the beginning of the patch processing loop to check for "USERNAME" in paths on Windows
  • Throws a descriptive error message indicating the path may contain an unexpanded environment variable or corrupted patch
  • Separated error messages for "file not found" vs "path is a directory" for clearer diagnostics

Testing

Issue #11674:

  • Open multiple file tabs until they overflow the visible area
  • Click on a partially-hidden tab on the right side
  • The tab should scroll into full view, making the close button accessible

Issue #11687:

  • The fix validates paths before attempting to read them, catching potential issues early with helpful error messages.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

Based on my search, I found a potentially duplicate PR:

PR #11676 - "fix(app): scroll review tab into view when clicked while overflowed"
#11676

This appears to be addressing the same issue as PR #11685. Both PRs are fixing tab scrolling behavior when tabs are overflowed, specifically making the close button accessible by scrolling tabs into view when clicked. This looks like it may be a duplicate of the current PR.

CopilotAI review requested due to automatic review settings February 25, 2026 15:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes two issues: #11674 (scroll to active tab when clicked) and #11687 (validate paths for unexpanded environment variables on Windows). The changes include tab scrolling functionality, path validation improvements, and various refactoring/cleanup across multiple components.

Changes:

  • Added scroll-to-view functionality for overflowed tabs in file/review sections
  • Added path validation to detect unexpanded environment variables on Windows
  • Refactored multiple components to improve code organization and remove duplication

Reviewed changes

Copilot reviewed 180 out of 1811 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
packages/app/src/components/settings-providers.tsxRefactored provider notes to use a centralized lookup table and improved type safety
packages/app/src/components/settings-permissions.tsxExtracted rollback logic into a separate function for better code organization
packages/app/src/components/settings-models.tsxExtracted loading and empty state components for reusability
packages/app/src/components/settings-mcp.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-commands.tsxAdded TODO comment for future implementation
packages/app/src/components/settings-agents.tsxAdded TODO comment for future implementation
packages/app/src/components/session/session-sortable-terminal-tab.tsxReplaced setTimeout-based focus with createEffect and requestAnimationFrame
packages/app/src/components/session/session-sortable-tab.tsxUpdated to use TooltipKeybind and improved memoization
packages/app/src/components/session/session-new-view.tsxSwitched from sync.data.path.directory to sdk.directory
packages/app/src/components/session/session-context-metrics.tsNew file: Extracts session context metrics calculation logic
packages/app/src/components/session/session-context-metrics.test.tsNew file: Test coverage for session context metrics
packages/app/src/components/session/session-context-format.tsNew file: Utility for formatting session context values
packages/app/src/components/session/session-context-breakdown.tsNew file: Calculates token usage breakdown for session context
packages/app/src/components/session/session-context-breakdown.test.tsNew file: Test coverage for context breakdown calculations
packages/app/src/components/session-context-usage.tsxRefactored to use extracted metrics calculation and added toggle functionality
packages/app/src/components/server/server-row.tsxNew file: Reusable component for displaying server connection rows
packages/app/src/components/prompt-input/placeholder.tsNew file: Extracted placeholder logic from prompt input component
packages/app/src/components/prompt-input/placeholder.test.tsNew file: Test coverage for placeholder logic
packages/app/src/components/prompt-input/image-attachments.tsxNew file: Extracted image attachments display component
packages/app/src/components/prompt-input/history.test.tsNew file: Test coverage for prompt history functionality
packages/app/src/components/prompt-input/editor-dom.tsNew file: DOM manipulation utilities for prompt editor
packages/app/src/components/prompt-input/editor-dom.test.tsNew file: Test coverage for editor DOM utilities
packages/app/src/components/prompt-input/drag-overlay.tsxNew file: Overlay component for drag and drop operations
packages/app/src/components/prompt-input/context-items.tsxNew file: Display component for context items in prompt
packages/app/src/components/link.tsxChanged from button to anchor element with proper href attribute
packages/app/src/components/file-tree.test.tsNew file: Test coverage for file tree functionality
packages/app/src/components/dialog-settings.tsxRemoved commented out tabs
packages/app/src/components/dialog-select-provider.tsxConsolidated provider notes into a function
packages/app/src/components/dialog-select-model-unpaid.tsxMoved event handler to component scope and removed unused imports
packages/app/src/components/dialog-select-mcp.tsxRefactored status labels into a lookup object and improved error handling
packages/app/src/components/dialog-release-notes.tsxSimplified keyboard handling by moving to onKeyDown prop
packages/app/src/components/dialog-manage-models.tsxAdded provider-level visibility toggling and improved sorting logic
packages/app/src/components/dialog-fork.tsxAdded error handling with toast notifications
packages/app/src/components/dialog-edit-project.tsxFixed promise handling and replaced getElementById with ref
packages/app/src/addons/serialize.tsImproved terminal buffer type checking and fixed cursor styling issues
packages/app/src/addons/serialize.test.tsRe-enabled previously skipped tests
packages/app/script/e2e-local.tsImproved cleanup handling and signal management
packages/app/playwright.config.tsUpdated network configuration to use 127.0.0.1 instead of localhost
packages/app/package.jsonUpdated version and added unit test scripts
packages/app/e2e/**/*.spec.tsMultiple e2e test improvements and new test files
packages/app/bunfig.tomlAdded test root configuration
package.jsonUpdated package manager version and dependencies
Various README filesAdded new language links and updated installation instructions
Various .github filesAdded vouch system, updated workflows, and improved issue management
Various nix filesUpdated nix configuration and build scripts
Various .opencode filesUpdated agent configurations and added glossary files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Scroll to active tab when clicked (fixes#11674)
- Validate paths on Windows for unexpanded USERNAME environment variable (fixes#11687)
Merge latest dev into the PR branch and preserve the session-side-panel tab scroll fix from #11685 while resolving conflicts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Geralt4

Copy link
Copy Markdown
Author

Updated and re-verified: this PR still cleanly addresses #11674 and #11687, and all required checks are green. Ready for maintainer review when convenient. 🙏

@Geralt4

Copy link
Copy Markdown
Author

Closing this PR.

@Geralt4Geralt4 closed this Mar 14, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

@Geralt4