opendevbrowser 0.0.20 → 0.0.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
@@ -101,7 +101,7 @@ npm pack
101
101
  WORKDIR=$(mktemp -d /tmp/opendevbrowser-first-run-XXXXXX)
102
102
  cd "$WORKDIR"
103
103
  npm init -y
104
- npm install <public-repo-root>/opendevbrowser-0.0.20.tgz
104
+ npm install <public-repo-root>/opendevbrowser-0.0.21.tgz
105
105
  npx --no-install opendevbrowser --help
106
106
  npx --no-install opendevbrowser help
107
107
  ```
@@ -265,12 +265,12 @@ Start every surface check from generated help when you need the current public l
265
265
 
266
266
  ## Recent Features
267
267
 
268
- ### v0.0.20 (Current release cycle)
268
+ ### v0.0.21 (Current release cycle)
269
269
 
270
- - **Operator review and inspection are now first-class surfaces** with dedicated `review`, `review-desktop`, `session-inspector audit`, `session-inspector plan`, and `status-capabilities` entry points across the CLI and tool layers.
271
- - **Inspire Design is now a first-class workflow surface** with provider contracts, capture lanes, parity coverage, and release-facing docs instead of partial workflow wiring.
272
- - **Help-led discoverability is stronger** because the generated help surface now carries canonical next-step guidance and release-facing metadata for the new operator and workflow lanes.
273
- - **Live audit and release harnesses are more honest under load** because env-limited classification, foreign relay ownership handling, desktop observation capture, and shopping follow-up classification were tightened instead of being reported as ambiguous failures.
270
+ - **Workflow success handoffs are now first-class across the main workflow lanes** with explicit follow-through metadata for research, shopping, product-video, and Inspire Design instead of generic success text.
271
+ - **Macro execution reports blocker truthfully** because `macro-resolve --execute` now preserves blocked execution wording when runtime blocker metadata survives the run.
272
+ - **Release validation is more stable under extension mode** because the live harnesses reuse healthy relay ownership and the product-video follow-through or timeout teardown paths no longer drift into false failures.
273
+ - **Help and docs now treat Inspire Design's canvas handoff as the reference workflow contract** for operator next-step guidance.
274
274
 
275
275
  ### v0.0.16
276
276
 
@@ -27,7 +27,7 @@ import {
27
27
  runResearchWorkflow,
28
28
  runShoppingWorkflow,
29
29
  toSnippet
30
- } from "./chunk-C6QUKABT.js";
30
+ } from "./chunk-ZE2E7ZGH.js";
31
31
  import {
32
32
  ProviderRuntimeError
33
33
  } from "./chunk-FUSXMW3G.js";
@@ -31811,7 +31811,7 @@ var DAEMON_STATUS_RETRY_OPTIONS = {
31811
31811
  retryDelayMs: 250
31812
31812
  };
31813
31813
  var DAEMON_RESTART_STATUS_TIMEOUT_MS = 5e3;
31814
- var DAEMON_RESTART_POLL_ATTEMPTS = 20;
31814
+ var DAEMON_RESTART_READY_TIMEOUT_MS = 15e3;
31815
31815
  var DAEMON_RESTART_POLL_DELAY_MS = 250;
31816
31816
  var cachedClientState;
31817
31817
  var getClientStateFilePath = () => {
@@ -32172,18 +32172,19 @@ var restartDaemonConnection = async (connection) => {
32172
32172
  child.unref();
32173
32173
  };
32174
32174
  var waitForCurrentDaemonStatus = async (connection) => {
32175
- for (let attempt = 1; attempt <= DAEMON_RESTART_POLL_ATTEMPTS; attempt += 1) {
32175
+ const deadline = Date.now() + DAEMON_RESTART_READY_TIMEOUT_MS;
32176
+ while (true) {
32176
32177
  const status = await fetchDaemonStatus(connection.port, connection.token, {
32177
32178
  timeoutMs: DAEMON_RESTART_STATUS_TIMEOUT_MS
32178
32179
  });
32179
32180
  if (status?.ok && isCurrentDaemonFingerprint(status.fingerprint)) {
32180
32181
  return status;
32181
32182
  }
32182
- if (attempt < DAEMON_RESTART_POLL_ATTEMPTS) {
32183
- await sleep3(DAEMON_RESTART_POLL_DELAY_MS);
32183
+ if (Date.now() >= deadline) {
32184
+ return null;
32184
32185
  }
32186
+ await sleep3(DAEMON_RESTART_POLL_DELAY_MS);
32185
32187
  }
32186
- return null;
32187
32188
  };
32188
32189
  var resolveMetadataConnection = async (metadataConnection, configuredConnection) => {
32189
32190
  const status = await fetchDaemonStatus(
@@ -32294,6 +32295,7 @@ var onboarding_metadata_default = {
32294
32295
  skillTopic: "quick start",
32295
32296
  validatedSkillTopic: "validated capability lanes",
32296
32297
  designSkillName: "opendevbrowser-design-agent",
32298
+ designSkillTopic: "canvas-contract",
32297
32299
  localOnlyToolNames: [
32298
32300
  "opendevbrowser_prompting_guide",
32299
32301
  "opendevbrowser_skill_list",
@@ -35013,4 +35015,4 @@ export {
35013
35015
  TOOL_SURFACE_ENTRIES
35014
35016
  };
35015
35017
  /* v8 ignore next -- @preserve */
35016
- //# sourceMappingURL=chunk-LMNFPJRI.js.map
35018
+ //# sourceMappingURL=chunk-4KVXCXV3.js.map