Skip to content

feat: add browser-navigation skill for Playwright + Chromium#8

Closed
guiramos wants to merge 1 commit intodevfrom
feat/browser-navigation-skill
Closed

feat: add browser-navigation skill for Playwright + Chromium#8
guiramos wants to merge 1 commit intodevfrom
feat/browser-navigation-skill

Conversation

@guiramos
Copy link
Copy Markdown

Adds a skill that teaches agents how to navigate websites using Playwright + Chromium.

What it provides:

  • Launch pattern with anti-detection flags (AutomationControlled, custom UA, webdriver override)
  • Cookie consent banner handling
  • Credential typing with natural input delay
  • Auth flow waiting patterns
  • Content extraction and troubleshooting guide

Why:
Agents in the container now have Playwright + Chromium installed (Dockerfile update in backend). This skill gives them the knowledge to use it effectively, especially the anti-detection patterns required for sites with bot detection.

Tested on:

  • F1 Fantasy: login + navigate to leagues ✅
  • Cookie consent dismissal ✅
  • SPA navigation with hash routing ✅

Provides agents with knowledge to:
- Launch Chromium with anti-detection flags
- Handle cookie consent banners
- Type credentials with natural input delay
- Navigate SPAs and handle auth flows
- Extract content from rendered pages

Works with Playwright + Chromium installed in the agent container.
@guiramos guiramos closed this Mar 23, 2026
guiramos added a commit that referenced this pull request Mar 31, 2026
CRITICAL:
- #1: Fix InboxMessage.from type from number to string (Pilot address)
- #2: Fix parseNodeIdFromPilotAddress to extract only last hex group
- #3: Rebuild hostnameToNodeId cache from Convex on startup
- #4: Fix AgentNetworkConfig → AgentRegistryConfig type reference
- #5: Track processed message hashes to prevent re-processing on clear failure

HIGH:
- #7: Change default pollIntervalSeconds from 300 to 15
- #8: Fix startDaemon regex to match Pilot address format (0:xxxx.xxxx.xxxx)
- #9: Use registerAgent() for re-registration to preserve enriched metadata
- #10: Fix search query param from 'query' to 'q'
- #12: handleRefresh supports optional accountId, refreshes all if omitted
- #13: Move spawn import to top-level, remove 7 inline dynamic imports
- #14: Mark inbox tool action as debug-only (poll loop handles processing)

MEDIUM:
- #15: Add installation_id to PilotPeer interface and agentToPeer
- #16: Use exact /by-hostname/ endpoint for get_agent action
- #17: Add LRU-style eviction to hostnameToNodeId (max 1000 entries)
- openclaw#18: Add mutex (isPolling flag) to executePollCycle
- openclaw#19: Add lifecycle comments to startDaemon/stopDaemon (container vs local)
- openclaw#20: Pass gatewayToken in fetchNetworkMetadata Convex query
- openclaw#21: Wrap sendText fallback in try/catch with error handling
- openclaw#23: Document sendMessage JSON vs raw text design intent
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