[CLI]: find returns the full ancestor chain, and neither find nor snapshot can bound their output · Issue #42077 · microsoft/playwright · GitHub
Skip to content

[CLI]: find returns the full ancestor chain, and neither find nor snapshot can bound their output #42077

Closed

Description

find returns the whole ancestor chain of the match, so most of the output is wrapper nodes rather than the thing found. Searching a job board for one heading gave me eight levels of generic [ref=eN] to deliver three useful lines:

- generic [ref=e2]:
  - generic [ref=e8]:
    - generic [ref=e12]:
      - generic [ref=e26]:
        - generic [ref=e72]:
          - link [ref=e73] [cursor=pointer]:
            - /url: /pangramlabs/64baa007...
            - generic [ref=e74]:
              - heading "AI Research Scientist (NLP)" [level=3] [ref=e75]

For agent use this matters because the output is the context budget. A mode that returns the matched node plus its immediate children, without the path back to root, would cut that several-fold.

Related, there is no way to bound the output when a query is common: no --max-results on find, and no depth limit on snapshot, so a deeply nested SPA produces a large tree when two levels would do. Version 0.1.17.

Activity

  1. pavelfeldman commented on Aug 3, 2026

    @pavelfeldman
    Member

    For agent use this matters because the output is the context budget. A mode that returns the matched node plus its immediate children, without the path back to root, would cut that several-fold.

    We are optimizing for a 1M context window size at this point.

    Related, there is no way to bound the output when a query is common: no --max-results on find

    This is something we can add, as well as control of the size of the context (ancestor chain length).

  2. sashankh commented on Aug 21, 2026

    @sashankh

    I'd like to work on the remaining browser_find scope. Current main already exposes depth on browser_snapshot, so I propose a focused change that adds optional maxResults and maxAncestorDepth inputs to browser_find while preserving today's defaults.

    Unlike the closed #42127 approach, this would keep each match window separate with the existing ---- boundary, retain surrounding context, and render an explicit ellipsis when ancestors are omitted. I would add hermetic MCP tests for result limiting, ancestor truncation, multiple disjoint matches, and unchanged default output.

    If that scope is acceptable for a community contribution, please assign #42077 to me.

  3. alok-108 commented on Sep 26, 2026

    @alok-108
    Contributor

    I have submitted PR #42947 to add the maxResults parameter to �rowser_find and the --max-results option to the ind CLI command. It includes input validation for positive integers, clear header messaging when results are truncated (Found X matches for Y (showing first N):), and hermetic MCP and CLI test coverage while maintaining 100% backward compatibility.

  4. added a commit that references this issue on Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions