@ticktockbent/charlotte 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,32 @@ All notable changes to Charlotte will be documented in this file.
6
6
 
7
7
  <!-- Nothing yet -->
8
8
 
9
+ ## [0.6.2] - 2026-04-16
10
+
11
+ ### Added
12
+
13
+ - **`--cdp-endpoint` CLI option** — Connect to a running Chrome/Chromium instance via its DevTools Protocol endpoint instead of launching a new browser. Supports raw `ws://` URLs and a `channel:chrome` shorthand that auto-discovers the endpoint. `BrowserManager` gains a connected mode that uses `puppeteer.connect()`, and `PageManager.adoptExistingPages()` picks up pre-existing tabs. Closes GAP-33. (#153)
14
+ - **Iframe interaction** — Interaction tools (click, type, select, toggle, submit, scroll, hover, key, wait_for, upload, fill_form) now work against elements inside child frames. Complements the iframe content extraction added in v0.5.0, so agents can both see and act on iframe contents. Closes #66. (#160)
15
+ - **CI workflow** — GitHub Actions workflow runs lint, typecheck, and full test suite on push and PR. Closes #56, #58. (#154)
16
+ - **End-to-end MCP protocol tests** — New test suite exercises the server over an in-memory MCP transport to catch protocol-level regressions. Closes #60. (#156)
17
+
18
+ ### Changed
19
+
20
+ - **Reduced CDP session churn** — Interaction helpers no longer repeatedly attach/detach CDP sessions. Sessions are reused across calls, cutting per-action overhead. Closes #113. (#159)
21
+ - Applied Prettier formatting across all source and test files.
22
+ - Dependency updates: hono (#161), next (#152), basic-ftp (#151).
23
+
24
+ ### Fixed
25
+
26
+ - **Cross-frame drag validation** — `charlotte_drag` now validates that source and target elements belong to the same frame and surfaces a `CharlotteError` instead of producing undefined mouse behavior. (#160)
27
+ - **Stale frame sessions in `CDPSessionManager`** — Frame sessions are now cleaned up when frames detach, and empty reverse-index entries are pruned. Prevents leaks when navigating pages with many iframes. Closes #67. (#155)
28
+ - **Batched startup `tool.disable()`** — Disabling tools at startup based on profile no longer floods the client with a `sendToolListChanged()` notification per tool. Mirrors the batching fix for runtime enable/disable in v0.6.1. (#158)
29
+ - **Viewport preserved on CDP connect** — When connecting via `--cdp-endpoint`, Charlotte no longer overrides the viewport of pages already open in the target browser.
30
+
31
+ ### Internal
32
+
33
+ - Mixed-state group enable/disable tests added to cover partial-enable scenarios in the meta-tool. Closes #149. (#157)
34
+
9
35
  ## [0.6.1] - 2026-04-09
10
36
 
11
37
  ### Fixed
package/README.md CHANGED
@@ -18,7 +18,7 @@ Charlotte decomposes each page into a typed, structured representation — landm
18
18
 
19
19
  ### Benchmarks
20
20
 
21
- Charlotte v0.6.1 vs Playwright MCP, measured by characters returned per tool call on real websites:
21
+ Charlotte v0.6.2 vs Playwright MCP, measured by characters returned per tool call on real websites:
22
22
 
23
23
  **Navigation** (first contact with a page):
24
24
 
@@ -71,7 +71,7 @@ Agents receive landmarks, headings, interactive elements with typed metadata, bo
71
71
 
72
72
  **Observation** — `observe` (3 detail levels, structural tree view), `find` (spatial + semantic search, CSS selector mode), `screenshot` (with persistent artifact management), `screenshots`, `screenshot_get`, `screenshot_delete`, `diff` (structural comparison against snapshots)
73
73
 
74
- **Interaction** — `click`, `click_at` (coordinate-based), `type` (with slow typing support), `select`, `toggle`, `submit`, `scroll`, `hover`, `drag`, `key` (single/sequence with element targeting), `wait_for` (async condition polling), `upload` (file input), `fill_form` (batch form fill), `dialog` (accept/dismiss JS dialogs)
74
+ **Interaction** (iframe-aware) — `click`, `click_at` (coordinate-based), `type` (with slow typing support), `select`, `toggle`, `submit`, `scroll`, `hover`, `drag`, `key` (single/sequence with element targeting), `wait_for` (async condition polling), `upload` (file input), `fill_form` (batch form fill), `dialog` (accept/dismiss JS dialogs)
75
75
 
76
76
  **Monitoring** — `console` (all severity levels, filtering, timestamps), `requests` (full HTTP history, method/status/resource type filtering)
77
77
 
@@ -449,8 +449,6 @@ Five pages cover navigation, forms, interactive elements, popups, delayed conten
449
449
 
450
450
  ### Session & Configuration
451
451
 
452
- **Connect to Existing Browser** — Add a `--cdp-endpoint` CLI argument so Charlotte can attach to an already-running browser via `puppeteer.connect()` instead of always launching a new instance. Enables working with logged-in sessions and browser extensions.
453
-
454
452
  **Persistent Init Scripts** — Add a `--init-script` CLI argument to inject JavaScript on every page load via `page.evaluateOnNewDocument()`. Charlotte's `dev_inject` currently applies CSS/JS once and does not persist across navigations.
455
453
 
456
454
  **Configuration File** — Support a `--config` CLI argument to load settings from a JSON file, simplifying repeatable setups and CI/CD integration.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ticktockbent/charlotte",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "Token-efficient browser MCP server — structured web pages for AI agents, not raw accessibility dumps",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",