DeepSeek Harness macOS panel clicks: focus and anchor

TroubleshootingPublished 2026-10-30Author: DeepSeek Plugin Market
DeepSeek HarnessDSHmacOSdirectory pickerNSOpenPanelMenuSurfaceanchor-name
On macOS the DeepSeek Harness directory panel ignores sidebar and search clicks, and menu backing shows blurred text. Three triage classes and two real causes.

"Is Finder on my Mac broken? Search does not work and the sidebar will not open other folders" — that is how one user originally described it. In reality it was DSH's own directory picker: the panel appeared, but focus was never on it. The same machine also has a different class of menu problem where clicks land but the position is wrong. Both look like broken UI and the fixes are completely different (#10748, #10607).

DeepSeek Harness: Triage table: three kinds of "click does nothing"

First decide whether the whole block is unresponsive, part of it is unresponsive, or it responds but is misplaced — the three point at focus, window layering, and anchors respectively.

SymptomInteractive objectDirection
Sidebar and search both deadsystem-level native panelpanel is not the key window
Right file list works, left does nottwo regions of the same panelthe left is an AppKit table view
Menu clicks but shows text through and is offsetin-page web menuCSS anchors not applied

Keep the order fixed: confirm "does it click", then "which part clicks", and only then look at visuals.

DSH plugin: Type 1: the panel never gets focus

The panel is shown as an accessory app and the activation call happens before the panel is created; at that point the process has no window, so the system hands focus straight back.

  1. Symptom: click "add new folder", the panel appears, sidebar clicks do nothing, and typing in the search box produces no caret.
  2. The community's standalone reproduction: run that JXA directly, and the panel is shown by the osascript process.
  3. The hosting service is Open and Save Panel Service (osascript), confirming it is a system-level panel, not a web element.
  4. mdfind returned normally at the same time, ruling out a damaged Spotlight index.
  5. Conclusion: activateIgnoringOtherApps(true) is called before NSOpenPanel.openPanel, so the panel appears visible but not as the key window.

DeepSeek Harness: Type 2: the right side clicks, the left side does not

The sidebar is an AppKit table view whose acceptsFirstMouse returns NO, so the first click is consumed as window activation; the right file list is the file dialog's own out-of-process view and accepts clicks normally.

  1. Observe the detail: the right side enters and leaves directories fine, while no item on the left responds.
  2. The sidebar does highlight after changing directories — that is the panel syncing to the current path, not click feedback, and it is easy to misread as "clickable".
  3. Probe it: use the same script to read panel.isKeyWindow and NSApp.isActive under both timings, activating before panel creation and after.
  4. Community result: the current code had isKeyWindow false in 5 of 6 runs; moving activation after creation gave 6/6 true.
  5. The fix is to move that activation line from before openPanel to after the panel exists and before runModal.
  6. The patch is on local branch fix/macos-panel-activation (cb461ebb87), with an assertion added in native-picker.spec.ts to pin the call order; 15 tests pass.

DSH Plugin: Type 3: the menu clicks, but position and appearance are wrong

When anchor-name and position-anchor are routed through var(), real Chromium does not apply the substitution, so the backing has no anchor and its size collapses to 0×0.

  1. Symptom: the menu is only a 45% translucent layer, showing blurred text over page content and a flat bright gray over the transparent window area.
  2. Sample the color: about (135,135,135) when broken, versus an opaque dark gray around (42,43,46) when the backing works as designed.
  3. Read the implementation: MenuSurface.tsx injects the anchor name as --dsh-menu-anchor, and the CSS side writes anchor-name: var(--dsh-menu-anchor) and position-anchor: var(--dsh-menu-anchor).
  4. Probe it: CSS.supports returns true for anchor-name, position-anchor, and anchor(), yet layout does not apply them.
  5. Check the size: the backing's getBoundingClientRect() is 0×0; after changing to a literal anchor name in the same window, backing and surface align perfectly.
  6. Check the fallbacks: top: anchor(top) and left: anchor(left) have no fallback and fall back to auto when invalid; anchor-size(width, 0px) takes an explicit fallback of 0. Fixed positioning plus auto offsets plus zero size is exactly the offset you see.
  7. Fix it by inlining both properties in MenuSurface.tsx — anchor-name on the surface and position-anchor on the backing — using the same generated string and dropping the custom-property indirection.

DeepSeek Harness: Two verifications: do not mix the classes

Confirm focus first, then anchors; neither experiment requires changing code.

  1. Focus experiment: click anywhere on the panel once, then click the sidebar. If the second click works, the first was consumed by activation.
  2. Alternatively, compare with a directory-picking entry known to work, such as an upload control on a web page, to confirm it is not system-wide.
  3. Anchor experiment: open the menu and see whether page text shows through; then change the backing's anchor name to a literal in dev tools and see whether it aligns.
  4. If it aligns, the variable indirection is the problem, not transparency or blur material settings.

DSH plugin: What the patch looks like

The fix is two positional adjustments: move the activation call later, and replace two anchor properties with literals instead of variables.

  1. For the directory panel, move activation from before panel creation to after creation and before runModal:
js
var panel = $.NSOpenPanel.openPanel;
panel.message = argv[0];
// activate only after the panel exists; otherwise an accessory app hands focus straight back
app.activateIgnoringOtherApps(true);
if (panel.runModal !== $.NSModalResponseOK) return '';
  1. For the menu, write anchor-name on the surface and position-anchor on the backing directly as the same generated string, no longer through var().
  2. Neither change affects other platform branches, and the stylesheet remains a consumer only.
  3. Run the matching tests after each change: 15 pass for the directory picker; the menu side is visually verifiable by alignment.

Verification after the fix

The criteria are concrete: focus on the panel, anchor on the backing.

  1. Reopen the directory panel and click any sidebar item; it should switch directories directly.
  2. Click the search box; a caret should appear and typing should work.
  3. Open the menu; the background should be opaque dark gray and no longer show page text.
  4. Resize the window and reopen the menu; direction and position should follow the trigger button.

Cautions

Separate focus problems from layout problems before editing anything.

  1. Do not treat it as a Finder failure. The panel looks almost identical to Finder; the community suggests noting "this is DSH's directory picker" in the panel or docs.
  2. Do not use "it highlights" as proof of clickability. The sidebar highlight is a result of syncing the current path.
  3. Do not just rename the CSS variable. Any variable name still goes through indirection; the problem is the substitution itself.
  4. Do not expect a restart to fix it. Both classes are code-level ordering and property problems.
  5. Record the OS version. The community reproduced it on macOS 26.4 and 27.2, so version is not the dividing line.

If your problem is "the panel clicks but nothing happens after choosing a directory", that is neither class — check the workspace creation path and ACLs.See DeepSeek Harness macOS: fullscreen black, lost window for the related case.

FAQ

On macOS, the DeepSeek Harness directory panel from add workspace ignores clicks on the Favorites sidebar — is Finder broken?

No, Finder is not broken: this is DSH's native directory picker in DeepSeek Harness, visually almost identical to Finder. The panel appears visible but not as the key window, so sidebar clicks are consumed as window activation, while the right-hand file list works because it is a separate out-of-process view.

Why can't I type in the DeepSeek Harness panel's search box either?

The search box has the same root cause in DeepSeek Harness: a non-key window gets no keyboard focus, so clicking the search box shows no caret. The community reproduced it on macOS 26.4 and confirmed mdfind works, ruling out a Spotlight index problem.

Is there a fix for the DeepSeek Harness panel's dead clicks?

Yes, DeepSeek Harness has a community local patch for the dead clicks: move activateIgnoringOtherApps(true) from before NSOpenPanel.openPanel to after the panel is created and before runModal. Probing showed isKeyWindow false in 5 of 6 runs before, and true in 6/6 after. The patch is on a local branch and not merged upstream.

The DeepSeek Harness menu background shows blurred text with bright edges — is that a transparency setting?

No, it is not a transparency setting: MenuSurface's macOS backing in DeepSeek Harness relies on CSS anchor positioning, and Chromium does not apply anchor-name / position-anchor when passed through var(), leaving the backing at 0×0 and only the 45% translucent layer. Inlining both properties fixes the alignment.

How do I quickly tell in DeepSeek Harness between 'the panel does not click' and 'the menu is misplaced'?

Look at the interactive object in DeepSeek Harness: a system-level dialog (choosing a directory) that does not respond is a focus problem; an in-page menu that clicks but is misplaced or visually wrong is an anchor problem. The first needs activation ordering, the second needs removing the CSS variable indirection.

Related Terms

key window
The key window is the macOS window currently receiving keyboard and mouse events. Some controls on a non-key window use the first click to activate the window, making them look visible but unclickable.— https://github.com/deepseek-ai/deepseek-harness/discussions/10748
NSOpenPanel
NSOpenPanel is macOS's native open/save panel. DSH's directory picker invokes it through JXA inside osascript, so the panel is hosted by a separate system process.— https://github.com/deepseek-ai/deepseek-harness/discussions/10748
acceptsFirstMouse
acceptsFirstMouse is an AppKit control property deciding whether the first click on a non-key window takes effect directly. When it returns NO, the first click only activates the window.— https://github.com/deepseek-ai/deepseek-harness/discussions/10748
anchor-name
anchor-name is a CSS anchor positioning property that names an element so others can position relative to it. When routed through a CSS custom property, Chromium may not apply the substitution, breaking positioning entirely.— https://github.com/deepseek-ai/deepseek-harness/discussions/10607

Sources