Skip to content

chore: version packages#61

Merged
totigm merged 1 commit into
mainfrom
changeset-release/main
Jun 16, 2026
Merged

chore: version packages#61
totigm merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@humanjs/core@0.8.0

Minor Changes

  • 13ca334: Add human.selectText(target, options?) — highlight text inside an element. The cursor moves to the element (humanized), then the text is selected — the "select this" gesture before copying, replacing, or triggering a highlight menu. Selects the element's whole text by default; pass { text } to select just that substring, located inside the element whitespace-tolerantly and mapped to exact offsets (first match, falling back to the whole element if not found) — so it's reproduced by the text itself, not brittle coordinates. In speed: 'instant' the cursor motion is skipped; the selection is still applied.

    Mirrored as the human_selectText MCP tool (with the optional text arg), rendered by the recorder code generators (toPlaywright / toHumanJS), documented in the @humanjs/skill primitives table, and backed by a new 'selectText' KnownActionType in @humanjs/core. @humanjs/generator captures the gesture too: highlighting an element's whole text records a plain selectText, and highlighting part of it records selectText(target, { text }) with the exact substring.

@humanjs/generator@0.1.0

Minor Changes

  • 39d87f3: Initial release of @humanjs/generator — a visual recorder that turns a real browsing session into a clean, humanized Playwright test.

    npx @humanjs/generator <url> opens a real Chromium window and a local (loopback-only) dashboard. As you click, type, scroll, drag, select text, and navigate, each action streams into the dashboard as a step captured with a role-first selector (ARIA role + accessible name → label → text → test id → #id → CSS → XPath). The dashboard is a full editor:

    • drag to reorder, delete, relabel (label → comment), and edit captured values
    • a per-step selector picker over the ranked candidates
    • point-and-add assertions (toBeVisible / toHaveText / toHaveURL)
    • a secret toggle that exports a value as process.env.X instead of a literal (passwords are always masked)
    • a personality switcher (careful / fast / distracted / precise)
    • a live, syntax-highlighted code preview that updates on every edit

    Export a @humanjs/playwright/test spec (.spec.ts / .test.ts) or a standalone HumanJS script (.ts). The curated timeline runs through @humanjs/playwright's codegen, so generated specs stay in lockstep with the library. Requires Node ≥ 20 and the Playwright Chromium browser (npx playwright install chromium).

Patch Changes

  • 13ca334: Add human.selectText(target, options?) — highlight text inside an element. The cursor moves to the element (humanized), then the text is selected — the "select this" gesture before copying, replacing, or triggering a highlight menu. Selects the element's whole text by default; pass { text } to select just that substring, located inside the element whitespace-tolerantly and mapped to exact offsets (first match, falling back to the whole element if not found) — so it's reproduced by the text itself, not brittle coordinates. In speed: 'instant' the cursor motion is skipped; the selection is still applied.

    Mirrored as the human_selectText MCP tool (with the optional text arg), rendered by the recorder code generators (toPlaywright / toHumanJS), documented in the @humanjs/skill primitives table, and backed by a new 'selectText' KnownActionType in @humanjs/core. @humanjs/generator captures the gesture too: highlighting an element's whole text records a plain selectText, and highlighting part of it records selectText(target, { text }) with the exact substring.

  • Updated dependencies [39d87f3]

  • Updated dependencies [39d87f3]

  • Updated dependencies [39d87f3]

  • Updated dependencies [13ca334]

    • @humanjs/playwright@0.9.0
    • @humanjs/core@0.8.0

@humanjs/mcp@0.4.0

Minor Changes

  • 13ca334: Add human.selectText(target, options?) — highlight text inside an element. The cursor moves to the element (humanized), then the text is selected — the "select this" gesture before copying, replacing, or triggering a highlight menu. Selects the element's whole text by default; pass { text } to select just that substring, located inside the element whitespace-tolerantly and mapped to exact offsets (first match, falling back to the whole element if not found) — so it's reproduced by the text itself, not brittle coordinates. In speed: 'instant' the cursor motion is skipped; the selection is still applied.

    Mirrored as the human_selectText MCP tool (with the optional text arg), rendered by the recorder code generators (toPlaywright / toHumanJS), documented in the @humanjs/skill primitives table, and backed by a new 'selectText' KnownActionType in @humanjs/core. @humanjs/generator captures the gesture too: highlighting an element's whole text records a plain selectText, and highlighting part of it records selectText(target, { text }) with the exact substring.

Patch Changes

  • Updated dependencies [39d87f3]
  • Updated dependencies [39d87f3]
  • Updated dependencies [39d87f3]
  • Updated dependencies [13ca334]
    • @humanjs/playwright@0.9.0
    • @humanjs/core@0.8.0
    • @humanjs/recorder@0.3.2

@humanjs/playwright@0.9.0

Minor Changes

  • 39d87f3: generatePlaywrightTest now renders explicit assert timeline events into @playwright/test assertions: { kind: 'visible' }expect(locator).toBeVisible(), { kind: 'text', value }toHaveText(value), { kind: 'url', value }expect(page).toHaveURL(value). They interleave with actions in recorded order and pull page + expect into the test automatically. The standalone generateHumanJS script export ignores them (a replay script has no expect). This lets tooling that builds a Timeline (notably @humanjs/generator) emit intentional assertions alongside the actions, beyond the ones already derived from reads and captured inputs.

  • 39d87f3: Export generateHumanJS and generatePlaywrightTest from the package root. They turn a Timeline (the structured action log from human.record() / rec.toTimeline()) directly into a runnable HumanJS script or a @humanjs/playwright/test spec — the same code the Recording exporters emit, now callable on any Timeline you construct or load. This is the codegen entry point @humanjs/generator builds on, and it's useful standalone for tooling that produces timelines without running a live recording.

  • 39d87f3: createHuman now installs the visual cursor overlay (installMouseHelper) by default, so humanized motion is visible in headed runs and recordings without a manual call — exported scripts from @humanjs/generator / Recording.toHumanJS() now show the cursor when you run them.

    Opt out with cursor: false — do this for speed: 'instant' / CI, where there's no motion to show and the injected cursor would otherwise land in test DOM and screenshots. Pass an options object (cursor: { color, size, … }) to style it. The @humanjs/playwright/test fixture opts out automatically in CI (it already runs instant there) and shows the cursor on local runs.

    The install is scoped to the session's page, idempotent (a manual installMouseHelper or the MCP server's install on top is a no-op), and skipped on page objects that don't support it (so unit-test mocks are unaffected).

  • 13ca334: Add human.selectText(target, options?) — highlight text inside an element. The cursor moves to the element (humanized), then the text is selected — the "select this" gesture before copying, replacing, or triggering a highlight menu. Selects the element's whole text by default; pass { text } to select just that substring, located inside the element whitespace-tolerantly and mapped to exact offsets (first match, falling back to the whole element if not found) — so it's reproduced by the text itself, not brittle coordinates. In speed: 'instant' the cursor motion is skipped; the selection is still applied.

    Mirrored as the human_selectText MCP tool (with the optional text arg), rendered by the recorder code generators (toPlaywright / toHumanJS), documented in the @humanjs/skill primitives table, and backed by a new 'selectText' KnownActionType in @humanjs/core. @humanjs/generator captures the gesture too: highlighting an element's whole text records a plain selectText, and highlighting part of it records selectText(target, { text }) with the exact substring.

Patch Changes

  • Updated dependencies [13ca334]
    • @humanjs/core@0.8.0

@humanjs/recorder@0.3.2

Patch Changes

  • Updated dependencies [39d87f3]
  • Updated dependencies [39d87f3]
  • Updated dependencies [39d87f3]
  • Updated dependencies [13ca334]
    • @humanjs/playwright@0.9.0

@humanjs/skill@0.2.1

Patch Changes

  • 13ca334: Add human.selectText(target, options?) — highlight text inside an element. The cursor moves to the element (humanized), then the text is selected — the "select this" gesture before copying, replacing, or triggering a highlight menu. Selects the element's whole text by default; pass { text } to select just that substring, located inside the element whitespace-tolerantly and mapped to exact offsets (first match, falling back to the whole element if not found) — so it's reproduced by the text itself, not brittle coordinates. In speed: 'instant' the cursor motion is skipped; the selection is still applied.

    Mirrored as the human_selectText MCP tool (with the optional text arg), rendered by the recorder code generators (toPlaywright / toHumanJS), documented in the @humanjs/skill primitives table, and backed by a new 'selectText' KnownActionType in @humanjs/core. @humanjs/generator captures the gesture too: highlighting an element's whole text records a plain selectText, and highlighting part of it records selectText(target, { text }) with the exact substring.

@humanjs/web@0.0.6

Patch Changes

  • Updated dependencies [13ca334]
    • @humanjs/core@0.8.0

@humanjs/examples@0.0.8

Patch Changes

  • Updated dependencies [39d87f3]
  • Updated dependencies [39d87f3]
  • Updated dependencies [39d87f3]
  • Updated dependencies [13ca334]
    • @humanjs/playwright@0.9.0
    • @humanjs/recorder@0.3.2

@github-actions github-actions Bot requested a review from totigm as a code owner June 15, 2026 10:55
@vercel

vercel Bot commented Jun 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
humanjs Ready Ready Preview, Comment Jun 16, 2026 4:32am

@github-actions github-actions Bot force-pushed the changeset-release/main branch from 009faf5 to 39ebbea Compare June 16, 2026 04:31
@totigm totigm merged commit 6972dea into main Jun 16, 2026
6 checks passed
@totigm totigm deleted the changeset-release/main branch June 16, 2026 05:16
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