opendevbrowser 0.0.18 → 0.0.19

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
@@ -89,9 +89,9 @@ npm install -g opendevbrowser
89
89
  opendevbrowser --version
90
90
  ```
91
91
 
92
- ### Pre-release Local Package (No npm publish required)
92
+ ### Local Package Validation
93
93
 
94
- Use this flow to validate first-run local package onboarding before npm publish.
94
+ Use this flow to validate first-run onboarding from a source tarball without relying on the published registry package.
95
95
 
96
96
  ```bash
97
97
  cd <public-repo-root>
@@ -100,11 +100,13 @@ npm pack
100
100
  WORKDIR=$(mktemp -d /tmp/opendevbrowser-first-run-XXXXXX)
101
101
  cd "$WORKDIR"
102
102
  npm init -y
103
- npm install <public-repo-root>/opendevbrowser-0.0.18.tgz
103
+ npm install <public-repo-root>/opendevbrowser-0.0.19.tgz
104
104
  npx --no-install opendevbrowser --help
105
105
  npx --no-install opendevbrowser help
106
106
  ```
107
107
 
108
+ Published npm consumer proof is tracked separately in [docs/RELEASE_RUNBOOK.md](docs/RELEASE_RUNBOOK.md) through `scripts/registry-consumer-smoke.mjs`.
109
+
108
110
  See [docs/FIRST_RUN_ONBOARDING.md](docs/FIRST_RUN_ONBOARDING.md) for the full onboarding checklist, [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md) for runtime inventory, and [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the live CLI and tool surface.
109
111
 
110
112
  Successful installs reconcile daemon auto-start on supported platforms so the relay is available on login. If the current CLI entrypoint lives under a transient temp-root path such as a first-run `/tmp` or `/private/tmp` workspace, OpenDevBrowser refuses to persist that path as auto-start. Rerun `opendevbrowser daemon install`, or `npx --no-install opendevbrowser daemon install` from a persistent local package install, from a stable install location if you want login auto-start; remove it later with `opendevbrowser daemon uninstall`.
@@ -244,7 +246,7 @@ Start every surface check from generated help when you need the current public l
244
246
 
245
247
  - `screencast / browser replay`: `screencast-start`, `screencast-stop`
246
248
  - `desktop observation`: `desktop-status`, `desktop-windows`, `desktop-active-window`, `desktop-capture-desktop`, `desktop-capture-window`, `desktop-accessibility-snapshot`
247
- - `computer use / browser-scoped computer use`: `--challenge-automation-mode off|browser|browser_with_helper` on `research run`, `shopping run`, `product-video run`, and `macro-resolve --execute`; `review` and `session-inspector` remain the quickest proof surfaces, and the optional helper stays browser-scoped rather than becoming a desktop agent
249
+ - `computer use / browser-scoped computer use`: `--challenge-automation-mode off|browser|browser_with_helper` on `research run`, `shopping run`, `product-video run`, and `macro-resolve --execute`; start with `npx opendevbrowser research run --topic "account recovery flow" --source-selection auto --challenge-automation-mode browser --mode json --output-format json` when you need the first entry point, and use `review` plus `session-inspector` as the quickest proof surfaces while the optional helper stays browser-scoped rather than becoming a desktop agent
248
250
 
249
251
  ## Challenge Handling Boundary
250
252
 
@@ -262,14 +264,13 @@ Start every surface check from generated help when you need the current public l
262
264
 
263
265
  ## Recent Features
264
266
 
265
- ### v0.0.18 (Latest)
267
+ ### v0.0.19 (Current release prep)
266
268
 
267
- - **Canvas and workflow surfaces are materially stronger after `v0.0.17`**: adapter-plugin validation, starter or inventory lanes, framework-adapter code sync, review/session-inspector flows, and direct-run release probes all landed on `main`.
268
- - **Generated public-surface manifests and onboarding metadata now drive help, docs parity, release evidence, and mirrored website inputs** instead of leaving those surfaces hand-maintained.
269
- - **Challenge automation and browser-scoped computer-use controls are tighter** with explicit `challengeAutomationMode` precedence and a clearer browser-only helper boundary.
270
- - **Browser replay screencasts and public desktop observation now ship on the active public surface** with manager-owned replay artifacts, dedicated desktop permission or audit coverage, and no desktop agent claim.
271
- - **Public read-only desktop observation now ships as a sibling runtime** with dedicated permission and audit coverage while staying outside the public relay or `/ops` plane.
272
- - **Release and distribution operations were refreshed for `v0.0.18`** across GitHub release assets, npm packaging, Chrome Web Store prep, regenerated live store assets, and private website sync inputs.
269
+ - npm latest remains `0.0.18` until the next tag is pushed and published.
270
+ - **Registry-consumer release proof is now first-class** with a post-publish smoke lane that installs the published package in a fresh temp workspace, verifies help/version, and captures the resolved consumer dependency graph.
271
+ - **Browser-scoped computer use is easier to discover** because help, onboarding, and release-facing docs now expose a concrete workflow entry command instead of relying only on `--challenge-automation-mode` as a hidden modifier.
272
+ - **Browser replay screencast shutdown is safer under load** because stop requests during the first in-flight capture no longer allow a later scheduled frame to sneak through.
273
+ - **The `0.0.18` npm parity investigation is now explicit about chronology**: the published package matched the release-aligned source, while later local worktree drift and semver-based consumer dependency drift explain the mismatch reports.
273
274
 
274
275
  ### v0.0.16
275
276
 
@@ -1 +1 @@
1
- {"version":3,"file":"screencast-recorder.d.ts","sourceRoot":"","sources":["../../src/browser/screencast-recorder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,8BAA8B,OAAO,CAAC;AACnD,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,KAAK,kBAAkB,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,uBAAuB,GAAG,kBAAkB,GAAG;IAClD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAwBF,KAAK,6BAA6B,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,6BAA6B,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAClE,CAAC;AA+JF,qBAAa,yBAAyB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqD;IACtF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IACrE,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,mBAAmB,CAAsG;IACjI,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE5C,IAAI,EAAE,6BAA6B;IAmB/C,IAAI,aAAa,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAEpD;IAED,UAAU,IAAI,OAAO;IAIf,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAY1C,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,4BAA4B,EAAE,SAAS,GAAG,gBAAgB,GAAG,eAAe,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAO3I,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,iBAAiB;YAUX,qBAAqB;YAwBrB,YAAY;IAoC1B,OAAO,CAAC,UAAU;YAWJ,QAAQ;CAmDvB"}
1
+ {"version":3,"file":"screencast-recorder.d.ts","sourceRoot":"","sources":["../../src/browser/screencast-recorder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,8BAA8B,OAAO,CAAC;AACnD,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,KAAK,kBAAkB,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,uBAAuB,GAAG,kBAAkB,GAAG;IAClD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAwBF,KAAK,6BAA6B,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,6BAA6B,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAClE,CAAC;AA+JF,qBAAa,yBAAyB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqD;IACtF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IACrE,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,mBAAmB,CAAsG;IACjI,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE5C,IAAI,EAAE,6BAA6B;IAmB/C,IAAI,aAAa,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAEpD;IAED,UAAU,IAAI,OAAO;IAIf,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAc1C,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,4BAA4B,EAAE,SAAS,GAAG,gBAAgB,GAAG,eAAe,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAO3I,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,iBAAiB;YAUX,qBAAqB;YA2BrB,YAAY;IAoC1B,OAAO,CAAC,UAAU;YAWJ,QAAQ;CAmDvB"}
@@ -6229,7 +6229,9 @@ var BrowserScreencastRecorder = class {
6229
6229
  await ensureEmptyDirectory(this.outputDir);
6230
6230
  await mkdir4(this.framesDir, { recursive: true });
6231
6231
  await this.captureFrame();
6232
- if (this.frames.length >= this.maxFrames) {
6232
+ if (this.requestedStopReason) {
6233
+ await this.finalize(this.requestedStopReason, false);
6234
+ } else if (this.frames.length >= this.maxFrames) {
6233
6235
  await this.finalize("max_frames_reached", false);
6234
6236
  } else {
6235
6237
  this.scheduleNextFrame();
@@ -6256,7 +6258,7 @@ var BrowserScreencastRecorder = class {
6256
6258
  };
6257
6259
  }
6258
6260
  scheduleNextFrame() {
6259
- if (this.isComplete()) {
6261
+ if (this.isComplete() || this.requestedStopReason) {
6260
6262
  return;
6261
6263
  }
6262
6264
  this.timer = setTimeout(() => {
@@ -6265,6 +6267,9 @@ var BrowserScreencastRecorder = class {
6265
6267
  }, this.intervalMs);
6266
6268
  }
6267
6269
  async captureScheduledFrame() {
6270
+ if (this.requestedStopReason || this.isComplete()) {
6271
+ return;
6272
+ }
6268
6273
  const captured = await this.captureFrame().catch(async () => {
6269
6274
  if (!this.requestedStopReason) {
6270
6275
  await this.finalize("capture_failed", false);
@@ -31036,6 +31041,7 @@ var onboarding_metadata_default = {
31036
31041
  validatedLanes: 'opendevbrowser_skill_load opendevbrowser-best-practices "validated capability lanes"',
31037
31042
  validatedResearch: 'npx opendevbrowser research run --topic "Chrome extension debugging workflows" --days 30 --source-selection auto --mode json --output-format json',
31038
31043
  validatedShopping: 'npx opendevbrowser shopping run --query "wireless ergonomic mouse" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --mode json --output-format json',
31044
+ computerUseEntry: 'npx opendevbrowser research run --topic "account recovery flow" --source-selection auto --challenge-automation-mode browser --mode json --output-format json',
31039
31045
  happyPath: "npx opendevbrowser launch --no-extension --headless --start-url https://example.com --output-format json"
31040
31046
  },
31041
31047
  referencePaths: {
@@ -33510,4 +33516,4 @@ export {
33510
33516
  TOOL_SURFACE_ENTRIES
33511
33517
  };
33512
33518
  /* v8 ignore next -- @preserve */
33513
- //# sourceMappingURL=chunk-L57D35TB.js.map
33519
+ //# sourceMappingURL=chunk-W4IHGDXV.js.map