@runalabs/rill-cli 0.1.19 → 0.1.21

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/README.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @runalabs/rill-cli
2
2
 
3
+ ## Runtime security requirement
4
+
5
+ Use Node.js **24.22.1 LTS or newer on a patched release line**. The minimum
6
+ supported versions are **22.23.4**, **24.22.1**, and **26.12.1**; Node 23, Node 25,
7
+ and prerelease builds are not supported. These releases address the October 2026
8
+ [eMudhra certificate compromise](https://emudhra.we-have-a-problem.com/).
9
+
10
+ Rill 0.1.20 checks Node before command actions, authentication, or telemetry.
11
+ An unsupported runtime receives `unsupported_node_version` and an upgrade step.
12
+ `rill doctor` reports that failure without contacting the API or reading saved
13
+ credentials. `rill --help` and `rill --version` remain available.
14
+
15
+ The CLI uses your installed Node and Chrome/Chromium. Updating Rill alone does
16
+ not replace their certificate stores. Keep Chrome/Chromium updated, and restart
17
+ long-running recorder processes after saving active recordings when updating
18
+ their runtimes. Doctor's browser version check confirms availability, not that
19
+ every certificate revocation is enforced. Rill does not disable TLS validation
20
+ or accept a custom CA workaround in place of the patched Node requirement.
21
+
3
22
  Record a browser flow, keep its video and runtime evidence together, and return an inspectable share link. Use Rill to reproduce a bug, verify a change, or hand a browser run to another developer or agent.
4
23
 
5
24
  Rill starts a local Chromium recorder. Your browser tool drives the returned CDP endpoint; Rill captures the selected page and uploads the result when you stop.
@@ -8,7 +27,7 @@ Rill starts a local Chromium recorder. Your browser tool drives the returned CDP
8
27
 
9
28
  ## Cloud agent runs
10
29
 
11
- Invited workspaces can supply a URL and prompt. Cloud runs need Node.js 22+ and a Rill login; Chrome and ffmpeg run on Rill's server.
30
+ Invited workspaces can supply a URL and prompt. Cloud runs need a patched Node.js version listed above and a Rill login; Chrome and ffmpeg run on Rill's server.
12
31
 
13
32
  ```sh
14
33
  rill record https://example.com -p "Open pricing and describe the plans."
@@ -29,7 +48,7 @@ Check `node --version`, `node -p "process.platform"`, and `rill --version` befor
29
48
 
30
49
  If the CLI is missing, check npm with `npm ping --fetch-timeout=5000 --fetch-retries=0` before installation. See the [canonical skill](https://userill.dev/skill.md) for the bounded Rill connectivity check and Windows Terminal fallback. Report blocked network access instead of repeating installation attempts.
31
50
 
32
- Browser recording runs on macOS, Linux, and Windows. Install Node.js 22+ and Google Chrome or Chromium. Rill encodes recordings remotely by default; local FFmpeg is optional. Chrome stays on your machine and can access localhost. Raw frames upload after recording stops.
51
+ Browser recording runs on macOS, Linux, and Windows. Install a patched Node.js version listed above and up-to-date Google Chrome or Chromium. Rill encodes recordings remotely by default; local FFmpeg is optional. Chrome stays on your machine and can access localhost. Raw frames upload after recording stops.
33
52
 
34
53
  Then install the scoped package:
35
54
 
@@ -68,18 +87,33 @@ The default API is `https://userill.dev`. `RILL_API_URL` changes it; the global
68
87
  ## First recording
69
88
 
70
89
  ```sh
71
- rill record start --url https://example.com --title "Checkout verification"
72
- # Save recordingId and connect your browser tool to the returned cdpUrl.
73
- # Perform the flow in the existing recorded page.
90
+ rill browser connect
91
+ # Open the connection link in Chrome, then choose your app tab in Rill.
92
+ rill --human record start --title "Checkout verification"
93
+ # Perform the steps yourself in that tab; see the agent-operated example below.
74
94
  rill record stop <recording-id>
75
95
  rill inspect https://userill.dev/s/<share-secret>
76
96
  ```
77
97
 
78
- Start returns `recordingId`, `cdpUrl`, `status`, `bodyCaptureEnabled`, and `maxDurationSeconds`. Stop finalizes capture, uploads frames and diagnostics for remote encoding, and waits for playback. Confirm `status: "ready"` and a non-null `shareUrl` before returning the evidence link. Local capture finishing does not establish remote readiness.
98
+ Start returns `recordingId`, `browserAttachment`, `status`, `bodyCaptureEnabled`, and `maxDurationSeconds`. A managed or direct CDP recording also returns `cdpUrl`. Stop finalizes capture, uploads frames and diagnostics for remote encoding, and waits for playback. Confirm `status: "ready"` and a non-null `shareUrl` before returning the evidence link. Local capture finishing does not establish remote readiness.
79
99
 
80
100
  New browser recordings include a visible cursor and click pulses by default. In Rill Settings → Cursor appearance, workspace members can turn them off or choose an accent color. The CLI reads this preference when starting a recording; it is baked into the video and does not change existing recordings. Use an updated CLI and recorder daemon to capture the overlay.
81
101
 
82
- ### Connect Playwright
102
+ ### Record the browser you already use
103
+
104
+ This branch includes a private Chrome pilot; build the CLI from this checkout. The CLI packages its matching extension download. Install it once, run `rill browser connect`, open the returned link in Chrome and click **Connect Chrome**. Rill opens beside your page. Switch to your website and click **Connect this tab**. HTTP and HTTPS sites are supported, including localhost. Setup is remembered and multiple takes reuse the approved tab.
105
+
106
+ `record start` keeps its normal managed-browser behavior and does not require an extension. Choose `--browser existing` to record the tab connected through Rill for Chrome; that explicit mode fails with connection guidance when no tab is selected. Capture does not click, type, evaluate scripts, intercept navigation, or change the viewport. Sign-in state stays in Chrome; site credentials are never extracted or exported. Request bodies and headers are not captured. Console text is bounded and heuristically redacted; visible page content remains in the video.
107
+
108
+ For an agent-operated recording, first establish that its existing controller is on the selected target. Inspect `rill --json browser status` and match the returned Chrome tab/target ID with the controller's own selected tab. Then use `rill record start --browser existing --operator agent --controller-target <target-id>`. This matches target identity; it does not certify that an arbitrary agent can drive the browser. If the host cannot expose that identity or control the tab, explain the limitation and offer human operation instead. Rill supplies capture rather than a second controller.
109
+
110
+ Capture starts only after a frame has been saved. Stopping leaves the tab connected for the next take. A lost connection saves the captured part and marks interruption; upload retry reuses those bytes. New tabs/popups are outside capture and produce a coverage note. DevTools or tab closure can interrupt capture. Inactivity disconnects tab access after an hour; device setup remains saved. Use `rill browser disconnect` to end access. Chrome can still require its own permissions.
111
+
112
+ Choose a fresh browser explicitly with `rill record start --browser new --url <url>`. Local encoding is available on that managed/CDP path; the Chrome pilot uses remote encoding. Existing CLI limits, workspace access, recording lifecycle, recovery, and player still apply. Native extension/controller coexistence and provider playback must be verified separately from protocol tests.
113
+
114
+ ### Connect Playwright to an explicitly created browser
115
+
116
+ Use `rill record start --browser new --url <url>` only when the task calls for a fresh browser and your controller supports its connection.
83
117
 
84
118
  Start also returns `browserAttachment` with the CDP endpoint, protocol, Playwright method, and attachment instructions. Browser tools must explicitly support attaching to that endpoint; Rill does not automatically expose its browser to every tool.
85
119
 
@@ -235,7 +269,7 @@ Explicit `--json` or `--pretty` takes precedence over `--human`. Use `--pretty`
235
269
  rill whoami
236
270
  rill whoami --json
237
271
  rill --human doctor
238
- rill --human record start --url https://example.com --title "Smoke test" --headed
272
+ rill --human record start --browser new --url https://example.com --title "Smoke test" --headed
239
273
  rill --human record stop <recording-id>
240
274
  rill --human record status <recording-id>
241
275
  ```