Skip to content

fix: Windows capabilities + agentic loop persistence#1

Merged
localrivet merged 6 commits into
mainfrom
fix/windows-capabilities
Feb 28, 2026
Merged

fix: Windows capabilities + agentic loop persistence#1
localrivet merged 6 commits into
mainfrom
fix/windows-capabilities

Conversation

@localrivet
Copy link
Copy Markdown
Contributor

Summary

  • Fix 5 Windows capability bugs: TTS, browser detection, web search, desktop focus, native browser snapshot
  • Fix agentic loop stopping mid-task instead of completing all steps
  • Cross-platform Makefile, PID-based stale lock detection, PATH separator fix, transient error retry, NeboLoop reconnect storm fix

Windows Capability Fixes

  • TTS: escape single quotes + -NoProfile for PowerShell
  • Browser detection: add x86 Edge path + registry fallback (App Paths)
  • Web search: realistic user-agent/headers + resilient DuckDuckGo HTML parser
  • Desktop focus: 4-tier process matching (exact name → partial name → window title → FileDescription)
  • Native browser snapshot: domcontentloaded with 5s timeout + Wails v3 Windows workaround for JS injection (HTML:" " + SetURL)

Agentic Loop Fix

  • Runner re-enters loop once when model gives text-only with active task, so pendingTaskAction steering can fire
  • New prompt guideline: complete multi-step tasks back-to-back without pausing to narrate
  • Stronger steering nudge: "call a tool RIGHT NOW"

Test plan

  • TTS: Pass
  • Browser detection (Nebo profile): Pass
  • Desktop focus (Microsoft Edge): Pass
  • Web search: Pass
  • Native browser snapshot: Pass
  • Browser launch (Nebo profile): Pass
  • Vision analysis: Pass
  • Agentic loop persists through all 9 capability tests in one go
  • Chrome profile: Expected fail (needs extension)
  • PIM Mail: Expected fail (Outlook not installed)

🤖 Generated with Claude Code

localrivet and others added 6 commits February 26, 2026 10:42
… webview

Five Windows-specific capability failures fixed:

- TTS: escape single quotes and add -NoProfile to PowerShell command
- Browser detection: add x86 Edge path and registry-based fallback for
  msedge.exe/chrome.exe so Edge is found on every Windows install
- Web search: update user-agent/headers and rewrite DuckDuckGo HTML parser
  with multiple selector patterns for resilience
- Desktop focus: replace exact Get-Process -Name with 4-tier matching
  (exact/partial process name, window title, FileDescription from exe metadata)
- Native browser snapshot: wrap WaitForLoadState with context deadline using
  domcontentloaded, and fix Wails v3 Windows bug where JS option is only
  applied for HTML-mode windows (use HTML:" " + SetURL workaround)

Also includes cross-platform Makefile fixes, PID-based stale lock detection,
PATH separator fix, transient error retry in runner, and NeboLoop reconnect
storm fix from Windows dev environment setup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The runner exited immediately when the model returned text without tool
calls, even with an active objective. This caused multi-step tasks like
"test 5 capabilities" to stop after each tool result, requiring the user
to re-prompt for every step.

Three changes:
- Runner: when model gives text-only with an active task, re-enter the
  loop once so the pendingTaskAction steering generator can fire
- Prompt: new guideline #9 telling the model to complete multi-step
  tasks back-to-back without pausing to narrate between steps
- Steering: stronger pendingTaskAction nudge explicitly saying "call a
  tool RIGHT NOW" instead of vague "take action"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Resolve 3 conflicts:
- prompt.go: keep both fabrication rule (main) and multi-step completion rule (ours)
- runner.go: merge sliding window protection (main) with transient error retry (ours)
- web_tool.go: platform-aware user-agent via runtime.GOOS (darwin/linux/windows)

Fix Setpgid compile error on Windows by extracting into build-tagged helpers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- desktopSTRAPDoc(): full platform switch (Windows=Notepad/ctrl+c, Linux=Firefox/ctrl+c, macOS=Safari/cmd+c)
- systemSTRAPDoc(): full platform switch (Windows/Linux omit hide/quit_all, platform-specific search/keychain docs)
- Fix window/dialog STRAP docs: name → app param to match actual tool schemas
- Add Windows menu/dialog/space docs with Win32 limitation note
- Add sectionSystemEtiquette for shared computer courtesy
- Remove Nebo's duplicate sectionEtiquette orphan
- Update DesktopDomainOpts comments: "darwin only" → "darwin + windows"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@localrivet localrivet merged commit d566d27 into main Feb 28, 2026
1 of 2 checks passed
@localrivet localrivet deleted the fix/windows-capabilities branch February 28, 2026 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant