Skip to content

G4: Expose bounded session metadata in session list #196

Description

@SarthakWade

Problem

session list currently returns session names and isolation flags only. Agents cannot identify which session is on the relevant page or how old a session is without inspecting each one and changing agent-control state.

Split from #54 G4.

Contract

  • Add an architecture decision defining metadata fields, freshness, privacy, bounds, and engine parity.
  • Extend typed session details with current HTTP or HTTPS URL, page title, creation time or age, isolation mode, and lifecycle availability.
  • Collect metadata without enabling agent control, taking a semantic snapshot, activating a window, or changing page state.
  • Redact URL userinfo and bound URL and title lengths. Mark page-derived title and URL data as untrusted.
  • Return per-session metadata failures as bounded status fields so one broken or navigating session does not fail the whole list.
  • Keep deterministic name ordering and preserve the existing sessions compatibility array.
  • Do not expose cookies, storage, credential aliases, authentication state, native window identifiers, process internals, or filesystem paths.

Acceptance criteria

  • Normal, isolated, navigating, closed-race, and failed-session paths are covered.
  • Both WebKit and Chromium return the same metadata shape.
  • Long or hostile titles and URLs are bounded and safely marked untrusted.
  • Listing sessions has no focus, navigation, agent-control, or authentication side effects.
  • Protocol schema, generated SDK contracts, CLI docs, unit tests, and macOS/Linux E2E coverage pass.
  • Existing callers using only sessions and isolated remain compatible.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:cliCLI parser, help, capabilitiesarea:core-protocolHeadlessProtocol: wire protocol, validation, transportpriority:mediumScheduled, not blockingtype:featureNew capability or command

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions